Как определить, является ли ISO гибридом?
Согласно этому: http://en.wikipedia.org/wiki/ISO_image
"Более свежим примером является выпуск гибридных файлов ISO, которые можно загружать или запускать как с дисков BD, так и с DVD и USB-накопителей, когда образ записывается на любое из этих устройств хранения".
Как я использую стандартные инструменты Linux, чтобы определить, является ли ISO, который я скачал (отредактировал: или создал с помощью genisoimage), гибридным?
Спасибо!
5 ответов
Запустите fdisk для файла. Если это показывает что-то значимое, это гибрид.
Запустить 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
Вы можете использовать этот скрипт для проверки 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 загрузочным.
Это обнаруживает таблицу разделов, отсутствующую на негибридных носителях ПЗУ:
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
Вы можете запустить head -c 512 thefile.iso > bytes.txt
,
В правильном негибридном ISO все байты должны быть нулями (возможно, не видимыми по умолчанию в вашем текстовом редакторе). Хотя теоретически они могут содержать любой случайный мусор, поэтому в ненулевом случае труднее подтвердить, является ли он гибридом, без более глубокого анализа байтов.
Для пользователей Windows вы можете установить пакет gnuwin32 coreutils, чтобы получить эту команду.
Ответ @ Chaosape должен быть принятым решением.
После использования file
, если ISO-образ не является гибридом, и он вам нужен (например, для создания загрузочного USB), просто используйте isohybrid
преобразовать это:
isohybrid [PATH_TO_ISO]
Вы также можете использовать флаги, такие как -u
чтобы сделать его загрузочным UEFI.