mkisofs 錯誤 - 啟動映像...efibot.img 不是允許的大小

mkisofs 錯誤 - 啟動映像...efibot.img 不是允許的大小

我正在嘗試從 rhel-8 安裝磁碟建立自訂 ISO,該磁碟可以在 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 開始於一套新的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需要命令。

似乎有很好的相關貼文+討論Fedora 17 ISO 鏡像剖析,我還沒讀完。

PS 為什麼許多其他選項很重要(例如,除了 4 之外,沒有任何大小似乎可以解決)我還沒有找到(截至目前為止)。-e我的系統上的手冊頁中似乎沒有該選項,但可以使用。https://wiki.osdev.org/Mkisofs:

-e ISOPATH 宣布一個資料檔作為 EFI 的 El Torito 啟動映像。這不是原始 mkisof 的選項,但可以被 genisoimage 的某些變體和 xorriso -as mkisof 理解。

相關內容