在编译安装xen时,通过修改配置文件,会自动在网上下载内核源码,然后编译生成domU. 但是如何通过编译源码来定制自己的domU呢?
1. 下载支持xen的最新内核代码(pv_os )
2. cd 到该内核目录下
3. make menuconfig
4.make && make moudles_install && make install
这样就编译出了自己的domU内核
然后制作虚拟硬盘
5. mkdir -p /disk/domU
cd /disk/domU
dd if=/dev/zero of=ubuntu.img bs=1M count=10000
mke2fs -j ubuntu.img
6.
mount -o loop /disk/domU/ubuntu.img /mnt
cp -ax /{root,dev,var,etc,usr,bin,sbin,lib} /mnt
cd /mnt
mkdir {home, proc, sys,tmp,opt,selinux}
7. vim etc/fstab
修改etc/fstab表
proc /proc proc defaults, 0, 0
/dev/xvda5 / ext3 defaults, errors=remount-ro 0 0
dev /dev tmpfs rw 0 0
chmod 777 tmp/
umount /mnt
8配置文件 vim ubuntu.cfg
kernel = "/boot/vmlinuz-2.6.32
name = "ubunt"
disk = ['file:/disk/domU/ubuntu.img,xvda5,w']
root = "/dev/xvda5 ro"
extra = 'xencons=tty'
这样就可以启动了
/etc/init.d/xend start
xm create -c ubuntu.cfg
如果出现下面错误:
init: ureadahead main process (429) terminated with status 5
udevd[454]: failed to create queue file: No such file or directory
udevd[454]: error creating queue file
init: udev main process (454) terminated with status 1
init: udev main process ended, respawning
init: udevmonitor main process (456) terminated with status 2
udevadm[751]: error sending message: Connection refused
mountall: Disconnected from Plymouth
init: plymouth main process (430) killed by SEGV signal
init: plymouth-splash main process (752) terminated with status 2
那解决方法是:
mv /etc/init/ureadahead.conf /etc/init/ureadahead.conf.disabled
mv /etc/init/ureadahead-other.conf /etc/init/ureadahead-other.conf.disabled
并修改/etc/fstab,添加如下:
dev /dev tmpfs rw 0 0
重启即可