web-dev-qa-db-ja.com

ISOがハイブリッドであるかどうかをどのように判断しますか?

これによると: http://en.wikipedia.org/wiki/ISO_image#Description

「より最近の例は、イメージがこれらのストレージデバイスのいずれかに書き込まれたときに、BDまたはDVDとUSBフラッシュドライブデバイスの両方から起動または起動できるハイブリッドISOファイルのリリースです。」

標準のLinuxツールを使用して、ダウンロード(編集:またはgenisoimageで作成)したISOがハイブリッドであるかどうかを確認するにはどうすればよいですか?

ありがとう!

19
cat pants

ファイルに対してfdiskを実行します。意味のあるものがあれば、それはハイブリッドです。

11
ssmy

問題の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

9
chaosape

このスクリプトを使用して、ISOイメージ(-i「検査」のフラグ)

https://github.com/jsamr/bootiso

bootiso -i "your iso image"

ISOイメージからUSBブート可能デバイスを簡単かつ安全に作成します。

Ddコマンドでシステムを混乱させたくないですか? ISOから起動可能なUSBを1行で作成します[実際に見る]。

Linux ISO、Windows ISO、UltimateBootCDなどのレスキューライブCDなどのハイブリッドおよび非ハイブリッドISO(SYSLINUXまたはUEFI準拠)とシームレスに連携します。何も調整する必要はありません。bootisoはISOファイルを検査し、USBを起動可能にする最適な方法を選択します。

3
msadek

head -c 512 thefile.iso > bytes.txt

適切な非ハイブリッドISOでは、バイトはすべてゼロでなければなりません(テキストエディタではデフォルトで表示されない場合があります)。理論的にはランダムなガベージが含まれる可能性があるため、ゼロ以外のケースでは、バイトの詳細な分析なしにハイブリッドであるかどうかを確認することは困難です。

Windowsユーザーの場合、 gnuwin32 coreutilsパッケージをインストールして、そのコマンドを取得できます。

1
jiggunjer

これにより、非ハイブリッド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
1
Narcis Garcia

@chaosapeの答えは受け入れられる解決策でなければなりません。

fileを使用した後、ISOがハイブリッドではなく、それが必要な場合(たとえば、起動可能なUSBを作成する場合)は、isohybridを使用して変換します。

isohybrid [PATH_TO_ISO]

-uなどのフラグを使用して、UEFIを起動可能にすることもできます。

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

0
adatum