CD / DVDのsha-1、sha-256、またはMD5を入手するには?

CD / DVDのsha-1、sha-256、またはMD5を入手するには?

私はDebian CDを焼くつもりでした。そしてDebian DVD.isoファイルをダウンロードすると奇妙な動作が発生します。 CDのチェックサムは正確ですが、DVDのチェックサムは正しくありません。

仕組みは次のとおりです。

  • 2個ダウンロード.iso文書
  • 両方の項目のチェックサムを確認してください。.iso文書
  • CDを焼くdebian-7.1.0-amd64-CD-1.isoCDで
  • 次のコマンドを実行して CD が正しいことを確認します。

    dd if=/dev/sr0 | md5sum(またはsha-1またはsha-256)

これはうまくいきます。以下を使用してCDからチェックサムを取得します。DDパイプ入力md5、sha-1、またはsha-256は公式チェックサムと一致します。

今私が理解していないのは、DVDからDVDを焼いたということです。.iso-- ファイルが正しくダウンロードされたことを知っています。.iso 文書チェックサムは正しいです。

ただし、DVDをドライブに挿入して同じコマンドを実行すると:

dd if=/dev/sr0 | md5sum   (or sha-1 or sha-256)

その後、偽のチェックサムを取得します。

DVDスチールそうだ正しいことは、すべてのファイルがそこにあるように見えることです。

私の質問は次のとおりです。次のコマンドを使用して、DVDが正しく焼かれていることを確認できます。DD出力をmd5sum(またはsha-1またはsha-256)にパイプまたは実行できる「特別な」操作はありますか?DD焼きCDは確認できますが、焼きDVDは確認できませんか?

*(私が使用した点を参考にしてください。ディスクユーティリティOS XでCDとDVDを書き込む)*

答え1

Gilesの答えに加えて

まだISOイメージがある場合は、チェックcmpサムを代わりに使用できます。違いが発生したバイトを通知します。また、早期にエラーがあるかのようにすぐに通知しますが、チェックサムは常にメディア全体を読み取る必要があるため、スキャンが速くなります。

$ cmp /dev/cdrom /path/to/cdrom.iso

エラーが発生した場合は、次のように印刷する必要があります。

/dev/cdrom /path/to/cdrom.iso differ, byte 123456789, line 42

正しい場合は印刷する必要があります何もない、またはこれ:

cmp: EOF on /path/to/cdrom.iso

/dev/cdromこれはISOよりも多くのデータがあることを意味し、おそらくゼロパディングである可能性が高いです。

比較を始める前にも寸法を確認できます。

$ blockdev --getsize64 /dev/cdrom
123456999
$ stat -c %s /path/to/cdrom.iso
123456789

同じ場合は、チェックサムも一致する必要があります。大きい場合は、/dev/cdrom最後にゼロを埋める必要があります。確認に使用できますhexdump。 ISOサイズを-sパラメータとして使用します。

$ hexdump -s 15931539256 -C /dev/cdrom
3b597ff38  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
3b597fff8  00 00 00 00 00 00 00 00                           |........|

hexdump何らかの理由で意図的に破損が発生した場合は、ファイルの他の部分の違いを確認するのにも役立ちます。

答え2

私が知る限り、CDとDVDはどちらも一定数の固定サイズブロ​​ックで構成されています。焼いている画像がブロックサイズの倍数ではない可能性があります。この場合、最後のブロックにはいくつかの最後のゴミが含まれます。したがって、実行するとdd if=/dev/sr0(これは難読化された作成方法ですmd5sum </dev/sr0)、末尾のゴミがハッシュに含まれます。

画像のサイズを追跡する必要があります。その後、ペイロード(ISOファイルなど)のバイト数にハッシュユーティリティが適用されます。

</dev/sr0 head -c "$size" | md5sum

関連情報