私は、Debian Wikiで theseDebianEeePC HowTo InstallUsingStandardInstallerの指示に従って、USBにDebian ISOを書き込みました。
dd if=debian-*-netinst.iso of=/dev/sdX
sha1sum
を使用して、ダウンロードしたISOファイルのチェックサムを確認できます。 USBスティックデバイスのチェックサムをチェックして、USBスティックに問題がなく、ISOが完全にコピーされたことを確認するにはどうすればよいですか?
cmp
を使用して、すべてが正常にコピーされたかどうかを確認できます。
$ cmp -n `stat -c '%s' debian-X-netinst.iso` debian-X-netinst.iso /dev/sdX
このソリューションでは、/dev/sdX
のチェックサムを明示的に計算しません。ただし、比較のソース(つまり、debian-X-netinst.iso
)に対してすでに計算を行っているので、計算する必要はありません。
単にdd if=/dev/sdX | sha1sum
を実行すると、後続のブロックが取得されるために、一致しないチェックサムが生成される可能性があります(/dev/sdX
は、isoファイルよりも大きい可能性があります)。
cmp -n
を使用して、/dev/sdX
の後続バイトが比較されないようにします。
USBマスストレージデバイスの品質について偏執的である場合は、sync
を呼び出して取り出し、再度挿入してから比較してください。そうでない場合、すべてのブロックまたは一部のブロックがカーネルから取得される可能性がありますVM(キャッシュ)-実際にはおそらくハードウェアのビットがおかしくなっています。
dd
とmd5sum
/sha1sum
を使用するだけで十分ですが、前述のとおり、デバイスのサイズはファイルのサイズと同じではないため、合計が異なります。
ここでまだそれを行う方法
まず、ファイルのサイズを知る必要があります。
$ stat -c '%s' debian-live-8.2.0-AMD64-lxde-desktop.iso
1003487232
次に、syscallでクールにするには、これを4096
のような2のべき乗の倍数として取得することをお勧めします。2つのHAVE TOを乗算すると、ファイルのサイズが正確に得られます。他の方法では、チェックする数が少なすぎますまたはバイト数が多すぎて、チェックサムが間違っています。
$ bc
bc 1.06.95
scale = 9
1003487232 / 4096
244992.000000000
うれしいです、4096 × 244992 = 1003487232
なので、4096は私にとっては良いでしょう(そしておそらくあなたにとってもそうです)ので、4096
(標準)のブロックサイズと244992
のブロックカウントを使用できます。
USBキーにファイルを書き込むことを忘れないでください...
$ dd if=debian-live-8.2.0-AMD64-lxde-desktop.iso of=/dev/sd? && sync
また、既知のブロックサイズとブロックカウントを使用して、キーから正確なバイト数を読み取り、それらを確認できます。
$ dd if=/dev/sdb bs=4096 count=244992 | sha1sum
b0dbe4ca8f526d1e43555459c538607d4a987184
(はいmd5sum
はsha1sum
よりも高速ですが、これは明らかにボトルネックではありません。ボトルネックはUSBのスループットです。
または、要するに:
dd if=/dev/sdb bs=4096 count=$(($(stat -c '%s' the.iso) / 4096)) | sha1sum
ジュリアンの答えはうまくいきますが、これを行うためのより簡単で高速な方法があります。
Sudo head -c <image size> /dev/sdX | sha1sum
@Kyle Jonesの回答に基づく
diff <(md5sum debian-XYZ-netinst.iso | awk '{print $1}') <(dd if=/dev/sdX | md5sum | awk '{print $1}')
md5sum
より高速であるため、sha1sum
を使用する必要があります(これにより、大きなファイルをチェックするときに時間を節約できます)