Block-Device
將圖像寫入驅動器時,為什麼 SHA 256 總和會發生變化?
我注意到,如果我通過
dd
USB 驅動器將圖像寫入然後sha256sum
該圖像;總和發生變化。為什麼?它永遠不會與 ISO 相同。我正在執行:(
sha256sum /dev/sdb
在塊設備上,而不是分區上)
如果您的映像比 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 會有所不同。