BIOS起動可能ISOでUEFI起動可能USBディスクを作成する方法

BIOS起動可能ISOでUEFI起動可能USBディスクを作成する方法

BIOS起動可能パーティションを含むisoイメージがあるとします。この画像をUSBフラッシュドライブに書き込むことができます

Linuxでは、次のことができます。

dd if=pmagic_2013_02_28.iso of/dev/sdc1

これで、BIOSを搭載したコンピュータからUSBディスクを起動できるようになりました。ただし、UEFIシステムではUSBドライブは起動しません。 EFIを起動可能にするにはどうすればよいですか?

答え1

ISOイメージを作成するにはEl Toritoの魔法が必要です。バラよりこれ

答え2

イメージを(U)EFI起動可能にするには、パスの下で起動するinitramfsイメージファイルを含むデフォルトのVFAT32パーティションが必要です/efi/boot/bootx64.efi

答え3

唯一の機会は、ISOイメージを再構築し、必要なUEFIファイルを追加することです。あなたと一緒なら、xorrisoこれを行うことができます。

まず、元のISOファイルの内容を抽出します。

xorriso -osirrox on -indev IMAGE.ISO -extract / ISO_DIR

次に、FATパーティションでなければならないESP(EFIシステムパーティション)を作成する必要があります。私たちはそのようなパーティションを含むファイルを生成します:

BOOT_IMG=efi.img

grub-mkimage \
    -C xz \
    -O x86_64-efi \
    -p /boot/grub \
    -o bootx64.efi \
    boot linux normal configfile \
    part_gpt btrfs fat iso9660 loopback \
    test keystatus gfxmenu regexp \
    efi_gop efi_uga all_video gfxterm font \
    echo read ls cat png jpeg halt

mkfs.vfat -C $BOOT_IMG \
    $(( ($(stat -c %s bootx64.efi) / 1024 + 511) / 32 * 32 ))

mmd -i $BOOT_IMG ::/efi
mmd -i $BOOT_IMG ::/efi/boot
mmd -i $BOOT_IMG ::/boot
mmd -i $BOOT_IMG ::/boot/grub

mcopy -Q -i $BOOT_IMG bootx64.efi ::/efi/boot

# You may create a grub.cfg file if you want.
[ -f grub.cfg ] &&
    mcopy -Q -i $BOOT_IMG grub.cfg ::/boot/grub

ESPを作成したら、次のコマンドを使用してUEFIブータブルISOイメージを構築できます。

xorriso -as mkisofs \
    -r -J -l \
    -iso-level 3 \
    -joliet-long \
    -append_partition 2 0xef $BOOT_IMG \
    -partition_cyl_align all \
    -o uefi-bootable.iso \
    ISO_DIR

uefi-bootable.isoISOイメージが現在のディレクトリに作成されます。


起動可能な ISO イメージの次のリソースを読み取ることができます。

関連情報