現在BIOS経由で起動している既存のカスタムUSB ISOインストーラーイメージをUEFI経由で起動するものに変換しようとしています。 ISOを作成するためにmkisofs
とisohybrid
を使用し、ISOLINUX経由で起動します。 -eltorito-alt-boot -eltorito-platform 0xEF -eltorito-boot isolinux/efiboot.img
UEFIブートを有効にするためのオプションですが、私にとっては、どこにどこにあるのかを教えてくれるページをGoogleで見つけることができませんefiboot.img
ソースファイル。誰もがそれについて言及していますが、誰もがあなたがすでにそれを持っていると想定しています。これはどのように構築または取得されますか? man
のmkisofs
ページは役に立ちません。 xorriso
を使用する必要がありますか?
参考までに、libvirt/kvm/qemu/virt-managerを介してこれを起動しようとしていますが、最終的には実際のハードウェアで起動する必要があります。開発環境はopenSUSE Leap 42.1です。 BIOSや複数のプラットフォームをサポートする必要はありません。既存のビルドコードをいじくり回したくはありませんが、少なくとも1つのコメント(@mikeserv)は、ISOがこのための完全に間違ったメカニズムであることを示唆しています(つまり、大規模なハックであり、まったく不要です)。しかし、これには、かなりの時間を要するビルドの完全な改良が含まれます。
このトピックに関するチュートリアルまたは他のよく書かれたページへのリンクは感謝して受け取られます。私はすでにSyslinuxのWebサイトとRod Smithのページを見てきましたが、他のすべてを見るのはすごく疲れました。
Xorrisoを使用する必要がありますか?
必ずしも。 EFIシステムパーティションをEl ToritoブートイメージとしてマークできるISOプロデューサーが必要です。 mkisofs
は、おそらくあなたが言及したオプションに関係します。 isohybrid --uefi
を後で適用して、ハードディスクのようなデバイスから起動可能にすることができます。 (isohybrid
が機能するように、ISOLINUX BIOSブートイメージも必要になる場合があります。)
主な問題は、EFIシステムパーティションファイルが必要なことです。これは、FATイメージまたはそれを含むISO 9660ファイルシステムにあるオペレーティングシステムファイルを起動するために必要なプログラムを含むFATファイルシステムイメージである必要があります。
SYSLINUX EFIソフトウェアは光メディアから起動しません。そのため、ほとんどのプロジェクトではGRUB 2(GRUB legacy)ではなく)を使用し、それをISOLINUX BIOSソフトウェアと組み合わせます Debian netinst AMD64 ISO たとえば、ISOのGRUB構成にホップするだけの十分なGRUB脳を持つ小さなFATイメージがあります。 openSUSE NET-x86_64 ISO の方が大きいです。
DebianのEFI機器を検査するには、ISOとしてマウントしてから、ファイル/boot/grub/efi.img
をFATとしてマウントします。内部には、プログラムstrings
によって検査されたファイル/efi/boot/bootx64.efi
があり、埋め込まれたGRUB構成が含まれていることがわかります。
search --file --set=root /.disk/info
set prefix=($root)/boot/grub
source $prefix/x86_64-efi/grub.cfg
(memdisk)/boot/grub
FATイメージファイルはGRUB program mkimage
によって作成されたと理解しています。ファイル/.disk/info
はDebian ISOにのみ存在すると見なされているため、search
はこれを使用してISOを見つけることができますファイルシステム。
SuSE ISOでは、FATイメージの名前は/boot/x86_64/efi
です。 Debianのものよりも多くのものを含んでいます。 EFIブートファイルbootx64.efi
のほかに、grub.cfg
と、私のGRUBの知識を超えた他のファイルがあります。
起動可能なISO開発を最初から開始する場合は、GRUBプログラムgrub-mkrescue
]を使用してISOを作成することを検討してください(このとき、xorriso
が本当に必要になります。
Debianでは、BIOSの場合はgrub-pc
、grub-efi-ia32-bin
、x86_64 EFIの場合はgrub-efi-AMD64-bin
のパッケージをインストールする必要があります。ペイロードをディレクトリツリーに準備して実行する
grub-mkrescue -o output.iso my_prepared_dir
SuSEはDebianと同様のGRUBパッケージを提供しており、BIOSおよび/またはEFI機器を生成するためにgrub-mkrescue
を実行するように構成しています。