我的试验环境:
1.使用root用户登陆
2.CentOS为原生dvd最小化安装
3.接入internet
一、安装xen
# yum –y install xen*
安装XEN需要的服务
# yum -y install kernel-xen*
安装XEN的相关内核
二、检查启动选项是否使用xen内核启动
1、检查xen内核文件
安装是否正常:文件位于/boot
# ls –lh /boot
total 9.5M
-rw-r--r-- 1 root root 61K Mar 16 08:19 config-2.6.18-8.el5
-rw-r--r-- 1 root root 60K Mar 16 09:27 config-2.6.18-8.el5xen
drwxr-xr-x 2 root root 1.0K Aug 15 14:47 grub
-rw------- 1 root root 1.5M Aug 13 17:18 initrd-2.6.18-8.el5.img
-rw------- 1 root root 1.5M Aug 15 14:47 initrd-2.6.18-8.el5xen.img
drwx------ 2 root root 12K Aug 13 17:15 lost+found
-rw-r--r-- 1 root root 79K Apr 1 22:49 message
-rw-r--r-- 1 root root 82K Mar 16 08:20 symvers-2.6.18-8.el5.gz
-rw-r--r-- 1 root root 83K Mar 16 09:28 symvers-2.6.18-8.el5xen.gz
-rw-r--r-- 1 root root 865K Mar 16 08:19 System.map-2.6.18-8.el5
-rw-r--r-- 1 root root 848K Mar 16 09:27 System.map-2.6.18-8.el5xen
-rw-r--r-- 1 root root 1.7M Mar 16 08:19 vmlinuz-2.6.18-8.el5
-rw-r--r-- 1 root root 2.0M Mar 16 09:27 vmlinuz-2.6.18-8.el5xen
-rw-r--r-- 1 root root 269K Mar 16 07:51 xen.gz-2.6.18-8.el5
-rwxr-xr-x 1 root root 595K Mar 16 09:43 xen-syms-2.6.18-8.el5

2、检查grub配置
# cat /boot/grub/grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/sda3
# initrd /initrd-version.img
#boot=/dev/sda
default=1
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-8.el5xen)
root (hd0,0)
kernel /xen.gz-2.6.18-8.el5
module /vmlinuz-2.6.18-8.el5xen ro root=LABEL=/
module /initrd-2.6.18-8.el5xen.img
title CentOS (2.6.18-8.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-8.el5 ro root=LABEL=/
initrd /initrd-2.6.18-8.el5.img
修改其中的default=1为default=0,启用xen内核

3、重新启动计算机

4、重启后登录系统,检查XEN是否正常
4.1 执行# xm list
Name ID Mem(MiB) VCPUs State Time(s)
Domain-0 0 3919 4 r----- 16.9
出现上述结果表示xen启动正常
4.2 检查log:
#ls -lh /var/log/xen
total 8.0K
-rwxr-xr-x 1 root root 36 Aug 15 15:43 xend-debug.log
-rw-r--r-- 1 root root 1.8K Aug 15 15:43 xend.log
# cat /var/log/xen/xend-debug.log
Nothing to flush.
Nothing to flush.
表示一切正常,我们的CentOS5中的XEN服务已经成功启动。至此,我们的CentOS5的宿主机已经安装就绪。
三、安装XEN的Linux客户机系统—CentOS 5.x

1、制作镜像文件
1.1 使用dd创建
#dd if=/dev/zero of=centos5.img bs=2k seek=4096k count=1
制作客户机主要磁盘
# dd if=/dev/zero of=swap.img bs=2k seek=512k count=1
制作客户机交换磁盘

2、创建配置文件

2.1 安装必须的工具
由于以前的安装是基于最小化安装,此时需要增加一个用于安装客户机系统的软件virt-manager,现在安装:
#yum –y install virt-manager
请注意由于此软件包为gnome下的图形管理程序,所以需要安装大量依赖包
此处流泪若干……忘记了这个包的名字,耽误时间2个小时……

2.2 开始安装客户机
# virt-install -n centos5 -r 512 --vcpus=2 --file=centos5.img --file=swap.img --nographics -l [url]http://192.168.0.11/yum/ba...[/url](你自己搭建的yum源的地址)
此时如果机器CPU支持VT技术会询问是否需要开启VT支持,一般选择no,如果支持的话选择yes,此时会要求输入光驱或光盘之类。
Would you like a fully virtualized guest (yes or no)? This will allow you to run unmodified operating systems. no
Starting install...

2.3 启动客户机的安装程序
安装由于为远程的,文本方式,部分ssh客户端下可能会有一些乱,请尝试,此部分和一般网络安装操作系统无异,在此不再详细描述。
建议分区是swap用于交换分区,主分区一个boot一个根分区
 
 
2.4 补充说明安装源的制作(最简单的方法)
在一台安装了CentOS5的服务器上开启httpd服务,把CentOS5的DVD整盘复制到/var/www/html/yum/base下即可

2.5 配置文件
安装客户机完毕后会在/etc/xen下产生一个centos5的文件就是配置文件
参考配置文件centos5:
name = "centos5"
memory = "768"
disk = [ 'tap:ai/opt/xen/centos5/centos5.img,xvda,w', 'tap:ai/opt/xen/centos5/swap.img,xvdb,w', ]
vif = [ 'bridge=xenbr0', ]
bootloader="/usr/bin/pygrub"
vcpus=2
on_reboot = 'restart'
on_crash = 'restart'

四、安装XEN的Windows客户机
前提:宿主计算机的CPU支持intel的VT或者AMD的amd-v,并且在BIOS中开启了对应的选项。

1、检查是否支持VT:
#xm info |grep xen_cap
xen_caps : xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p
# xm dmesg |grep -i vmxon
(XEN) VMXON is done
(XEN) VMXON is done
如果出现上述字段则计算机支持VT,否则很有可能是不支持或者BIOS禁用了。
也可以通过 xm dmesg或者cpuinfo等等方式查询,这里就不详细描述了。

2、为实现图形化远程安装开启vnc
#yum –y install vnc*
#vi /etc/xen/xend-config.sxp
编辑下列内容(请根据自己情况修改):
(vnc-listen '192.168.0.xxx')
(vncpasswd 'password')
此处的修改也可以在对应客户端的文件中修改,参后文。

3、重启计算机
其实应该不需要重启计算机,只需要重启xend的服务即可,但是很难重启服务成功,所以干脆重启:)

