现在新版本为Fedora 7,不过发出来给大家参考下吧,转载。
抑郁了很长时间,终于能在xen上运行GuestOS了。
首先安装的HostOS为Fedora Core 6,安装时选上虚拟化软件,系统就自动为我们安装xen,省去了很多麻烦
1、下载一个Fedora Core 6基础系统,现在最新的是Fedora 7了。
2、新建一个目录 mkdir /opt/fc6 ,将下载的基础系统的镜像放在此目录下,解压,后会出来4个文件:fedora.fc6.img,fedora.swap,以及两个*.cfg的配置文件。
# bzip2 -d fedora.fc6.20070313.img.tar.bz2
# tar vxf fedora.fc6.20070313.img.tar
3、修改配置文件fc6.cfg如下:
kernel = "/boot/vmlinuz-2.6.18-1.2798.fc6xen"
ramdisk = "/boot/initrd.img"
memory = 128
name = "fc6"
vif = [ '' ]
dhcp = "dhcp"
disk = ['file:/opt/fc6/fedora.fc6.img,sda1,w','file:/opt/fc6/fedora.swap,sda2,w']
root = "/dev/sda1 ro"
4、# mkdir /mnt/fc6
将/opt/fc6/fedora.fc6.img挂载到/mnt/fc6上
# mount -o loop /opt/fc6/fedora.fc6.img /mnt/fc6
将/lib/modules/下的文件夹2.6.18-1.2798.fc6xen复制到/mnt/fc6/lib/modules/下,然后
# umount /mnt/fc6
5、做一个initrd.img镜像
新建一个文件夹initrd,将/boot下initrd-2.6.18-1.2798.fc6xen.img复制到initrd文件夹下
# mkdir /initrd
# cp initrd-2.6.18-1.2798.fc6xen.img /boot /initrd
# mv initrd-2.6.18-1.2798.fc6xen.img initrd.gz
# gunzip initrd.gz
# cpio -idcmv < initrd
此时,initrd文件夹下会解压出许多文件夹,将/lib/modules/2.6.18-1.2798.fc6xen/kernel/drivers/xen/netfront下的xennet.ko以及/lib/modules/2.6.18-1.2798.fc6xen/kernel/drivers/xen/blkfront下的xenblk.ko复制到/initrd/lib下,并且在/initrd下的init文件中添加如下:
echo "Loading xenblk.ko module"
insmod /lib/xenblk.ko
echo "Loading xennet.ko module"
insmod /lib/xennet.ko
进入到initrd文件夹,执行命令:
# find .|cpio -c -o > initrd.img
# gzip initrd.img
# mv initrd.img.gz initrd.img将新生成的initrd.img复制到/boot中,并且按照上面将配置文件修改好,执行命令:
# xm create -c /opt/fc6/fc6.cfg
激动人心的一刻到来......
常见错误如下:
mount: could not find filesystem '/dev/root'
switchroot: mount failed: No such file or directory
Kernel panic - not syncing: Attempted to kill init
没有做第5步工作会导致上面两个错误
VFS: Cannot open root device "sda1" or unknown-block(0,0)
Please append a correct "root=" boot option
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
没有做第4步的工作会导致上面的错误。

