我正在尝试从可以在 BIOS 或 EFI 服务器上启动的 rhel-8 安装磁盘创建自定义 ISO。一切都很好,直到我尝试创建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。我究竟做错了什么?
看来我需要该
-no-emul-boot
选项两次。每个引导映像(BIOS 和 EFI)一个。最终的工作配置是:从手册页:
因此,您需要
-no-emul-boot
再次添加的答案中的发现-eltorito-alt-boot
意味着添加的 EFI 图像-e
也需要-no-emul-boot
正常工作,并且由于它是下一个 El Torito 条目并以新的参数集开始,因此需要再次明确列出所需的参数。从问题:
我最初也是这样做的,它创建了只导致传统启动的iso(没有EFI,
-e
添加了稍后成为USB上的EFI分区的部分)。顺便说一句,在写入 USB
isohybrid --uefi new.iso
命令之前是必需的。似乎有很好的相关 post+discussion Anatomy of a Fedora 17 ISO image,我还没有全部阅读。
PS 为什么许多其他选项很重要(例如,除了 4 似乎没有任何尺寸)我无法找到(截至目前)。
-e
我的系统上的手册页中似乎没有选项,但有效。https://wiki.osdev.org/Mkisofs: