BIOS または EFI サーバーのいずれかで起動できる rhel-8 インストール ディスクからカスタム ISO を作成しようとしています。ISO を作成しようとするまではすべて順調です。次のコマンドを実行すると:
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
次のような出力が得られます。
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.
ただし、2 つのオプション ( --eltorito-alt-boot
& -e images/efiboot.img
) を削除すると、起動可能な ISO が作成されます。何が間違っているのでしょうか?
答え1
どうやらオプションが 2 回必要だったようです-no-emul-boot
。ブート イメージ (BIOS と EFI) ごとに 1 回です。最終的な動作構成は次のとおりでした。
/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
答え2
manページより:
-eltorito-alt-boot で開始新しいセットエル・トリートブーツパラメーター1 枚の CD に最大 63 個の El Torito ブート エントリを保存できます。
-no-emul-boot
したがって、回答で再度追加する必要があるという発見は、-eltorito-alt-boot
追加された EFI イメージ-e
も-no-emul-boot
適切に動作する必要があり、次の El Torito エントリであり、新しいパラメーター セットで開始されるため、必要なパラメーターを再度明示的にリストする必要があることを意味します。
質問から:
ただし、2 つのオプション (--eltorito-alt-boot と -e images/efiboot.img) を削除すると、起動可能な iso が作成されます。
私も最初はその方法で実行しましたが、レガシー ブートのみとなる ISO が作成されました (EFI はなく、-e
後で USB 上の EFI パーティションになる部分が追加されます)。
ちなみに、USB に書き込む前にisohybrid --uefi new.iso
コマンドが必要です。
関連する良い投稿と議論があるようですFedora 17 ISO イメージの解析まだ全部読んでいません。
PS 他の多くのオプションがなぜ重要なのか (たとえば、4 以外のサイズは機能しないようです) は、今のところわかりません。-e
オプションは私のシステムのマニュアル ページに存在しないようですが、機能します。https://wiki.osdev.org/Mkisofs:
-e ISOPATH は、データ ファイルを EFI の El Torito ブート イメージとして通知します。これはオリジナルの mkisofs のオプションではありませんが、genisoimage の一部のバリアントと xorriso -as mkisofs によって認識されます。