私は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