Ist es möglich, eine mit grub-mkstandalone erstellte IMG-Datei von cfg zu booten?

Ist es möglich, eine mit grub-mkstandalone erstellte IMG-Datei von cfg zu booten?

Ich habe also eine voll funktionsfähige IMG-Datei, die ich mit grub-mkstandalone erstellt habe. Ich habe sie auf eine CD gebrannt und sie bootet einwandfrei, das ISO wird in einer VM problemlos geladen usw.

Jetzt möchte ich eine vorhandene grub.cfg mit dieser .img-Datei verknüpfen, als ob es sich um einen regulären Bootvorgang handeln würde. Ist das sinnvoll? Ich habe beispielsweise einen USB-Stick mit installiertem Grub. Ich habe mehrere Loop-Geräte zum Booten von ISOs konfiguriert. Alle Linux. In diesem Fall möchte ich jedoch stattdessen die .img-Datei laden (die ihre eigene grub.cfg hat). Ich möchte also das Menü aus dieser grub.cfg sehen, sobald die .img-Datei geladen ist, und dann das Betriebssystem davon booten.

Ich habe tagelang nach der Antwort gesucht und die Dokumentation gelesen, konnte die Antwort jedoch nicht finden.

Wenn die Frage unklar war, lassen Sie es mich wissen und ich werde sie klären. Vielen Dank im Voraus.

BEARBEITEN:

Nehmen wir zum Beispiel an, ich habe diesen Menüeintrag:

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
}

Das funktioniert einwandfrei. Allerdings möchte ich die von mir erstellte IMG-Datei laden, anstatt Linux auf diese Weise zu laden, damit ich das Grub-Menü sehen kann, das sich im ISO befindet.

Also so etwas?

menuentry 'My OS' {
    set isofile="/iso/os_5.1.1_amd64.iso"
    loopback loop (hd0,msdos1)$isofile
    .... (loop)/boot/grub/my.img
}

Die Punkte stellen eine mir unbekannte Magie dar, mit der das funktioniert (falls es überhaupt möglich ist).

Antwort1

Für EFI-Images können Sie Folgendes verwenden chainloader(aber ich vermute, Sie haben zu diesem Zeitpunkt das BIOS verwendet; ich weiß nicht, ob es dafür funktioniert):

menuentry 'My OS' {
    chainloader (hd0,msdos1)/BOOT/EFI/somedir/somebin.efi
}

Also hätte ich versucht (ungetestet!!):

menuentry 'My OS' {
    set isofile="/iso/os_5.1.1_amd64.iso"
    loopback loop (hd0,msdos1)$isofile
    chainloader (loop)/boot/grub/my.img
}

verwandte Informationen