# check kernel version before install xen-kernel
$ uname -a
Linux mcloud.******* 2.6.32-220.el6.x86_64 #1 SMP Tue Dec 6
19:48:22 GMT 2011 x86_64 x86_64 x86_64 GNU/Linux
# Install xen aware kernel
$ yum install kernel kernel-devel kernel-headers kernel-firmware
# check if xen was normally installed.
$ ls -al /boot/xen*
-rw-r--r--. 1 root root 677326 Nov 27 2010 /boot/xen-4.0.1.gz
lrwxrwxrwx. 1 root root 12 Apr 26 17:23 /boot/xen.gz -> xen-4.0.1.gz
-rw-r--r--. 1 root root 12091421 Nov 27 2010 /boot/xen-syms-4.0.1
# Modify boot file
$ vi /boot/grub/grub.conf
...
default=0
...
title CentOS (2.6.32.26-174.1.xendom0.el6.x86_64)
root (hd0,0)
kernel /xen.gz
module /vmlinuz-2.6.32.26-174.1.xendom0.el6.x86_64 ro
root=/dev/mapper/....
module /initramfs-2.6.32.26-174.1.xendom0.el6.x86_64.img
title CentOS (2.6.32-220.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-220.el6.x86_64 ro root=/dev/mapper/...
initrd /initramfs-2.6.32-220.el6.x86_64.img
$ reboot
Note: After reboot, it was causing continuous reboot !!!. If you have the same problem with this, you should build kernel for xen. For me, I picked the way that downloaded its rpm source and built it.
Here's my way of building the rpm source.
# Remove packages that I previously installed
$ yum remove kernel-firmware kernel-headers kernel-devel kernel
# Get the kernel-xen rpm source
$ mkdir /root/src
$ cd /root/src
# Install rpm-build tool
$ yum install rpm-build
$ rpm -i ./*.src.rpm
.....
warning: user rpmbuild does not exist - using root
.....
=> Ignore these warnings
$ cd /root/rpmbuild/SPECS/
$ rpmbuild -bb kernel.spec
error: Failed build dependencies:
gcc >= 3.4.2 is needed by kernel-2.6.32.26-174.1.xendom0.el6.x86_64
redhat-rpm-config is needed by kernel-2.6.32.26-174.1.xendom0.el6.x86_64
xmlto is needed by kernel-2.6.32.26-174.1.xendom0.el6.x86_64
asciidoc is needed by kernel-2.6.32.26-174.1.xendom0.el6.x86_64
elfutils-libelf-devel is needed by kernel-2.6.32.26-174.1.xendom0.el6.x86_64
zlib-devel is needed by kernel-2.6.32.26-174.1.xendom0.el6.x86_64
binutils-devel is needed by kernel-2.6.32.26-174.1.xendom0.el6.x86_64
# Meet required dependencies
$ yum install gcc redhat-rpm-config xmlto asciidoc elfutils-libelf-devel zlib-devel binutils-devel
# It took about 15 minutes for rpmbuild
$ rpmbuild -bb kernel.spec
$ cd ../RPMS/x86_64/
$ ls -al
total 265816
-rw-r--r--. 1 root root 19851580 Apr 26 19:56
kernel-2.6.32.26-174.1.xendom0.el6.x86_64.rpm
-rw-r--r--. 1 root root 212588868 Apr 26 19:57
kernel-debuginfo-2.6.32.26-174.1.xendom0.el6.x86_64.rpm
-rw-r--r--. 1 root root 32409920 Apr 26 19:56
kernel-debuginfo-common-x86_64-2.6.32.26-174.1.xendom0.el6.x86_64.rpm
-rw-r--r--. 1 root root 6543740 Apr 26 19:56
kernel-devel-2.6.32.26-174.1.xendom0.el6.x86_64.rpm
-rw-r--r--. 1 root root 791828 Apr 26 19:56
kernel-headers-2.6.32.26-174.1.xendom0.el6.x86_64.rpm
$ chmod u+x *
# needs to one more dependancy
$ yum install kernel-firmware
$ rpm -i --force *
ldconfig: /etc/ld.so.conf.d/kernel-2.6.32.26-174.1.xendom0.el6.x86_64.conf:6:
hwcap index 1 already defined as nosegneg
$ rpm -qa kernel
kernel-2.6.32-220.el6.x86_64
kernel-2.6.32.26-174.1.xendom0.el6.x86_64
# Modify boot file
$ vi /boot/grub/grub.conf
...
default=0
...
title CentOS (2.6.32.26-174.1.xendom0.el6.x86_64)
root (hd0,0)
kernel /xen.gz
module /vmlinuz-2.6.32.26-174.1.xendom0.el6.x86_64 ro
root=/dev/mapper/....
module /initramfs-2.6.32.26-174.1.xendom0.el6.x86_64.img
title CentOS (2.6.32-220.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-220.el6.x86_64 ro root=/dev/mapper/...
initrd /initramfs-2.6.32-220.el6.x86_64.img
$ reboot
$ xm list ( It also worked by excute "xl list"
Name ID Mem VCPUs State Time(s)
Domain-0 0 14534 8 r-- 35.7