我正在尝试将 Gentoo 安装到 Xen HVM 客户机中。安装过程一切顺利,直到您执行 grub-install。显然,grub 不知道标有“xvd”的块设备(请参阅https://bugs.gentoo.org/show_bug.cgi?id=424343)。初始错误为:
livecd# grub-install /dev/xvda /dev/xvda 没有任何对应的 BIOS 驱动器
修补 /sbin/grub-install 后可查看 xvd 设备,并修改 /boot/grub/device.map 如下:
(hd0)/dev/xvda
我现在收到以下错误:
livecd# grub-install /dev/xvda df:警告:无法读取已安装文件系统的表:没有此文件或目录 找不到 /boot 的设备:未找到或不是块设备
livecd 可以正常查看磁盘,并且 fdisk -l 显示了我的所有分区:
磁盘 /dev/xvda:48.3 GB 设备启动结束系统 /dev/xvda1 2048 206847 Linux /dev/xvda2 206848 4302847 Linux 交换 / Solaris /dev/xvda3 43002848 94371739 Linux
有人在 Xen DomU 上运行过 Gentoo 吗?任何关于如何解决这个问题的建议都将不胜感激。目前看来只有 grub 有问题。
编辑:添加 /proc/mounts
livecd ~# cat /proc/mounts 根文件系统 / 根文件系统读写 0 0 proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0 sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0 udev /dev devtmpfs rw,nosuid,relatime,大小=10240k,nr_inodes=46256,模式=755 0 0 devpts /dev/pts devpts rw,relatime,gid=5,mode=620 0 0 tmpfs / tmpfs rw,相关时间 0 0 /dev/sr0 /mnt/cdrom iso9660 ro,relatime 0 0 /dev/loop0 /mnt/livecd squashfs ro,relatime 0 0 xenfs /proc/xen xenfs rw,nosuid,nodev,noexec,relatime 0 0 rc-svcdir /mnt/livecd/lib64/rc/init.d tmpfs rw,nosuid,nodev,noexec,relatime,size=1024k,mode=755 0 0 fusectl /sys/fs/fuse/connections fusectl rw,relatime 0 0 shm /dev/shm tmpfs rw,nosuid,nodev,noexec,relatime 0 0 tmpfs /mnt/livecd/lib64/firmware tmpfs rw,relatime 0 0 tmpfs /mnt/livecd/usr/portage tmpfs rw,relatime 0 0 usbfs /proc/bus/usb usbfs rw,nosuid,noexec,relatime 0 0 /dev/xvda3 /mnt/gentoo ext3 rw,relatime,错误=继续,barrier=1,数据=writeback 0 0 /dev/xvda1 /mnt/gentoo/boot ext3 rw,relatime,错误=继续,barrier=1,数据=writeback 0 0 proc /mnt/gentoo/proc proc rw,relatime 0 0 udev /mnt/gentoo/dev devtmpfs rw,nosuid,relatime,大小=10240k,nr_inodes=46256,模式=755 0 0 devpts /mnt/gentoo/dev/pts devpts rw,relatime,gid=5,mode=620 0 0 shm /mnt/gentoo/dev/shm tmpfs rw,nosuid,nodev,noexec,relatime 0 0
ls /dev/ 的输出大
/dev/dac960_gam /dev/重新验证 /dev/xvda /dev/xvda1 /dev/xvda2 /dev/xvda3
答案1
grub-install 实际上只需要知道要安装到哪个设备上,并且由于您的 livecd 未使用 Xen 内核,因此它不会有 xvd 设备。您可以通过查看 /proc/mounts 来验证这一点:
> cat /proc/mounts
因此假设 /dev/sda 是您需要安装 grub 的设备,那么在 livecd 环境中安装 grub 真正需要做的就是:
> grub-install --no-floppy /dev/sda
不过,您仍然需要使用正确的 xvd 设备来制作 grub.conf 和 fstab 文件。