Ich versuche, von einer Rhel-8-Installationsdiskette ein benutzerdefiniertes ISO zu erstellen, das entweder auf einem BIOS- oder einem EFI-Server booten kann. Alles läuft gut, bis ich versuche, das ISO zu erstellen. Wenn ich den folgenden Befehl ausführe:
mkisofs -J -R -T -V "NGS-8.4-0 Server" \
-o ngs-8.4-0.iso \
-b isolinux/isolinux.bin \
-c isolinux/boot.cat \
--no-emul-boot \
--boot-load-size 4 \
--boot-info-table \
--eltorito-alt-boot \
-e images/efiboot.img \
-m TRANS.TBL \
ngs-dvd
Ich erhalte die folgende Ausgabe:
Creating NGS iso...I: -input-charset not specified, using iso-8859-1 (detected in locale settings)
(bunch of TRANS.TBL output deleted)
Size of boot image is 4 sectors -> No emulation
Size of boot image is 19612 sectors -> genisoimage: Error - boot image '/NGS/ngs-dvd/images/efiboot.img' has not an allowable size.
Wenn ich jedoch zwei Optionen ( --eltorito-alt-boot
& -e images/efiboot.img
) lösche, wird ein bootfähiges ISO erstellt. Was mache ich falsch?
Antwort1
Es scheint, dass ich die -no-emul-boot
Option zweimal brauchte. Einmal für jedes Boot-Image (BIOS und EFI). Die endgültige funktionierende Konfiguration war:
/usr/bin/mkisofs -J -R -T -V "NGS-8.4-0 Server" \
-o ngs-8.4-0.iso \
-b isolinux/isolinux.bin \
-c isolinux/boot.cat \
-no-emul-boot \
-boot-load-size 4 \
-boot-info-table \
-eltorito-alt-boot \
-e images/efiboot.img \
-no-emul-boot \
-m TRANS.TBL \
ngs-dvd
Antwort2
Aus der Manpage:
-eltorito-alt-boot Beginnen mitein neues Setdes Stiefels El ToritoParameter. Auf einer einzigen CD können bis zu 63 El Torito-Booteinträge gespeichert werden.
-no-emul-boot
Die Feststellung in Ihrer Antwort, dass Sie es danach erneut hinzufügen müssen, -eltorito-alt-boot
bedeutet also, dass das hinzugefügte EFI-Image -e
auch -no-emul-boot
ordnungsgemäß funktionieren muss und da es der nächste El Torito-Eintrag ist und mit einem neuen Parametersatz beginnt, müssen die benötigten Parameter erneut explizit aufgelistet werden.
Aus der Frage:
Wenn ich jedoch zwei Optionen lösche (--eltorito-alt-boot & -e images/efiboot.img), wird ein bootfähiges ISO erstellt.
Ich habe es anfangs auch so gemacht, es wurde ein ISO erstellt, das nur zum Legacy-Boot führte (kein EFI, -e
fügt einen Teil hinzu, der später zur EFI-Partition auf USB wird).
Übrigens, vor dem Schreiben auf USB isohybrid --uefi new.iso
ist ein Befehl erforderlich.
Es scheint gute verwandte Beiträge und Diskussionen zu gebenAnatomie eines Fedora 17 ISO-Images, ich habe noch nicht alles gelesen.
PS: Warum viele andere Optionen kritisch sind (z. B. scheint keine Größe außer 4 zu funktionieren), konnte ich (bis jetzt) nicht herausfinden. -e
Die Option scheint in den Manpages auf meinem System zu fehlen, funktioniert aber.https://wiki.osdev.org/Mkisofs:
-e ISOPATH gibt eine Datendatei als El Torito-Bootimage für EFI an. Dies ist keine Option des ursprünglichen mkisofs, wird aber von einigen Varianten von genisoimage und von xorriso -as mkisofs verstanden.