Как определить, является ли ISO гибридом?

19

Согласно этому: http://en.wikipedia.org/wiki/ISO_image#Description

«Более свежим примером является выпуск гибридных файлов ISO, которые можно загружать или запускать как с дисков BD, так и с DVD и USB-накопителей, когда образ записывается на любое из этих устройств хранения».

Как использовать стандартные инструменты Linux, чтобы определить, является ли загруженный мной ISO-образ (отредактированный или созданный с помощью genisoimage) гибридным?

Благодарность!

кошачьи штаны
источник
1
Проверить аккумулятор?
Даниэль Р Хикс

Ответы:

11

Запустите fdisk для файла. Если это показывает что-то значимое, это гибрид.

ssmy
источник
3
Что вы подразумеваете под «что-нибудь значимое»? Если я запускаю fdisk на моем win7.iso, я получаю четыре строки о размере сектора и т. Д. Я все еще не думаю, что это гибрид. paste.ee/p/r60ZR . Не могли бы вы быть более точным, пожалуйста?
Мэдс Скьерн,
8

Запустите 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

chaosape
источник
3

Вы можете использовать этот сценарий для проверки ISO-образа ( -iфлаг для «проверки»)

https://github.com/jsamr/bootiso

bootiso -i "your iso image"

Создать загрузочное устройство USB из образа ISO легко и безопасно.

Не хотите испортить систему командой dd? Создайте загрузочный USB из ISO в одну строку [посмотрите это в действии].

Работает без проблем с гибридными и негибридными ISO (совместимыми с SYSLINUX или UEFI), такими как любые linux ISO, Windows ISO или спасательные live-диски, такие как UltimateBootCD. Вам не нужно ничего настраивать: bootiso проверяет файл ISO и выбирает лучший способ сделать ваш USB загрузочным.

msadek
источник
1

Ты можешь бежать head -c 512 thefile.iso > bytes.txt.

В правильном негибридном ISO все байты должны быть нулями (возможно, не видимыми по умолчанию в вашем текстовом редакторе). Хотя теоретически они могут содержать любой случайный мусор, поэтому в ненулевом случае труднее подтвердить, является ли это гибридом без более глубокого анализа байтов.

Для пользователей Windows вы можете установить пакет gnuwin32 coreutils, чтобы получить эту команду.

jiggunjer
источник
1

Это обнаруживает таблицу разделов, отсутствующую на негибридных носителях ПЗУ:

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

Adatum
источник