所以我有一个使用 grub-mkstandalone 创建的功能齐全的 .img 文件。我把它放在 CD 上,它启动得很好,ISO 在虚拟机中加载得很好,等等......
现在,我想做的是将现有的 grub.cfg 链接到这个 .img 文件,就像它是常规启动一样。那有意义吗?例如,我有一个安装了 grub 的 USB 闪存盘。我有几个配置为引导 ISO 的循环设备。所有Linux。但是,在这种情况下,我想加载 .img 文件(它有自己的 grub.cfg)。所以我想在 .img 加载后看到 grub.cfg 中的菜单,然后从中启动操作系统。
我已经寻找答案好几天了,并阅读了文档,但我找不到答案。
如果问题不清楚,请告诉我,我会澄清。提前致谢。
编辑:
举例来说,假设我有这个菜单项:
menuentry 'My OS' {
set isofile="/iso/os_5.1.1_amd64.iso"
loopback loop (hd0,msdos1)$isofile
linux (loop)/vmlinuz boot=live toram nomodeset
initrd (loop)/initrd
}
这很好用。但是,我想加载我创建的 .img 文件,而不是像这样加载 linux,这样我就可以看到 ISO 内的 grub 菜单。
那么像这样的事情吗?
menuentry 'My OS' {
set isofile="/iso/os_5.1.1_amd64.iso"
loopback loop (hd0,msdos1)$isofile
.... (loop)/boot/grub/my.img
}
这些点代表了一些我不知道的魔法来使这项工作成功(如果可能的话)。
答案1
对于 EFI 映像,您可以使用chainloader
(但我怀疑您当时使用的是 BIOS;不知道它是否适用):
menuentry 'My OS' {
chainloader (hd0,msdos1)/BOOT/EFI/somedir/somebin.efi
}
所以,我会尝试(未经测试!):
menuentry 'My OS' {
set isofile="/iso/os_5.1.1_amd64.iso"
loopback loop (hd0,msdos1)$isofile
chainloader (loop)/boot/grub/my.img
}