mkisofsと-eltorito-boot efiboot.imgを使用してUEFIブータブルイメージを作成する

mkisofsと-eltorito-boot efiboot.imgを使用してUEFIブータブルイメージを作成する

現在、BIOSから起動している既存のカスタムUSB ISOインストーライメージをUEFI経由で起動されたイメージに変換しようとしています。 ISOを作成し、ISOLINUXから起動するためにmkisofsおよびを使用します。 UEFIブートを有効にするオプションをisohybrid使用する必要があることを知っていますが、見つけるのが-eltorito-alt-boot -eltorito-platform 0xEF -eltorito-boot isolinux/efiboot.img難しいソースファイルをどこで入手できるかを示すページがGoogleにありませんefiboot.img。誰もがそれを言及しますが、誰もがあなたがすでにそれを持っていると仮定します。これはどのように作成されたか、獲得されたのですか?このmanページはmkisofs役に立ちません。必ず使うべきですかxorriso

ちなみにlibvirt / kvm / qemu / virt-managerから起動しようとしましたが、最終的には実際のハードウェアから起動する必要があります。開発環境はopenSUSE Leap 42.1です。 BIOSやマルチプラットフォームのサポートは必要ありません。既存のビルドコードをあまり修正したくありませんが、少なくとも1つのコメント(@mikeserv)は、ISOが完全に間違ったメカニズムであることを示唆しています(深刻なハッキングであり、完全に不要であることを意味します)。しかし、これにはビルドを完全に再編成する必要があるため、時間がかかります。

このトピックについてチュートリアルやその他のよく書かれたページへのリンクを送信していただきありがとうございます。私はSyslinuxのウェブサイトとRod Smithのページを閲覧し、他のすべてを見て疲れました。

ベストアンサー1

xorrisoを使用する必要がありますか?

不要。 EFIシステムパーティションをEl Toritoブートイメージとして表示できるISOメーカーが必要です。mkisofs上記のオプションを使用することもできます。isohybrid --uefiその後、それを適用してハードドライブなどのデバイスから起動可能にすることができます。 (この機能をisohybrid 使用するにはISOLINUX BIOSブートイメージが必要な場合があります。)

主な問題は、FATイメージまたはクローズドISO 9660ファイルシステム上のオペレーティングシステムファイルを起動するために必要なプログラムを含むFATファイルシステムイメージでなければならないEFIシステムパーティションファイルが必要であることです。

SYSLINUX EFIソフトウェアは光学メディアから起動しません。したがって、ほとんどのプロジェクトではこの目的のためにGRUB 2(GRUB Legacyではない)を使用し、それをISOLINUX BIOSソフトウェアと組み合わせます。 Debian netinst amd64 ISOたとえば、ISOのGRUB構成にジャンプするのに十分なGRUB脳を含む小さなFATイメージがあります。中にあるものオープンシューズNET-x86_64 ISOより大きい。

DebianのEFIデバイスを確認するには、ISOでマウントしてからファイルを/boot/grub/efi.imgFATとしてマウントしてください。内部には、スキャン時に/efi/boot/bootx64.efiプログラムにstrings組み込まれたGRUB構成を含むファイルがあります。

search --file --set=root /.disk/info
set prefix=($root)/boot/grub
source $prefix/x86_64-efi/grub.cfg
(memdisk)/boot/grub

私が知っている限り、FATイメージファイルはGRUBプログラムによって生成されます mkimage。このファイルは/.disk/infoDebian ISOにのみ存在すると見なされるため、searchISOファイルシステムを見つけるために使用できます。

SuSE ISOでは、FATイメージの名前は/boot/x86_64/efiDebianよりも多くなります。 EFIブートファイルに加えて、私のGRUBの知識の範囲外のファイルがbootx64.efi 1つあります。grub.cfg

起動可能なISOを最初から開発する場合は、GRUBプログラムを介してISOを生成することをお勧めしますgrub-mkrescue。 (それは本当に必要です xorriso。私は開発者です。)

Debianでは、grub-pcBIOSとx86_64 EFI用のパッケージをインストールする必要があります。ディレクトリツリーでペイロードを準備して実行します。grub-efi-ia32-bingrub-efi-amd64-bin

grub-mkrescue -o output.iso my_prepared_dir

grub-mkrescueSuSEは、BIOSおよび/またはEFIデバイスを作成するために実行するように構成されたDebianに似たGRUBパッケージを提供すると思います。

おすすめ記事