Xen Log 2-Build HVM DomainU

经过上一篇的步骤之后,Xen已经运行并且将原来的OS作为Domain0启动了起来。在文章末尾提到过HVM与PV,本篇会使用建立一个硬盘镜像并安装Ubuntu14.04,最后以HVM启动。

可以参考这里,这是通过克隆自己的host OS来作为Guest Domain的。不过我弄完后磁盘配置好像出了点问题,因此就重新安装一个ubuntu来使用。

###创建硬盘镜像

创建一个10G左右的磁盘镜像:

dd if=/dev/zero of=xen-ubuntu.img bs=1024k seek=10240 count=0

跳过10240M 左右的空间,基本上可以建立一个10G的磁盘镜像。

创建文件系统:

mkfs -t ext3 xen-ubuntu.img

###创建虚拟机的配置文件:

配置文件的详细语法见XL Configure File Syntax
hvm的配置文件(hvm-ubuntu.cfg)如下:

hvm-ubuntu.cfgsource
1
2
3
4
5
6
name="hvm-ubuntu"
builder = 'hvm'
vcpus = 1
memory = 512
disk=['file:/home/alice/Xen/Img/xen-ubuntu.img,hda,w', 'file:/home/alice/Xen/ISO/ubuntu14.iso,hdc:cdrom,r']
boot="dc"

详细的配置文件见附件(附件中boot顺序已经改为从disk启动),根据自己的配置进行修改。

###启动GuestVM

1
2
sudo xl create hvm-ubuntu.cfg
vncviewer localhost:0

vncviewer 可以观看我们的虚拟机,如果开启多个,则为localhost:1, localhost:2 ...

正常安装,之后修改配置文件为从硬盘启动即可

使用xl list查看,可以发现hvm-ubuntu已经启动:

Network

如果要为Guest配置网络的话可以使用网桥, Ubuntu的可以直接参考: http://ask.xmodulo.com/configure-linux-bridge-network-manager-ubuntu.html

Debian默认用的是bridge-utils, Ubuntu的话也可以先安装下, 之后在配置文件里面加一下,最后重启网络服务就行。

1
2
3
4
5
6
7
8
9
10
11
12
sudo apt-get install bridge-utils

# Add config to /etc/network/interfaces
auto xenbr0
iface xenbr0 inet dhcp
bridge_ports eth0

# Comment original eth0 and restart networking service
sudo service networking restart

# Now we can add network config for our guest in cfg file,
add vif=["bridgename"] (see the source)

Misc

开机如果因为找一个module需要大量1Min30s的话,可以取消它的开机自动probe:

1
2
nano /etc/modprobe.d/blacklist.conf
blacklist i2c-piix4

ChangeLog

  • 2017-05-07: Add bridge in Ubuntu