在ubuntu server 11.10上创建一个PV的Linux domU, 启动时出现下面的错误:
ALERT! /dev/xvda2 does not exist. Dropping to a shell!
在google上搜索了一下,发现是由于xen-blkfront模块不在ubuntu server 11.10默认的ramdisk中,要简单的绕过该问题,可以采用如下办法:
(initframfs) modprobe xen-blkfront
(initramfs) exit
Once the host finishes booting, log in and sudo to root. Then enter the following:
echo "xen-blkfront" >> /etc/initramfs-tools/modules
update-initramfs -u
update-initramfs: Generating /boot/initrd.img-3.0.0-12-generic
另外,我发现用xen-tools产生的domU镜像只能使用dom0的内核和ramdisk, 如果domU需要使用不同内核和ramdisk, 可以采用pygrub.配置如下:1) pygrub已经被xen 4.1集成, 但是路径有点问题,需要纠正一下:
- ln -sf /usr/lib/xen-4.1/bin/pygrub /usr/bin
2) 定制由xen-tools产生的domU镜像文件:
- sudo mount -o loop disk.img /mnt
- sudo cp -rf /boot/vmlinuz-3.0.0-12-generic /mnt
- sudo cp -rf /boot/initrd.img-3.0.0-12-generic /mnt
- sudo mkdir /mnt/boot/grub
3) 为domU创建一个grub的配置文件boot/grub/menu.lst如下:
- default 0
- timeout 5
- title Debian
- root (hd0,0)
- kernel /boot/vmlinuz-3.0.0-12-generic root=/dev/xvda2 ro
- initrd /boot/initrd.img-3.0.0-12-generic
4) 重建domU的ramdisk:
- sudo echo "xen-blkfront" >> /mnt/ /etc/initramfs-tools/modules
- sudo chroot /mnt
- update-initramfs -u
- umount /mnt
5) 修改domU的配置文件, 将默认的kernel和ramdisk换成用pygrub引导:
- #kernel = '/boot/vmlinuz-3.0.0-12-generic'
- #ramdisk = '/boot/initrd.img-3.0.0-12-generic'
- bootloader = '/usr/bin/pygrub'
6) 启动domU, 大功告成sudo xm create -c domu.cfg
阅读(3177) | 评论(0) | 转发(0) |