dd
とmd5sum
/ を使用sha1sum
するだけで十分ですが、前述したように、デバイスのサイズはファイルのサイズと同じではないため、合計が異なります。
ここでまだそれを行う方法
まず、ファイルのサイズを知る必要があります。
$ stat -c '%s' debian-live-8.2.0-amd64-lxde-desktop.iso
1003487232
次に、syscallでクールにするには、2の2のべき乗の倍数としてこれを取得することをお勧めします。2つ4096
の乗算は、ファイルのサイズを正確に生成する必要があります。他の方法では、チェックが少なすぎるか、バイトが多すぎるため、チェックサムが間違っています。
$ 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