boot/grub/efi.img 映像大小无效

boot/grub/efi.img 映像大小无效

我正在尝试创建自定义 Ubuntu 16.04 LTS 服务器安装介质,并且一直遵循此处的说明https://help.ubuntu.com/community/InstallCDCustomization

当我尝试运行命令时:

# Hybrid/UEFI
IMAGE=jeremy-uefi.iso
BUILD=/opt/cd-image/

xorriso -as mkisofs -r -V "Jeremys" \
        -J -l -b isolinux/isolinux.bin \
        -c isolinux/boot.cat -no-emul-boot \
        -isohybrid-mbr /usr/lib/ISOLINUX/isohdpfx.bin \
        -eltorito-alt-boot \
        -e boot/grub/efi.img \
        -isohybrid-gpt-basdat \
        -boot-load-size 4 -boot-info-table \
        -o $IMAGE $BUILD

我得到以下信息:

xorriso 1.4.2 : RockRidge filesystem manipulator, libburnia project.

Drive current: -outdev 'stdio:/opt/jeremy-uefi.iso'
Media current: stdio file, overwriteable
Media status : is blank
Media summary: 0 sessions, 0 data blocks, 0 data, 31.8g free
Added to ISO image: directory '/'='/opt/cd-image'
xorriso : UPDATE : 2963 files added in 1 seconds
xorriso : UPDATE : 2963 files added in 1 seconds
libisofs: FAILURE : Invalid image size 2368 Kb. Must be one of 1.2, 1.44or 2.88 Mb
libisofs: FAILURE : Trying to use an invalid file as boot image
xorriso : FAILURE : Could not attach El-Torito boot image to ISO 9660 image
xorriso : NOTE : -return_with SORRY 32 triggered by problem severity FAILURE

我已将问题追溯到 boot/grub/efi.img 映像。然而,经过一整天的斗争,我还是没能摆脱它。

显而易见的解决方案是创建一个新的 2.88 Mb 的 fat16 文件系统,并将 efi.img 的内容复制到其中,并替换原始文件。但这引出了一个问题,原始的 Ubuntu CD 是如何制作的?

答案1

引用托马斯·施密特从他回答问题的评论中可以看出:

-boot-load-size 4 -boot-info-table必须写在之前-eltorito-alt-boot,因为它们的目的是修改 的选项-b。之后-eltorito-alt-boot就是领域-e。您需要另一个选项-no-emul-boot(与 一样-b)以避免出现有关软盘模拟大小的错误消息。但请勿将-boot-load-size-boot-info-table用于 EFI 映像。

相关内容