Linux

Linux dd關於相同塊的差異結果的問題

  • January 22, 2020

我嘗試使用 dd 命令在 linux 作業系統上執行簡單的測試案例。

我用這個命令創建了一個簡單的磁碟映像:

dd if=/dev/urandom of=disk.img bs=1M count=100 

這是第一次測試:

現在我執行這個命令:

dd if=disk.img of=output_1 bs=1k count=4
dd if=disk.img of=output_2 bs=4k count=1
md5sum output_1 output_2 
bc0245c10ff529042fd2a5335ed1573f  output_1
bc0245c10ff529042fd2a5335ed1573f  output_2   

您可以看到***output_1並且output_2***具有完全相同的 md5 hash 。

這是第二次測試:

現在我將跳過參數添加到 dd 命令:

dd if=disk.img of=output_1 skip=1500 bs=1k count=4 
dd if=disk.img of=output_2 skip=1500 bs=4k count=1
c5b0e8dde317c25011b31a5c48580477  output_1
4585d39fcf93cec4abc6c55094aac724  output_2    

為什麼這個塊的結果不同?

我的測試的哪一部分是錯誤的?

跳過參數位於(輸入)塊中,而不是字節,如手冊頁中所述:

skip=N    skip N ibs-sized blocks at start of input

在第一種情況下,跳過的部分是:

1500 * 1KiB = 1536000 字節

第二種情況:

1500 * 4KiB = 6144000 字節

只要所涉及的值完全劃分,您就可以調整。對於第二種情況,使用 1500*1k/4k=375 ( skip=375) 將返回與第一種情況相同的結果。

引用自:https://unix.stackexchange.com/questions/563354