根据这个: http://en.wikipedia.org/wiki/ISO_image#Description
“最近的一个例子是混合 ISO 文件的发布,当映像写入任何这些存储设备时,可以从 BD 或 DVD 和 USB 闪存驱动器设备启动或启动。”
如何使用标准 Linux 工具来确定我下载的 ISO(编辑:或通过 genisoimage 创建)是否是混合?
谢谢!
答案1
对文件运行 fdisk。如果它显示任何有意义的内容,则它是混合的。
答案2
在相关 ISO 映像上运行该file
命令。在非混合 ISO 上运行此命令的输出将如下所示
image.iso: ISO 9660 CD-ROM filesystem data 'foo' (bootable)
而在混合 ISO 上运行此命令的输出将如下所示
image.iso: DOS/MBR boot sector ISO 9660 CD-ROM filesystem data (DOS/MBR boot sector) 'foo' (bootable); partition 1 : ID=0x17, active, start-CHS (0x0,0,1), end-CHS (0x288,63,32), startsector 0, 1329152 sectors
答案3
您可以使用此脚本检查 ISO 映像(-i
“检查”标志)
https://github.com/jsamr/bootiso
bootiso -i "your iso image"
轻松安全地从 ISO 映像创建 USB 可启动设备。
不想用 dd 命令弄乱系统?只需一行即可从 ISO 创建可启动 USB [查看实际操作]。
可与混合和非混合 ISO(SYSLINUX 或 UEFI 兼容)无缝协作,例如任何 Linux ISO、Windows ISO 或 UltimateBootCD 等救援实时 CD。您无需调整任何内容:bootiso 检查 ISO 文件并选择最佳方法使您的 USB 可启动。
答案4
这将检测非混合 ROM 介质中不存在的分区表:
cat romdisk.iso 2>/dev/null | head -c 512 | tail -c 2 | xxd -p | grep -ie '55aa$'
我不知道如何确定混合 ISO 和硬盘映像之间的区别:
cat disk.img 2>/dev/null | head -c 512 | hexdump -vC