Gentoo 在 Xen HVM 客户机中运行,支持 xvd 设备

Gentoo 在 Xen HVM 客户机中运行,支持 xvd 设备

我正在尝试将 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 文件。

相关内容