
現在、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.img
FATとしてマウントしてください。内部には、スキャン時に/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/info
Debian ISOにのみ存在すると見なされるため、search
ISOファイルシステムを見つけるために使用できます。
SuSE ISOでは、FATイメージの名前は/boot/x86_64/efi
Debianよりも多くなります。 EFIブートファイルに加えて、私のGRUBの知識の範囲外のファイルがbootx64.efi
1つあります。grub.cfg
起動可能なISOを最初から開発する場合は、GRUBプログラムを介してISOを生成することをお勧めしますgrub-mkrescue
。 (それは本当に必要です
xorriso
。私は開発者です。)
Debianでは、grub-pc
BIOSとx86_64 EFI用のパッケージをインストールする必要があります。ディレクトリツリーでペイロードを準備して実行します。grub-efi-ia32-bin
grub-efi-amd64-bin
grub-mkrescue -o output.iso my_prepared_dir
grub-mkrescue
SuSEは、BIOSおよび/またはEFIデバイスを作成するために実行するように構成されたDebianに似たGRUBパッケージを提供すると思います。