Grub 无法在 VirtualBox 上找到根磁盘

Grub 无法在 VirtualBox 上找到根磁盘

我已经为自己构建了一个 Arch Linux 变体的启动映像,用于写入 USB 记忆棒。它使用具有默认值的 grub,并且在从 USB 启动物理机箱时工作正常。(不过这个问题应该与 Arch 无关)

现在我尝试在 VirtualBox 中使用相同的图像(如果有必要的话,在 Mac 上)。首先我将其转换(仍然在 Linux/Arch 上):

VBoxManage convertfromraw foo.img foo.vmdk --format VMDK

然后我将其 scp 到 Mac,并通过 GUI,选择“Linux”/“其他 Linux(64 位)”,并选择 .vmdk 文件作为根磁盘。

Grub 出现,向​​我显示了正确的选项,然后屏幕空白(正如它应该的那样),思考了一会儿,然后我得到了一些版本的“无法找到根磁盘”:

错误:未找到设备“UUID=3d6ee...”。跳过 fsck。
错误:无法找到根设备“UUID=3d6ee...”。
您正被置于恢复 shell 中。

在恢复 shell 中:

# blkid

(没有什么)

但是,如果我选择 grub 启动选项“fallback initramfs”,它就可以正常启动。如果我然后说:

# blkid
/dev/sda1:UUID="3d6ee..." TYPE="ext4" PARTUUID="771...-01"
/dev/sda2:UUID="98234..." TYPE="ext4" PARTUUID="771...-02"

这似乎告诉我它找不到的 UUID 确实存在。

我在设置 grub 时尝试在 /etc/default/grub 中设置 GRUB_DISABLE_LINUX_UUID=true,但是出现以下消息:

错误:未找到设备“/dev/mapper/loop1p1”。跳过 fsck。
错误:无法找到根设备“/dev/mapper/loop1p1”。

(我想这个没什么可挑剔的...)

那么为什么后备的 initframfs 能找到它,而默认的却找不到。更糟糕的是,为什么 blkid 什么都不显示?

(我已将这个问题发布到 Arch Linux 和 VirtualBox 支持板上,但目前尚无回复。)

答案1

尝试编辑您的/etc/mkinitcpio.conf(在后备模式下)以block在之前使用钩子autodetect并重新生成图像mkinitcpio -p linux(另请参阅我的更详细的答案自己的问题关于这个话题,我有一个非常类似的问题)

相关内容