将预编译的 GRUB 2 安装到原始图像

Install precompiled GRUB 2 to raw image

我有一个 ext4 映像文件,想用作 qemu 的磁盘映像。我想给它安装 GRUB。经过一些研究,我发现了以下命令:

创建大小为 5 GB 的图像:

qemu-img create hd.img 5G

将其挂载为循环设备:

sudo mount -o loop hd.img /mnt

安装 GRUB:

sudo grub-install --root-directory=/mnt --no-floppy --recheck /dev/loop0

qemu系统应该是x86系统。这就是问题所在:我不在 i386 上,我的主机系统上也没有安装 GRUB。所以我正在寻找 GRUB 2 的预编译版本,我可以将其复制到图像的文件系统中。有办法吗?

当然,如果您正在使用(例如)Debian,那么您已经有 per-architecture/platform 个用于 grub 目标组件的包 - 在 x86 的情况下:

  • grub-efi-amd64
  • grub-efi-ia32
  • grub-pc

如果从源代码构建,只需在配置行中指定 --target=<TARGET>,在您的情况下 TARGET 将是 i386-pci386-efix86_64-efi.

通过将 --target=<TARGET> 传递给 grub-install 进行安装。