我试图创建一个自定义ISO从一个流变-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。我做错了什么?
发布于 2021-10-29 13:47:14
我似乎两次需要-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发布于 2021-11-28 13:12:06
来自手册页:
从一组新的El Torito启动参数开始。最多可将63个El Torito引导项存储在一张CD上。
因此,在您的回答中,您需要在-no-emul-boot之后再次添加-eltorito-alt-boot,这意味着-e添加的EFI图像也需要-no-emul-boot正常工作,因为它是下一个entry条目,并且以新的一组参数开始,需要再次显式列出所需的参数。
从问题中:
但是,如果我删除两个选项(-eltorito-alt& -e映像/efiboot.img),它将创建一个可引导的iso。
我最初也是这样做的,它创建的iso只导致了遗留的引导(没有EFI,-e添加的部分后来变成了USB上的EFI分区)。
顺便说一句,在写入USB isohybrid --uefi new.iso命令之前是需要的。
似乎有很好的关系post+discussion Fedora 17 ISO图像的解剖,我还没有全部阅读。
为什么很多其他的选择都是关键的(例如,除了4种,没有大小似乎可行),我还没有找到(到目前为止)。-e选项在我的系统的手册页中似乎没有,但有效。https://wiki.osdev.org/Mkisofs:
-e ISOPATH宣布一个数据文件作为El启动映像为EFI。这不是原始-as的选项,而是由genisoimage的一些变体和xorriso -as mkisofs理解的。
https://unix.stackexchange.com/questions/675211
复制相似问题