现确保CPU支持Xen虚拟化。半虚拟化需要pae,全虚拟化需要Intel VT或者AMD PT的支持。
cat /proc/cpuinfo | grep flags
如果包含pte,那么就支持半虚拟化。如果包含vmx(Intel)或者svm(AMD),那么就支持全虚拟化。

Xen的编译还需要其他包的支持,接下来安装他们:
yum groupinstall "Development Libraries"
yum groupinstall "Development Tools"
yum install transfig texi2html libaio-devel dev86 glibc-devel e2fsprogs-devel gitk mkinitrd iasl xz-devel bzip2-devel

不多说,接下来就该下载Xen的源码了。
hg clone http://xenbits.xen.org/xen-4.0-testing.hg
下载完成后,
cd xen-4.0-testing.hg
切换到源码的主目录下。这时候,有两个选择。

第一:Xen和Domain0的内核一起编译,安装。
make world
make install
既可。注意make world的时候,会自动下载Domain 0的内核,请保持网络的畅通。编译内核的配置也很重要,详细过程见第二种选择描述的编译内核部分。

第二:先编译Xen,安装Xen。再手动下载Domain 0内核,编译,最后安装它。
编译Xen和它的tools。
make xen
make tools
make stubdom
安装Xen和它的tools。
make install-xen
make install-tools
make install-stubdom

接下来手动下载Domain0内核源码。
git clone git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen.git linux-2.6-xen
下载完成后,
cd linux-2.6-xen
切换到源码的主目录下。

接下来,就是配置内核的过程了。
make mrproper
make menuconfig
这时,如果你编译的是32bit的内核,要注意使pae有效。
Processor type and features -> High Memory Support (64GB) -> PAE (Physical Address Extension) Support
另外,保证使CONFIG_HIGHPTE=n。
其次,保证ACPI support有效。

下面是.config文件的一些例子。
64bit x86_64 (xen/stable-2.6.31.x 2.6.31.6): http://pasik.reaktio.net/xen/pv_ops-dom0-debug/config-2.6.31.6-pvops-dom0-xen-master-x86_64
64bit x86_64 (xen/stable-2.6.32.x 2.6.32.10): http://pasik.reaktio.net/xen/pv_ops-dom0-debug/config-2.6.32.10-pvops-dom0-xen-stable-x86_64
32bit PAE (xen/stable-2.6.31.x 2.6.31.6): http://pasik.reaktio.net/xen/pv_ops-dom0-debug/config-2.6.31.6-pvops-dom0-xen-master-x86_32
32bit PAE (xen/stable-2.6.32.x 2.6.32.10): http://pasik.reaktio.net/xen/pv_ops-dom0-debug/config-2.6.32.10-pvops-dom0-xen-stable-x86_32

接下来就可以编译内核了。
make bzImage
make modules
make modules_install
make install

以上过程结束之后,
cd /boot
ll
应该就会发现对应的xen,domain0的内核相关文件。
我的电脑上如下:
xen-4.0.1-rc1-pre.gz
System.map-2.6.31.13
vmlinuz-2.6.31.13
initrd-2.6.31.13.img

可能还有别的符号链接指向这几个文件。如果initrd没有出现,那么使用
mkinitrd initrd-version.img version
生成这个文件,version表示版本号,在我的电脑上是:
mkinitrd initrd-2.6.31.13.img 2.6.31.13

最后配置grub,
vi /etc/grub.conf
添加以下内容:
title        Xen 4.0, kernel 2.6.31.13
root         (hd0,0)
kernel       /boot/xen-4.0.gz dom0_mem=512M
module       /boot/vmlinuz-2.6.31.13 root=/dev/sda1 ro nomodeset
module       /boot/initrd.2.6.31.13.img
这个要根据自己的电脑的实际情况略作修改了,像我的电脑就是
root (hd0,4)
因为我的在第四个分区,在此就不多说了。

接下来重启电脑吧。在grub里面选择Xen 4.0, kernel 2.6.31.13。这样就进入Xen了。
其实进入新的domain0之后,在我的电脑上没有太大差别,只不过是换了内核而已。
这时,试用命令:
xm list
结果呢?
Name                                        ID   Mem VCPUs      State   Time(s)
Domain-0                                     0  1024     2     r-----   1596.8

这就是xen了。如果出现问题,例如无法连接到xend。那么
ps aux | grep xend
看看xend守护进程启动没有,如果没有使用
xend start
启动该进程。如果启动出现问题试一下:
xend reload
xend start
但愿你的xend问题已经解决了,当然更希望你的xen启动完成正常,根本没有任何问题。

F12过程也差不多,试试吧。

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/handw/archive/2010/04/22/5515164.aspx