In order to run more recent versions of some guest operating systems, you will need a more recent version of Xen. Unfortunately, the version provided by Red Hat and, subsequently, CentOS is not updated to a new enough version. So to run the newest version of Xen, you will need to update it yourself. Luckily, the process is very simple.

First, you will need to set up the git repository in yum for the latest version of Xen. At writing time of this tutorial, the newest version is 3.4.2, but you should replace that number with whatever the newest version is (found here).

cd /etc/yum.repos.d/
wget http://www.gitco.de/repo/GITCO-XEN3.4.2_x86_64.repo

Next, you’ll need to remove the old version of Xen and replace it with the newest version.

yum groupremove Virtualization
yum groupinstall Virtualization

This will install everything, including the correct kernel. As a measure of cleanup, you may wish to remove the i386 version of lib-virt and xen-libs since those are not present in the git repo. They will still be at Xen version 3.0. Note that this step is optional.

yum remove libvirt-0.6.3-20.1.el5_4.i386 xen-libs-3.0.3-94.el5_4.3.i386

The last step is to edit your grub.conf file to ensure that you boot with the correct kernel. Open /etc/grub.conf (which is a symlink to /boot/grub/grub.conf, so you can open either one) and add this to the end:

title CentOS (2.6.18-164.10.1.el5xen)
 root (hd0,0)
 kernel /xen.gz-3.4.2
 module /vmlinuz-2.6.18-164.10.1.el5xen ro root=LABEL=/ rhgb quiet
 module /initrd-2.6.18-164.10.1.el5xen.img

This will boot with the new kernel the next time you reboot. Also make sure to set the new default by locating the line that says

default 0

and change it to match where you just placed the new entry. Now simply reboot, and you should be all set!