
所以我有一個使用 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
}