如何确定ISO是否为混合型?


18

根据这个:http//en.wikipedia.org/wiki/ISO_image#Description

“最近的一个例子是发布混合ISO文件,当图像写入任何这些存储设备时,可以从BD或DVD和USB闪存驱动器设备启动或启动。”

如何使用标准Linux工具来确定我已下载的ISO(编辑:或通过genisoimage创建)是混合型?

谢谢!


1
检查电池组?
Daniel R Hicks

Answers:


9

在文件上运行fdisk。如果它显示任何有意义的东西,那就是混合。


2
“有意义的”是什么意思?如果我在win7.iso上运行fdisk,我会得到四行关于扇区大小等等。我仍然不认为它是混合的。paste.ee/p/r60ZR。你能更清楚一点吗?
Mads Skjern

7

file在有问题的ISO映像上运行命令。在非混合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


2

您可以使用此脚本检查ISO映像(-i“inspect”标志)

https://github.com/jsamr/bootiso

bootiso -i "your iso image"

轻松安全地从ISO映像创建USB可启动设备。

不想用dd命令搞乱系统?在一行中从ISO创建可启动USB [请参阅实际操作]。

与混合和非混合ISO(符合SYSLINUX或UEFI)无缝协作,例如任何Linux ISO,Windows ISO或抢救livebds如UltimateBootCD。您无需调整任何内容:bootiso检查ISO文件并选择使USB启动的最佳方法。


1

你可以跑head -c 512 thefile.iso > bytes.txt

在适当的非混合ISO中,字节应全部为零(在文本编辑器中默认情况下可能不可见)。虽然理论上它们可以包含任何随机垃圾,但在非零情况下,如果不对字节进行更深入的分析,则更难确定它是否是混合体。

对于Windows用户,您可以安装gnuwin32 coreutils包以获取该命令。


1

这会检测到非混合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

0

@ chaosape的答案应该是公认的解决方案。

使用之后file,如果ISO结果不是混合型并且您需要它(例如创建可启动的USB),只需使用isohybrid它来转换它:

isohybrid [PATH_TO_ISO]

您还可以使用诸如-u使UEFI可引导的标志。

https://www.mankier.com/1/isohybrid

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.