Editing Centos Upgrade 4.x to 5.x

Jump to: navigation, search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 1: Line 1:
{{wikify}}
 
 
 
[[Category:Templates]]
 
[[Category:Templates]]
  
Line 6: Line 4:
 
follow these steps:
 
follow these steps:
  
==Create the container==
+
1 - Create a container using centos-4-i386-minimal and set a valid nameserver  
 
 
Create a container using centos-4-i386-minimal and set a valid nameserver:
 
 
<pre>
 
<pre>
vzctl create $CTID --ostemplate centos-4-i386-minimal --config CONFIG_TEMPLATE --ipadd container_IP --hostname temp
+
vzctl create CTID --ostemplate centos-4-i386-minimal --config CONFIG_TEMPLATE --ipadd container_IP --hostname temp
vzctl set $CTID --nameserver NAMESERVER_IP --save
+
vzctl set CTID --nameserver NAMESERVER_IP --save
 
</pre>
 
</pre>
 
+
2 - Enter in container
 
 
==Install centos-5-release packages==
 
Use <code>vzctl exec</code> to execute the rpm install command on the container:
 
 
 
 
<pre>
 
<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
+
vzctl enter CTID
 
</pre>
 
</pre>
Note: centos-release-5 depends on notes-package, start with that one.
+
3 - Install centos-5-release packages
 
 
==Backup dev==
 
 
 
Backup the container /dev/ directory, as initscripts needs udev and will remove vzdev you'll need the backup:
 
 
 
 
<pre>
 
<pre>
tar -cf $CTID.dev.tar -C /vz/private/$CTID dev
+
rpm -Uvh http://mirror.centos.org/centos/5.0/os/i386/CentOS/centos-release-notes-5.0.0-2.i386.rpm
 +
rpm -Uvh http://mirror.centos.org/centos/5.0/os/i386/CentOS/centos-release-5-0.0.el5.centos.2.i386.rpm
 
</pre>
 
</pre>
 +
Note: centos-release-5 depends on notes-package, start with that one.
  
==Install initscripts package==
+
4 - Backup your /dev/, since initscripts need udev and will remove vzdev you'll net the backup
 
 
Install initscripts package (forced and with no deps), as per below:
 
 
 
 
<pre>
 
<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
+
tar -cf dev.tar ./dev
 
</pre>
 
</pre>
 
+
5 - Install initscripts package (forced and with no deps)
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.
 
 
 
==Update conf file==
 
 
 
Edit /etc/vz/conf/$CSID.conf and replace
 
 
<pre>
 
<pre>
OSTEMPLATE="centos-4-i386-minimal"
+
rpm -Uvh http://mirror.centos.org/centos/5.0/os/i386/CentOS/initscripts-8.45.14.EL-1.el5.centos.1.i386.rpm --force --nodeps
 
</pre>
 
</pre>
with
+
6 - Exit from container
 
<pre>
 
<pre>
OSTEMPLATE="centos-5-i386-minimal"
+
exit
</pre>
 
 
 
Alternatively, use the 'sed' command to replace it:
 
<pre>
 
sed -i 's#OSTEMPLATE="centos-4#OSTEMPLATE="centos-5#g' /etc/vz/conf/$CTID.conf
 
</pre>
 
 
 
==Copy existing template==
 
 
 
Copy existing template from:
 
 
 
<pre>
 
/vz/template/centos/4
 
</pre>
 
to
 
<pre>
 
/vz/template/centos/5
 
</pre>
 
 
 
==Update yum.conf==
 
 
 
In /vz/template/centos/5/i386/config/yum.conf change mirrors to CentOS 5
 
 
 
Using sed:
 
 
 
<pre>
 
sed -i 's#centos4#centos5#g' /vz/template/centos/5/i386/config/yum.conf
 
sed -i 's#CentOS 4#CentOS 5#g' /vz/template/centos/5/i386/config/yum.conf
 
sed -i 's#centos/4/#centos/5/#g' /vz/template/centos/5/i386/config/yum.conf
 
 
</pre>
 
</pre>
 
+
7 - Upgrade container packages using vzyum (32bit only)
==Upgrade container packages==
 
 
 
db-version will complain, so delete the conflicting database first:
 
 
<pre>
 
<pre>
rm -fr /vz/root/$CTID/var/lib/rpm/__*
+
vzyum CTID upgrade
 
</pre>
 
</pre>
 +
Note: on 64-bit yum db-version might complain. Do "rm /vz/root/VZNUM/var/lib/rpm/__*" to delete conflicting DB.
  
Now run vzyum to upgrade the contain packages:
+
8 - Stop your VE
 
<pre>
 
<pre>
vzyum $CTID upgrade
+
vzctl stop CTID
 
</pre>
 
</pre>
 
+
9 - Replace the new /dev/ with the old one
===Troubleshooting===
 
 
 
If you get this error:
 
 
 
 
<pre>
 
<pre>
Error: Missing Dependency: python-abi = 2.3 is needed by package python-elementtree
+
cd /vz/private/CTID
 +
rm -rf dev
 +
tar -xvf dev.tar
 
</pre>
 
</pre>
 
+
10 - Leave the container private dir (or it will not stard)
and/or
 
 
<pre>
 
<pre>
warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID e8562897
+
cd
Public key for libsepol-1.15.2-3.el5.i386.rpm is not installed
 
 
</pre>
 
</pre>
 
+
11 - Start the container
You need to run the following before trying again:
 
 
 
 
<pre>
 
<pre>
vzctl exec $CTID rpm -e --justdb python-elementtree --nodeps
+
vzctl start CTID
vzctl exec $CTID rpm --import http://mirrors.kernel.org/centos/RPM-GPG-KEY-CentOS-5
 
 
</pre>
 
</pre>
 
+
12 - Remove container IP
==Test your VE==
 
Check you can enter your VE:
 
 
<pre>
 
<pre>
vzctl enter $CTID
+
vzctl set --ipdel container_IP
 
</pre>
 
</pre>
 
+
13 - Stop container
All went OK? Exit the VE:
 
 
<pre>
 
<pre>
exit
+
vzctl stop CTID
 
</pre>
 
</pre>
 
+
14 - Create the template
===Troubleshooting===
 
 
 
<pre>
 
Unable to open pty: No such file or directory
 
</pre>
 
If you see errors like this, see the [[VPS_enter_failed]] article.
 
 
 
==Stop your VE==
 
<pre>
 
vzctl stop $CTID
 
</pre>
 
 
 
==Restore dev==
 
 
 
This will replace the new /dev/ with the old one:
 
<pre>
 
mv /vz/private/$CTID/dev /vz/private/$CTID/dev.old
 
tar -xvf $CTID.dev.tar -C /vz/private/$CTID
 
</pre>
 
 
 
== Remove container IP ==
 
<pre>
 
vzctl set $CTID --ipdel all --save
 
</pre>
 
 
 
==Create the template==
 
 
<pre>
 
<pre>
cd /vz/private/$CTID
+
cd /vz/private/CTID
tar --numeric-owner -zcf /vz/template/cache/centos-5.5-i386-minimal.tar.gz .
+
tar -zcf /vz/template/cache/centos-5.0-i386-minimal.tar.gz .
 
</pre>
 
</pre>

Please note that all contributions to OpenVZ Virtuozzo Containers Wiki may be edited, altered, or removed by other contributors. If you don't want your writing to be edited mercilessly, then don't submit it here.
If you are going to add external links to an article, read the External links policy first!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)

Templates used on this page: