ISOイメージと比較してCDを確認するには?

ISOイメージと比較してCDを確認するには?

物理的に焼いたCDとオリジナルのISOイメージがあります。 CD コンテンツの参照チェックサムファイルは提供されません。実際のCDが正しい(元の画像に対応)、完全に読めるかどうかを確認するには?

答え1

まだISOがある場合はバイト単位で比較できますcmp。これは見つかった最初の違いで終了する非常に単純なコマンドなので、実際に最初にエラーがある場合はチェックサムを実行するよりもはるかに高速です。

cmp /dev/cdrom /path/cdrom.iso

成功のための可能な結果:

  • 出力なし:同じで、すべてがうまく機能します。&& echo OK出力が不足して混乱している場合は、コマンドに追加できます。
  • cmp: EOF on cdrom.iso:同じですが、CDROMにはISOファイルよりも多くのバイトがあります。これは通常、CDROMの端部のゼロパディングによって生じる。実際には重要ではないので、まだ成功です。

失敗によって引き起こされる可能性のある結果:

  • cmp: EOF on /dev/cdrom:何らかの理由でCDROMのデータが不完全です。 ISOが大きすぎて実際のCDを収納できない場合があります。
  • /dev/cdrom cdrom.iso differ: byte 18296321, line 71780:CDROMとISOイメージの間に予期しない違いがあります。

答え2

まず、CDを一時ファイルに抽出します。

dd if=/dev/sr0 of=copy.iso

次に、合計のサイズが同じであることを確認します。たとえば、次のようになりcopy.isoます。orig.iso

stat -c '%s %n' orig.iso copy.iso

サイズが同じであれば簡単です。

sha1sum orig.iso copy.iso

しかし、場合によっては、コピーまたは元の画像の後ろにゼロが表示されるため、サイズが少し異なる場合があります。たとえば、copy.iso次の値より小さい場合orig.iso:

sha1sum copy.iso
head -c $(stat -c %s copy.iso) orig.iso | sha1sum

もちろん、末尾のバイトが0であることを確認する必要があります。

od -j $(stat -c %s copy.iso) orig.iso

オフセットを除く最初の行はゼロでなければなりません。 2行目はアスタリスクでなければなりません。アスタリスクは、連続する同じ線が表示されるのを防ぐことです。

答え3

ISOファイルがCDを焼くために使用されたファイルと同じ場合、私のお気に入りの2つのファイルは次のとおりです。

diff /dev/sr0 /tmp/file.iso

録画した画像を画像ファイルと比較します。少しマゾヒズムな感じがしたら、次のように試してみることができます。

sha1sum /dev/sr0 /tmp/file.iso

そして署名を比較してみてください。これは、すでにSHA1合計がどこかにある場合に便利です。どちらのコマンドもメディアを最後まで読み込みます。

@Marki555が提案した方法で実行するには、まず光学ドライブとイメージをインストールする必要があります。以下は完全なスクリプトです。 (もちろん、sudorootユーザーであれば省略することができます。通常これは悪い考えです。)

sudo mkdir /tmp/{a,b}
sudo mount /dev/sr0 /tmp/a -o ro # or whatever
sudo mount /tmp/file.iso /tmp/b -o loop,ro
diff -dur /tmp/{a,b}
sudo umount /tmp/a
sudo umount /tmp/b
sudo rmdir /tmp/{a,b}

答え4

Braseroは次のことができます:ツール - >整合性の確認...

関連情報