4、安装windows
安装前述步骤准备好磁盘镜像文件,传输win的iso文件后执行
#virt-install -n mini -r 768 --vcpus=2 --file=mini.img --vnc -v -c /opt/yum/pwinxp.iso
应该出现以下提示:
Starting install...
Unable to connect to graphical console; DISPLAY is not set. Please connect to localhost:5900
Domain installation still in progress. You can reconnect to the console to complete the installation process.
!!请注意此种方式比较适合宿主机开启xwin图形系统并且在宿主机上操作。

4.1 检查vnc的监听
# netstat -anp |grep 5900
tcp 0 0 192.168.0.xxx:5900 0.0.0.0:* LISTEN 2748/qemu-dm
出现上述结果表明vnc已经开启(此时远程宿主机不需要开启xwin)。
此处监听端口可能有所改变,默认为590X。

4.2 使用vnc客户端连接
建议使用realvnc客户端连接!ultravnc在连接后会出现刷屏的情况,几乎无法操作。密码为在第二步设置的密码或者在配置文件中设置的密码。

4.3安装windows
安装过程中如果停止在如下画面或者不断重启:
画面主要停止在starting windows...的蓝色界面上
此种问题一般是由于ACPI的问题,请在引导光盘启动后提示按F2或者F6的时候按下F7,禁用ACPI,或者使用以下配置文件mini.hvm直接强制关闭:
import os, re
arch = os.uname()[4]
if re.search('64', arch):
arch_libdir = 'lib64'
else:
arch_libdir = 'lib'
kernel = "/usr/lib/xen/boot/hvmloader"
name = "mini"
builder = "hvm"
memory = "768"
shadow_memory = 8
disk = [ 'file:/opt/xen/mini/mini.img,hda,w', 'file:/opt/yum/pwinxp.iso,hdc:cdrom,r', ]
vif = [ 'type=ioemu,bridge=xenbr0', ]
device_model = "/usr/lib/xen/bin/qemu-dm"
kernel = "/usr/lib/xen/boot/hvmloader"
vnc=1
vnclisten="192.168.0.xxx"
vncdisplay=1
vncpasswd='password'
vncunused=1
apic=0
acpi=0
pae=1
boot="dc"
vcpus=2
serial = "pty" # enable serial console
on_reboot = 'restart'
on_crash = 'restart'
请注意cdrom我们没有使用单独的
cdrom=”/opt/yum/en2003entsp2.iso”来配置,使用此会出现以下错误:
错误为cdrom启动错误,错误代码0002
快速启动vnc客户端查看启动信息(修改配置文件),请注意在第一次修改配置文件后安装会重启,请在重启前修正启动顺序为
boot="c"
此时进入正常安装模式。以后可以去掉disk里面的cdrom选项或者修改,也可以添加删除磁盘信息。

5、其它说明
此种情况也可以用于安装linux类带xwin的系统;开启vnc仅仅是安装需求,一般情况下建议关闭!
Windows安装完毕后在客户机中安装远程控制软件如vnc或者radmin之类后关闭配置文件中的vnc选项,确保宿主机的安全。