将预编译的 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-pc
、i386-efi
或 x86_64-efi
.
通过将 --target=<TARGET>
传递给 grub-install
进行安装。
我有一个 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-pc
、i386-efi
或 x86_64-efi
.
通过将 --target=<TARGET>
传递给 grub-install
进行安装。