由于论文原因,这里构建一个低版本的xen虚拟,注意版本对安装的影响


 

一、     安装ubuntu10.04

国内唯一可以源:

deb http://mirrors.163.com/ubuntu/ lucid mainuniverse restricted multiverse

deb-src http://mirrors.163.com/ubuntu/ lucid mainuniverse restricted multiverse

deb http://mirrors.163.com/ubuntu/ lucid-securityuniverse main multiverse restricted

deb-src http://mirrors.163.com/ubuntu/lucid-security universe main multiverse restricted

deb http://mirrors.163.com/ubuntu/ lucid-updatesuniverse main multiverse restricted

deb http://mirrors.163.com/ubuntu/ lucid-proposeduniverse main multiverse restricted

deb-src http://mirrors.163.com/ubuntu/lucid-proposed universe main multiverse restricted

deb http://mirrors.163.com/ubuntu/ lucid-backportsuniverse main multiverse restricted

deb-src http://mirrors.163.com/ubuntu/lucid-backports universe main multiverse restricted

deb-src http://mirrors.163.com/ubuntu/lucid-updates universe main multiverse restricted

 

加上官方源

deb http://security.ubuntu.com/ubuntulucid-security main

 

 

二、     更新ubuntu的内核kernel版本为:3.0.0-13-peneric-pae

aptitude install linux-p_w_picpath-3.0.0-13-generic-pae

最好提前安装头文件包 linux-header-3.0.0-13

三、     编译安装xen-4.1.2源码包

3.1下载源码包

一定在linux中下载,否则出错

wget http://bits.xensource.com/oss-xen/release/4.1.2/xen-4.1.2.tar.gz

 

3.2 检查编译时所需的库

我检测缺失库:方法xen源码包/tools/check/make

texlive-latex-base

TransFig:You need thefig2dev program in the TransFig package in addition to xfig to be complete

推荐完全安装所有库:

apt-get install bcc bin86 gawk bridge-utils iproutelibcurl3 libcurl4-openssl-dev bzip2 module-init-tools transfig tgif texinfotexlive-latex-base texlive-latex-recommended texlive-fonts-extratexlive-fonts-recommended pciutils-dev mercurial build-essential make gcclibc6-dev zlib1g-dev python python-dev python-twisted libncurses5-dev patchlibvncserver-dev libsdl-dev libjpeg62-dev iasl libbz2-dev e2fslibs-dev git-coreuuid-dev ocaml ocaml-findlib libx11-dev libc6-xen gcc-multilib xz-utils

 

3.3 编译,安装

# tar zxvf xen-4.1.2.tar.gz

# cd xen-4.1.2

# make world

# make install

如果是要在另一台机子上部署的用make dist。

编译过程中会通过git或hg从网上下源码,所以要确保网络连通

 

3.4修改xm为默认工具

 对于Xen的管理工具,Xen 4.1后的趋势是xl逐渐替代xm。用哪个可以在配置文件中设置:

/etc/default/xen
TOOLSTACK="xm"

 

3.5 设置启动服务

# update-rc.d xencommons defaults 19 18
# update-rc.d xend defaults 20 21
# update-rc.d xendomains defaults 21 20
# update-rc.d xen-watchdog defaults 22 23

和启动模块,在/etc/modules中添加:

xen-evtchn
xen-gntdev
xen-netback
xen-blkback
xenfs
blktap

 

3.6 添加启动项

长按shift调出grub菜单,选刚才新加的那项,进入dom0

menuentry 'Ubuntu GNU/Linux, with Xen 4 and Linux3.0.0-13-generic-pae' --class ubuntu --class gnu-linux --class gnu --class os--class xen {

       insmod part_msdos

       insmod ext2

        setroot='(hd0,msdos8)'

        search --no-floppy --fs-uuid --set=root594f161e-0a85-4543-98c9-3be570ab8f4c

       echo    'Loading Xen 4 ...'

       multiboot       /boot/xen-4.gzplaceholder 

       echo    'Loading Linux3.0.0-13-generic-pae ...'

       module  /boot/vmlinuz-3.0.0-13-generic-paeplaceholder root=UUID=594f161e-0a85-4543-98c9-3be570ab8f4c ro  quiet splash

       echo    'Loading initial ramdisk...'

       module /boot/initrd.img-3.0.0-13-generic-pae

}

 

3.7启动xend
首先启动xencommons
sudo service xencommons start
启动xend之前关闭网卡启动xend之后重启网卡(如果不这样做会提示出错,原因暂不详)
sudo ifconfig eth0 down
sudo service xend start
sudo ifconfig eth0 up

 

可能出现的问题:

1) ImportError: libxenctrl.so.4.0: cannot openshared object file: No such file or directory

在64位环境中,Xen编译生成了libxenctrl.so.4.0,并把它放到/usr/lib64中,为了让系统能找到它,需要在/etc/ld.so.conf.d/libc.conf中加入

/usr/lib64

然后

# ldconfig

2) can't find module xxxx

Xen的管理工具里很多是python写的,而Ubuntu中默认是不将/usr/lib/python2.7/site-packages放入module搜索路径的。比较简便的方法是在.bashrc中加

export PYTHONPATH=/usr/lib/python2.7/site-packages

3)Error: Unable to connect to xend: No such file ordirectory. Is xend running?

可以试试重新启动xend:

# xend restart

当然很多情况可能导致这个问题,版本不对或是设置不对等等。

 

四、     生成dom0domU,创建实验ubuntu-hvm

  1. a)       为虚拟机添加新块硬盘

  2. b)      用gparted 创见新的dos2 分区表

  3. c)       安装lvm2软件

  4. d)      格式化新硬盘为LV2格式:

fdisk /dev/sdb  n-创建新分区  p-创建主分区 1-主分区号 最后一块磁盘号 默认回车  t-修改分区类型  输入8e-linux lvm分区类型代码w-保存退出

  1. e)       创建物理卷pvcreate /dev/sdb1

  2. f)       创建卷组 vgcreate vg0/dev/sdb1

  3. g)       创建逻辑卷

  4. 1.pvs

查看所在vg名:ubuntu-vg

2.lvcreate -L 6G -n ubuntu-hvm /dev/ubuntu-vg

在该group中,创建逻辑卷ubuntu-hvm

3.vi /etc/xen/ubuntu-hvm.cfg

创建配置信息,具体看纸上,注意磁盘处参考最新版的格式,磁盘中的sda是虚拟机中对应挂载的磁盘,不是本机磁盘,和本机磁盘卷标无关

4.xl create /etc/xen/ubuntu-hvm.cfg

创建虚拟机

5.xl list

查看是否运行

6.aptitude install xtightvncviewer

由于创建的是HVM,不能用终端连接 console 主机名,下载vncviewer

7. xl vncviewer ubuntu虚拟机名

 

五、     修改源代码,实现Dynamic Extracted

待续。。。