イメージをドライブに書き込むときにSHA 256の合計が変更されるのはなぜですか?

イメージをドライブに書き込むときにSHA 256の合計が変更されるのはなぜですか?

ddUSBドライブを介して画像を書き込んだ後、画像を書き換えるとsha256sum合計が変わることがわかりました。なぜ? ISOと決して同じではありません。

私は実行しています:(sha256sum /dev/sdbパーティションではなくブロックデバイスで)

ベストアンサー1

画像がUSBドライブより小さい場合は、そのサイズのデータ​​をドライブから読み取る必要があります。それ以外の場合は、ドライブの残りのすべての部分がsha256に追加され、別の結果が生成されます。

例えば

$ ls -l tst.iso                                                                
-rw-r--r-- 1 root root  Jul  1 14:58 tst.iso

$ /usr/bin/sha256sum tst.iso
49bc20df15e412a64472421e13fe86ff1c5165e18b2afccf160d4dc19fe68a14  tst.iso

$ dd if=tst.iso of=/dev/sdg bs=1M
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 200.066 s, 5.4 MB/s

もう一度読むとき、私たちが書いた1,073,741,824バイトだけを読んだことを確認する必要があります。この場合、正確に1024個の1Mブロックであることがわかっているのでbs=1M count=1024

$ dd if=/dev/sdg bs=1M count=1024 | sha256sum
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 37.8798 s, 28.3 MB/s
49bc20df15e412a64472421e13fe86ff1c5165e18b2afccf160d4dc19fe68a14  -

合計バイトが一致しない場合、sha256 は異なります。

おすすめ記事