Как произвести ISO-образ, который загружается только на UEFI?

Я хочу создать ISO-образ, который загружается ТОЛЬКО на средах UEFI. Мне удалось создать изображения, которые загружаются в системах BIOS, но я не могу выяснить, как создать изображение, которое работает только над UEFI.

Я прочитал руководство xorriso, и играл много с его опциями, но не имел никакой удачи.

Мне нужно это, когда такое изображение высвечивается в карту с интерфейсом USB, оно загружается только на UEFI, а не в основанном на MBR BIOS.

1
задан 29 January 2019 в 04:05

1 ответ

Хорошее руководство является этой веб-страницей Debian.

Изображение, которое загружается только на UEFI, может быть создано с xorriso как это:

xorriso -as mkisofs \
    -iso-level 3 \
    -r -V <ISO_LABEL> \
    -J -joliet-long \
    -append_partition 2 0xef <BOOT_IMG> \
    -partition_cyl_align all \
    -o <OUTPUT_IMAGE> \
    <ISO_DIRECTORY>

UEFI_BOOT_IMAGE ESP ([U] Системный Раздел EFI) файл изображения. Это означает, что должно быть отформатировано как a FAT32 раздел. Можно генерировать его с:

BOOT_IMG_DATA=$(mktemp -d)
BOOT_IMG=$(mktemp -d)/efi.img

mkdir -p $(dirname $BOOT_IMG)

truncate -s 8M $BOOT_IMG
mkfs.vfat $BOOT_IMG
mount $BOOT_IMG $BOOT_IMG_DATA
mkdir -p $BOOT_IMG_DATA/efi/boot

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

umount $BOOT_IMG_DATA
rm -rf $BOOT_IMG_DATA

Это создаст изображение ESP в $(mktemp -d)/efi.img, таким образом, необходимо заменить заполнителя фактическим путем к файлу.


Этот ответ был основан на комментарии @ThomasSchmitt.

1
ответ дан 7 December 2019 в 15:08

Другие вопросы по тегам:

Похожие вопросы: