Open main menu

OpenVZ Virtuozzo Containers Wiki β

Changes

Centos Upgrade 4.x to 5.x

298 bytes added, 22:25, 2 June 2011
improved tar based backup/restore
follow these steps:
==Create the container== Create a container using centos-4-i386-minimal and set a valid nameserver==:
<pre>
vzctl create $CTID --ostemplate centos-4-i386-minimal --config CONFIG_TEMPLATE --ipadd container_IP --hostname temp
</pre>
== Enter container ==
<pre>
vzctl enter $CTID
</pre>
==Install centos-5-release packages==
Use <code>vzctl exec</code> to execute the rpm install command on the container:
<pre>vzctl exec $CTID rpm -Uvh http://mirror.centos.org/centos/5/os/i386/CentOS/centos-release-notes-5.6-0.i386.rpm \ http://mirror.centos.org/centos/5/os/i386/CentOS/centos-release-5-6.el5.centos.1.i386.rpm</pre>
Note: centos-release-5 depends on notes-package, start with that one.
==Backup dev==
Backup your the container /dev/ directory, as initscripts needs udev and will remove vzdev you'll need the backup:
<pre>
tar -cf $CTID.dev.tar .-C /vz/private/$CTID dev
</pre>
==Install initscripts package== Install initscripts package (forced and with no deps)==, as per below:
<pre>
vzctl exec $CTID rpm -Uvh http://mirror.centos.org/centos/5/os/i386/CentOS/initscripts-8.45.33-1.el5.centos.i386.rpm --force --nodeps
</pre>
Note: If the "transfer failed", go to the [http://mirror.centos.org/centos/5/os/i386/CentOS/ CentOS5 mirror] and find the latest initscripts rpm and use that instead.
 
==Exit from container==
<pre>
exit
</pre>
==Update conf file==
Alternatively, use the 'sed' command to replace it:
<pre>
sed -i 's#OSTEMPLATE="centos-4#OSTEMPLATE="centos-5#g' /etc/vz/conf/$CSIDCTID.conf
</pre>
<pre>
vzctl exec 113 $CTID rpm -e --justdb python-elementtree --nodepsvzctl exec 113 $CTID rpm --import http://mirrors.kernel.org/centos/RPM-GPG-KEY-CentOS-5
</pre>
==Stop Test your VE==Check you can enter your VE:
<pre>
vzctl stop enter $CTID
</pre>
==Replace All went OK? Exit the new /dev/ with the old one==VE:
<pre>
cd /vz/private/$CTIDrm -rf devtar -xvf dev.tarexit
</pre>
==Leave the container private dir (or it will not start)=Troubleshooting=== 
<pre>
cdUnable to open pty: No such file or directory
</pre>
If you see errors like this, see the [[VPS_enter_failed]] article.
==Start the containerStop your VE==
<pre>
vzctl start stop $CTID
</pre>
==Remove container IPRestore dev== This will replace the new /dev/ with the old one:
<pre>
vzctl set mv /vz/private/$CTID /dev /vz/private/$CTID/dev.oldtar -xvf $CTID.dev.tar -ipdel all --saveC /vz/private/$CTID
</pre>
==Stop Remove containerIP ==
<pre>
vzctl stop set $CTID--ipdel all --save
</pre>
27
edits