我在带有 LVM 的软件 RAID 0 上运行 Debian Wheezy。我试图让 Xen 工作,但 grub 拒绝在其中启动。我按照以下说明安装了 Xen:http://wiki.debian.org/Xen
到达后
multiboot /boot/xen-4.1-amd64.gz placeholder dom0_mem=4096M
我明白了
error: couldn't open file
其次是
error: you need to load the multiboot kernel first
不过文件没有任何问题。以下是 Xen 的 grub.cfg 条目:
menuentry 'Debian GNU/Linux, with Xen 4.1-amd64 and Linux 3.2.0-4-amd64' --class debian --class gnu-linux --class gnu --class os --class xen {
insmod raid
insmod mdraid1x
insmod lvm
insmod part_msdos
insmod part_msdos
insmod ext2
set root='(vg00-dom0-root)'
search --no-floppy --fs-uuid --set=root 681448b8-7afb-4a25-9830-490dfc0f29a3
echo 'Loading Xen 4.1-amd64 ...'
multiboot /boot/xen-4.1-amd64.gz placeholder dom0_mem=4096M
echo 'Loading Linux 3.2.0-4-amd64 ...'
module /boot/vmlinuz-3.2.0-4-amd64 placeholder root=/dev/mapper/vg00-dom0--root ro initrd=/install/initrd.gz quiet
echo 'Loading initial ramdisk ...'
module /boot/initrd.img-3.2.0-4-amd64
}
下面是我的常规启动项。它非常相似,并且运行完美。
menuentry 'Debian GNU/Linux, with Linux 3.2.0-4-amd64' --class debian --class gnu-linux --class gnu --class os {
load_video
insmod gzio
insmod raid
insmod mdraid1x
insmod lvm
insmod part_msdos
insmod part_msdos
insmod ext2
set root='(vg00-dom0-root)'
search --no-floppy --fs-uuid --set=root 681448b8-7afb-4a25-9830-490dfc0f29a3
echo 'Loading Linux 3.2.0-4-amd64 ...'
linux /boot/vmlinuz-3.2.0-4-amd64 root=/dev/mapper/vg00-dom0--root ro initrd=/install/initrd.gz quiet
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-3.2.0-4-amd64
}
我知道这看起来像是“请帮我解决我的问题”之类的问题,但这根本不是我的本意。我已经花了几个小时在谷歌上搜索和尝试各种方法,但我找不到任何能让我更接近答案的东西。我在网上找到的最接近答案的答案是某人忘记在 grub.cfg 中添加“搜索”行。在我看来,这似乎不是问题所在,因为“搜索”似乎对我的常规启动项来说工作正常。
我真的希望有人能给我指明正确的方向,以便我找到解决方案。
谢谢你!
答案1
我在 Google 上搜索了“xen grub2 multiboot”,发现了一个类似的问题超级用户。
我认为答案的基础是内核不匹配。解决方案中缺少 /boot 前缀,这让我感到奇怪,但可能是他确实将 /boot 放在了它自己的分区上。
答案2
我遇到过类似的问题。我认为您的问题是由于您的 Xen-Image 已压缩,但您却忘记在 Xen 的菜单项中“insmod gzio”造成的。