是否可以從 cfg 引導 grub-mkstandalone 建立的 img 檔案?

是否可以從 cfg 引導 grub-mkstandalone 建立的 img 檔案?

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

相關內容