Я хочу создать ISO-образ, который загружается ТОЛЬКО на средах UEFI. Мне удалось создать изображения, которые загружаются в системах BIOS, но я не могу выяснить, как создать изображение, которое работает только над UEFI.
Я прочитал руководство xorriso, и играл много с его опциями, но не имел никакой удачи.
Мне нужно это, когда такое изображение высвечивается в карту с интерфейсом USB, оно загружается только на UEFI, а не в основанном на MBR BIOS.
Хорошее руководство является этой веб-страницей 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.