Я пытаюсь создать пользовательский ISO с установочного диска rhel-8, который может загружаться как на BIOS, так и на EFI-сервере. Все идет хорошо, пока я не пытаюсь создать iso. Если я запускаю следующую команду:
mkisofs -J -R -T -V "NGS-8.4-0 Server" \
-o ngs-8.4-0.iso \
-b isolinux/isolinux.bin \
-c isolinux/boot.cat \
--no-emul-boot \
--boot-load-size 4 \
--boot-info-table \
--eltorito-alt-boot \
-e images/efiboot.img \
-m TRANS.TBL \
ngs-dvd
Я получаю следующий вывод:
Creating NGS iso...I: -input-charset not specified, using iso-8859-1 (detected in locale settings)
(bunch of TRANS.TBL output deleted)
Size of boot image is 4 sectors -> No emulation
Size of boot image is 19612 sectors -> genisoimage: Error - boot image '/NGS/ngs-dvd/images/efiboot.img' has not an allowable size.
Однако, если я удалю две опции ( --eltorito-alt-boot
& -e images/efiboot.img
), то создастся загрузочный iso. Что я делаю не так?
решение1
Похоже, мне эта -no-emul-boot
опция понадобилась дважды. По одной для каждого загрузочного образа (BIOS и EFI). Окончательная рабочая конфигурация была такой:
/usr/bin/mkisofs -J -R -T -V "NGS-8.4-0 Server" \
-o ngs-8.4-0.iso \
-b isolinux/isolinux.bin \
-c isolinux/boot.cat \
-no-emul-boot \
-boot-load-size 4 \
-boot-info-table \
-eltorito-alt-boot \
-e images/efiboot.img \
-no-emul-boot \
-m TRANS.TBL \
ngs-dvd
решение2
Из страницы руководства:
-eltorito-alt-boot Начать сновый наборсапог Эль ТоритопараметрыНа одном компакт-диске можно сохранить до 63 загрузочных записей El Torito.
Таким образом, вывод в вашем ответе о том, что вам нужно добавить -no-emul-boot
еще раз после, -eltorito-alt-boot
означает, что добавленный образ EFI -e
также должен -no-emul-boot
работать правильно, и поскольку это следующая запись El Torito и она начинается с нового набора параметров, необходимые параметры должны быть явно перечислены снова.
Из вопроса:
Однако если я удалю две опции (--eltorito-alt-boot и -e images/efiboot.img), то будет создан загрузочный iso.
Я тоже изначально так делал, создавался ISO-образ, который приводил только к устаревшей загрузке (без EFI, -e
добавлялась часть, которая позже становилась разделом EFI на USB).
Кстати, перед записью на USB isohybrid --uefi new.iso
нужна команда.
Кажется, есть хороший связанный пост+обсуждениеАнатомия образа Fedora 17 ISO, Я еще не все прочитал.
PS почему многие другие параметры являются критическими (например, ни один размер, кроме 4, похоже, не работает) я не смог выяснить (на данный момент). -e
option, похоже, отсутствует в man-страницах моей системы, но работает.https://wiki.osdev.org/Mkisofs:
-e ISOPATH объявляет файл данных как образ загрузки El Torito для EFI. Это не опция оригинального mkisofs, но понимается некоторыми вариантами genisoimage и xorriso -as mkisofs.