配置 EFI 引导加载程序以在 Virtual Box 中使用原始 Linux 分区

配置 EFI 引导加载程序以在 Virtual Box 中使用原始 Linux 分区

我正在尝试在 Windows 主机上的 Virtualbox 中启动现有的 Archlinux 安装。Linux 使用 EFISTUB,Windows 使用其自己的 EFI 引导加载程序。

-/dev/sda1- EFI 分区,也作为主机上 Linux 的 /boot 安装。它包含 vmlinuz-linux 和 initramfs。Windows 启动管理器也在那里。

-/dev/sda2-Linux 分区

-/dev/sda3- Windows 分区

我创建了代表分区 sda1 和 sda2 的 .vmdk 文件,然后以管理员权限启动 Vbox。将 .vmdk 附加到虚拟机。然后从虚拟机内的 live-DVD iso 启动,执行

# efibootmgr -d /dev/sda -p 1 -c -L "Arch Linux" -l /vmlinuz-linux -u "root=/dev/sda2 rw initrd=/initramfs-linux.img"

(我知道,这不是最好的主意,因为 Vbox 会在关闭 VM 后清除所有 EFI 变量。但我没有在 /sda1 上安装任何引导加载程序)

Efi 启动选项已成功创建。但它导致

Waiting 10 secs for device /dev/sda2 ...
ERROR: device '/dev/sda2' not found.  Skipping fsck.
ERROR: Unable to find root device '/dev/sda2'.
You are being dropped to a recovery shell 

在这种情况下,有人成功配置了 EFISTUB 吗?或者我应该尝试 grub-efi?

相关内容