我尝试过转换仅 BIOS 的 iso 来启动 BIOS 和 EFI,但没有成功。我认为问题在于 EFI 的构建方式。如何检查 ISO9660 iso 中的 EFI 分区?
fdisk -l 的结果
larry@larry-Satellite-C55-A:~/foxclone$ fdisk -l foxclone025-02.iso
Disk foxclone025-02.iso: 527 MiB, 552599552 bytes, 1079296 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x1b288083
Device Boot Start End Sectors Size Id Type
foxclone025-02.iso1 * 0 1079295 1079296 527M 0 Empty
foxclone025-02.iso2 136 3015 2880 1.4M ef EFI (FAT-12/16/32)
构建脚本:
#!/bin/bash
# The example names get mapped to their roles here
orig_iso="$HOME"/foxclone/foxclone025-01.iso
new_iso="$HOME"/foxclone/foxclone025-02.iso
new_files="$PWD"
mbr_template=/usr/lib/ISOLINUX/isohdpfx.bin
# Extract MBR template file to disk
dd if="$orig_iso" bs=1 count=432 of="$mbr_template"
# Create the new ISO image
xorriso -as mkisofs "$new_files" \
-o "$HOME"/foxclone/foxclone025-02.iso \
-isohybrid-mbr /usr/lib/ISOLINUX/isohdpfx.bin \
-c isolinux/boot.cat \
-b isolinux/isolinux.bin \
-no-emul-boot -boot-load-size 4 -boot-info-table \
-eltorito-alt-boot \
-e isolinux/efiboot.img \
-no-emul-boot \
-isohybrid-gpt-basdat \
-m grub.cfg
感谢您提供的任何帮助,拉里