一、    准备工作

 

a)    一台计算机(是否支持intel-VT或AMD-V均可)

 

注:支持intel-VT或AMD-V技术可以实现全虚拟化(full virtualization),不支持的话只能实现半虚拟化(para-virtualization)。
支持intel-vt的cpu型号:http://ark.intel.com/VTList.aspx    
支持amd-v的cpu型号:http://nforcex.blogbus.com/logs/8039294.html
注2:查看cpu信息:# cat /proc/cpuinfo,从中能够查看cpu的基本信息,包括型号等;查看cpu使用何种虚拟化技术:# lscpu,其中有一项virtualization type注明了使用的虚拟化技术。
注3:若当前主机的cpu支持虚拟化技术,但在lscpu的virtualization type项显示“none”,这表示你的cpu的虚拟化技术没有启用。启用虚拟化技术的方法是重启主机并进入BIOS,找到virtualization technology或类似项并enable。

 

b)    CentOS 6.0的iso安装文件,minimal版本即可,下载地址:

 

http://www.centos.org/modules/tinycontent/index.php?id=30

 

c)    Xen 4.1的tarball,最新版本是4.1.2,下载地址:

 

d)    http://www.xen.org/products/xen_archives.html

 

e)    linux-3.0 kernel的tarball,最新版本是3.0.4,下载地址:

 

http://www.kernel.org/    

 

f)    acpica的tarball,下载地址:

 

 http://www.acpica.org/downloads/

 

g)    dev86的rpm包,下载地址

 

i.    x86_64: ftp://mirror.switch.ch/pool/2/mirror/fedora/linux/development/rawhide/x86_64/os/Packages/dev86-0.16.18-1.fc15.x86_64.rpm

 

ii.    i386:ftp://ftp.funet.fi/pub/mirrors/ftp.redhat.com/redhat/linux/9/en/os/i386/RedHat/RPMS/dev86-0.16.3-8.i386.rpm

 

iii.    i586 ftp://ftp.pbone.net/mirror/carroll.cac.psu.edu/pub/linux/distributions/mandrakelinux/official/10.0/i586/Mandrake/RPMS/dev86-0.16.3-2mdk.i586.rpm

 

iv.    i686

 

二、    安装CentOS 6.0

 

图形化的安装界面,只要按照提示进行设置即可。这里值得注意的是存储布局的配置。假设所有虚拟机镜像都存储在本地存储中,则需要至少3个逻辑分区:

 

a)    主目录分区,建议15G以上,挂载到”/”目录。

 

b)    Swap分区,根据内存大小分配。

 

c)    存储虚拟机镜像的分区。

 

三、    安装依赖软件(dependencies)

 

a)    升级yum

 

# yum update

 

b)    安装一些基本软件,比如wget、lrzsz(如果使用secureCRT的话)等等

 

# yum –y install wget lrzsz

 

c)    安装一些xen所依赖的包

 

i.    # yum –y install transfig tetex-latex ocaml ocaml-findlib hmaccalc ncurses-devel zlib-devel openssl-devel python-devel bridge-utils libtool-ltdl iasl xorg-x11-drv-evdev xorg-x11-drv-fbdev xorg-x11-drv-i810-devel xorg-x11-drv-via-devel xorg-x11-proto-devel xorg-x11-server-sdk xorg-x11-xtrans-devel libuuid-devel readline-devel gcc gcc-gfortran gcc-c++ flex pcre-devel blas-devel lapack-devel curl-devel bison gperf gnuplot texinfo-tex tetex-dvips

 

ii.    安装刚才下载的dev86的rpm

 

# rpm - i [包名].rpm

 

d)    安装“开发工具”组 # yum groupinstall “Development Tools”

 

# yum –y groupinstall “Development Tools”

 

e)    编译安装acpica

 

i.    进入compiler目录

 

# cd /acpica/compiler

 

ii.    编译安装

 

# make&&make install

 

四、    安装Xen

 

a)    解压缩tarball

 

# tar zxvf xen-4.1.x.tar.gz

 

b)    编译安装

 

i.    # cd xen-4.1.x/

 

ii.    # make world && make install

 

c)    将xen加入到启动脚本

 

i.    # chkconfig --add xencommons

 

ii.    # chkconfig –add xend

 

iii.    # chkconfig –add xendomains

 

iv.    # chkconfig xencommons on

 

v.    # chkconfig xend on

 

vi.    # chkconfig xendomains on

 

  注:一定要按照上述顺序,xencommons必须在xend之前启动

 

五、    安装3.0内核

 

a)    解压缩linux-3.0.x的tarball

 

# tar jxvf linux-3.0.x.tar.gz

 

b)    安装配置

 

i.    # cd linux-3.0.0

 

ii.    # make menuconfig

 

iii.    进入一个菜单界面,选择Device Drivers --> Xen driver support,并将所有项目都勾选成[*](用空格键勾选),保存,退出。

 

iv.    # make&&make modules&&make modules_install&&make install&&depmod 3.0.x

 

注:32位系统上安装会出现一个i2e_core的错误,但这不影响dom0的启动。

 

六、    设置Grub

 

a)    # vi /boot/grub/menu.lst

 

b)    更改之前的内容大致如下(以2.6.32为例)

 

……

 

default=1

 

timeout=5

 

splashp_w_picpath=(hd0,0)/boot/grub/splash.xpm.gz

 

hiddenmenu

 

title CentOS Linux (3.0.4)

 

……

 

title CentOS Linux (2.6.32-71.29.1.el6.x86_64)

 

root (hd0,0)

 

kernel /boot/vmlinuz-2.6.32-71.29.1.el6.x86_64 ro root=UUID=ab9d8f92-40ce-476e-abc2-14489517db94 rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us crashkernel=auto rhgb quiet

 

initrd /boot/initramfs-2.6.32-71.29.1.el6.x86_64.img

 

……

 

c)    更改后的内容如下,注意红色字体

 

……

 

default=0

 

timeout=5

 

splashp_w_picpath=(hd0,0)/boot/grub/splash.xpm.gz

 

hiddenmenu

 

title CentOS Linux (3.0.4)

 

root (hd0,0)

 

kernel /boot/xen-4.1.1.gz

 

module /boot/vmlinuz-3.0.4 ro root=UUID=ab9d8f92-40ce-476e-abc2-14489517db94 rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us crashkernel=auto rhgb quiet

 

module /boot/initramfs-3.0.4.img

 

title CentOS Linux (2.6.32-71.29.1.el6.x86_64)

 

……

 

    P.S. 总的来说,就是将默认启动项变成新安装的3.0内核,并将3.0内核的kernel从vmlinuz换做xen,而选来的vmlinuz变成一个module,下面这个.img文件也变成一个module。
    P.P.S 在改grub之前最好先备份一下,这样改残了还可以重新从备份那个文件重新改一次。

 

七、    完工验收

 

a)    重启

 

# reboot

 

b)    查看dom0是否运行# xm list

 

c)    如果你看见下面的内容,说明xen的安装启动成功了

 

Name        ID  Mem   VCPUs   State   Time(s)

 

Domain-0     0   6195     8     r-----   8449.4

 

八、    参考内容

 

a)    《centos6.0编译安装xen-4.1+linux3.0》

 

http://singlegod.blog.51cto.com/1909710/675330    

 

b)    Xen4.1 Release Notes

 

 http://wiki.xen.org/xenwiki/Xen4.1?highlight=(xen%204.1)