Выходные данные dumpet
указывают на то, что оригинал содержит два загрузочных образа ElTorito :, один для загрузки в стиле BIOS -, а другой — для UEFI. После указания первого загрузочного образа для BIOS с параметрами mkisofs
вам потребуется использовать параметры -eltorito-alt-boot
и -eltorito-platform efi
, чтобы указать второй загрузочный образ. Что-то вроде этого:
sudo mkisofs \
-no-emul-boot \
-b boot/etfsboot.com \
-boot-load-seg "${BOOT_LOAD_SEG}" \
-boot-load-size "${BOOT_LOAD_SIZE}" \
-eltorito-alt-boot \
-b <UEFI boot image name here> \
-eltorito-platform efi \
[...]
Я точно не знаю, какой файл можно использовать в качестве загрузочного образа UEFI.
Обновление :Я получил оригинальный ISO-образ Windows 10 и немного поэкспериментировал. В моей версии значение Load LBA
было 519 для загрузочной записи UEFI. Помня, что размер блока CD -ROM составляет 2048 байт, я выгрузил блок:
$ dd if=<silly_long_name>.iso bs=2048 skip=519 count=1 > win_efi_boot.dmp
$ file win_efi_boot.dmp
win_efi_boot.dmp: DOS/MBR boot sector, code offset 0x3c+2, OEM-ID "MSDOS5.0",
root entries 224, sectors 2880 (volumes <=32 MB), sectors/FAT 9, sectors/track 18,
serial number 0xef56c0, label: "EFISECTOR ", FAT (12 bit), followed by FAT
Похоже на начало образа дискеты размером 1,4 МБ. 2880 секторов дискеты *512 байтов на сектор дискеты / 2048 байтов на сектор компакт-диска -ПЗУ = 720 секторов компакт-диска -ПЗУ. Я предполагаю, что прошивка просто игнорирует значение Load Sectors
и просматривает загрузочный сектор FAT, чтобы найти реальный размер.
dd if=<silly_long_name>.iso bs=2048 skip=519 count=720 of=win_efi_boot.img
И да, он содержит файловую систему (v )FAT12 с одним файлом:\EFI\BOOT\BOOTX64.EFI
размером 936352 байта.
$ sudo mount -o loop,ro win_efi_boot.img /mnt
$ ls -l /mnt/EFI/BOOT/BOOTX64.EFI
-rwxr-xr-x 1 root root 936352 Apr 11 2018 /mnt/EFI/BOOT/BOOTX64.EFI
Я также шестнадцатеричный -дамп файла win_efi_boot.img
:после окончания файла BOOTX64.EFI
, остальная часть образа дискеты заполнена всеми нулевыми байтами, поэтому я думаю, что count=720
является точным.
Итак, вы должны иметь возможность сделать то же самое, чтобы скопировать образ загрузочной файловой системы UEFI из исходного ISO (, как мой win_efi_boot.img
), и использовать его с вашим вариантом -e
.