そのため、grub-mkstandaloneを使用して生成された完全な機能の.imgファイルがあります。 CDに入れたらブートが上手くなり、ISOは仮想マシンにうまくロードされました。
今やりたいことは、通常のブートのように、既存のgrub.cfgをこの.imgファイルにリンクすることです。馬になる?たとえば、grubがインストールされているUSBフラッシュドライブがあります。 ISOを起動するように構成された複数のループデバイスがあります。すべてのLinux。しかし、この場合は、.imgファイル(独自のgrub.cfgがある)をロードしようとします。だから.imgがロードされた後、grub.cfgのメニューを見て、ここでOSを起動したいと思います。
数日間、答えを見つけて文書を読みましたが、答えが見つかりませんでした。
質問が不明な場合は、お知らせください。明確に説明します。よろしくお願いします。
編集する:
たとえば、次のメニュー項目があるとします。
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
}
これは素晴らしい作品です。しかし、このようにLinuxをロードするのではなく、ISOの内部でgrubメニューを見ることができるように、私が作成した.imgファイルをロードしたいと思います。
だからこんなこと?
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
}