测试环境:
系统:rhel5.1
xen版本:xen3.1
1.准备好一个操作系统安装盘iso镜像,如winxp.iso
2.创建虚拟机的磁盘镜像:
#qcow-create 8000 vmdisk.img
这样就创建了一个8g的qcow格式的vmdisk.img
3.写配置文件。
把/etc/xen/xmexample.hvm拷贝到你自己的目录下,然后用vim打开修改,修改完成后变成,括号中的文字是我的注释:
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" (引导文件)
builder='hvm'(虚拟机类型)
memory = 512(内存大小)
name = "winxp"(虚拟机名字)
vif = [ 'type=ioemu, bridge=xenbr0' ](网卡以及相连的网桥)
disk = [ 'file:/home/myhome/myvm/vmdisk.img,ioemu:hda,w','file:/home/myhome/myvm/winxp.iso,hdc:cdrom,r' ](磁盘和光盘)
device_model = '/usr/' + arch_libdir + '/xen/bin/qemu-dm'
boot="d" (优先启动设备)
sdl=0
vnc=1
vnclisten="0.0.0.0"(允许任何主机监听)
4.用配置文件启动虚拟机:
#xm create xmexample.hvm
#xm list
如果看到了虚拟机的运行状态,虚拟机就启动成功了
5.用vncviewer连接到图形界面
#vncviewer 127.0.0.1:5900
6.看到图形界面后就可以安装虚拟机了,安装完成后需要重启,将配置文件中的boot="d"改为boot="c",从硬盘启动。
7.到此全虚拟镜像就制作好了
注:
1.如果要用虚拟机每次启动都使用相同的 ip,我们最好在vif 中把Mac写死,例如vif = [ 'type=ioemu, mac=00:11:22:33:44:55,bridge=xenbr0' ]
2.关于vnc连接,注意IP和端口并不是固定的,根据实际情况,如果你的远程连接,就写远程主机的IP,而端口号一般是根据vnc窗口的数量从5900递增,可以运行以下命令查找虚拟机的端口号:
#xm list -l 4 | grep location
把其中的4替换成你的虚拟机ID即可