感谢支持
我们一直在努力

Ubuntu 12.04 源码安装 Xen 4.2

听说Xen 4.2支持嵌套虚拟化了(nested virtualization,在虚拟机里可以使用vmx或者svm),赶紧下来试试。

目标系统:Ubuntu 12.04 i386 + i5 2510E + QM67

CPU和主板都支持vt-d,因此除了实验嵌套虚拟化,还可以实验设备passthrough。

xen主要由两部分组成,一个是hypervisor,就是编译出来的xen.gz文件,这个是开机启动时加载的。

另一部分是工具。

一般编译Xen只需要两部,make xen tools && make install-xen install tools

还有一部分可选,stubdom,我们在这也编译,make stubdom && make install-sbudom

准备工作

sudo apt-get install bcc Python-dev gettext iasl uuid-dev libncurses5-dev libglib2.0-dev  libyajl-dev texinfo git

编译Xen

因为我要编译XSM模块,也就是Xen Security Module,所以先要修改一下Config.mk

修改Config.mk,将XSM_ENABLE和FLASK_ENABLE改为y

make xen

出现下面的错误

Ubuntu 12.04 源码安装 Xen 4.2

这时出现了一个关于类型的警告,是与XSM有关的代码,直接修改一下代码就行了

xen/xsm/flask/ss/policydb.c

1779行

if ( len != strlen(POLICYDB_STRING) )

{

printk(KERN_ERR “Flask:  policydb string length %d does not “

“match expected length %lu\n”,

len, strlen(POLICYDB_STRING));

goto bad;

}

改为(unsigned long) (strlen(POLICYDB_STRING)

这样就可以编译通过了,编译完就可以安装Xen,make install-xen

编译tools

这一步的依赖关系最多,不过前边都已经把依赖库安好了,直接make tools就行了,注意这一步会使用git下来一部分代码,因此需要网络连接。

安装tools的时候要格外注意,make install-tools Python_PREFIX_ARG=

不然在启动xend的时候会遇到下面的问题:

$ sudo /etc/init.d/xend start

Traceback (most recent call last):

File “/usr/sbin/xend”, line 36, in

from xen.xend.server import SrvDaemon

ImportError: No module named xen.xend.server

Traceback (most recent call last):

File “/usr/sbin/xend”, line 36, in

from xen.xend.server import SrvDaemon

ImportError: No module named xen.xend.server

这是Python的路径问题,因为 xend 会默认从 /usr/local/lib/python2.6/dist-packages/ 找 script 和导入库,但是这时候 /usr/local/lib/python2.6/dist-packages/ 下面什么东西都没有。

所以要改变 install-tools 的默认安装路径到 /usr/local/lib/python2.6/dist-packages/ 下,PYTHON_PREFIX_ARG 不带任何参数就可以了

编译stubdom

这一步没遇到问题,直接make stubdom && make install-stubdom即可,需要网络连接。

启动Xen Dom0

sudo update-grub2,更新grub

开机之后,到了scrubbling free ram…这个地方就重启,找了很多地方也没找到原因,最后升级了个内核解决了问题。

安装虚拟机

不使用xm和xend,使用新的xl工具,安装一个windows xp虚拟机

创建一个虚拟硬盘,直接使用dd

dd if=/dev/zero of=xp.img bs=1M count=10240

创建虚拟机配置文件xp.cfg,如下:

name = “xp” #名字

memory = 512  #内存

disk =[‘file:/root/xen_images/xp.img,hda,w’,’file:/root/xen_images/xp.iso,hdc:cdrom,r’]

#xp.img是磁盘,xp.iso是xp安装文件,作为cdrom使用

boot = ‘da’  # a表示harddisk,d表示cdrom,此处为启动顺序

vir = [ ‘type=ioemu,bridge=virbr0’] #使用virbr0网桥

vnc = 1 #开启vnc

vncdisplay = 1 #vnc端口为2

启动虚拟机

sudo xl create xp.cfg

使用vncviewer查看

vncviewer 127.0.0.1:1

OK,现在可以看到xp的安装界面了。

赞(0) 打赏
转载请注明出处:服务器评测 » Ubuntu 12.04 源码安装 Xen 4.2
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