mkisofs 錯誤 - 啟動映像…efibot.img 不是允許的大小
我正在嘗試從可以在 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)一個。最終的工作配置是:/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
從手冊頁:
-eltorito-alt-boot 從一組新的 El Torito 引導參數開始。一張 CD 上最多可儲存 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
添加了稍後成為USB上的EFI分區的部分)。順便說一句,在寫入 USB
isohybrid --uefi new.iso
命令之前是必需的。似乎有很好的相關 post+discussion Anatomy of a Fedora 17 ISO image,我還沒有全部閱讀。
PS 為什麼許多其他選項很重要(例如,除了 4 似乎沒有任何尺寸)我無法找到(截至目前)。
-e
我的系統上的手冊頁中似乎沒有選項,但有效。https://wiki.osdev.org/Mkisofs:-e ISOPATH 將數據文件宣佈為 EFI 的 El Torito 引導映像。這不是原始 mkisofs 的選項,但可以被 genisoimage 的一些變體和 xorriso -as mkisofs 理解。