Dd

恢復整個磁碟的 DD

  • March 10, 2021

我正在使用舊的隨機數據覆蓋我的硬碟驅動器dd

dd if=/dev/urandom of=/dev/disk/by-uuid/etc bs=512

這是一個 2TB 的陣列,而我的 MacBook(執行 Linux,好嗎?)只能以大約 3.7MB/s 的速度寫入數據,這非常可悲,因為我在家裡看到我的台式機只有 20MB/s。今晚回家的時候,我想在dd這裡停下奔跑,把它帶回家,看看用更強大的機器一夜之間能取得什麼樣的進步。

我一直在使用一個簡單的循環來監控進度:

while true; do kill -USR1 $PID ; sleep 10 ; done

輸出如下所示:

464938971+7 records in
464938971+7 records out
238048755782 bytes (238 GB) copied, 64559.6 s, 3.7 MB/s

dd如果我要在家恢復通行證,我將如何重新啟動它?我知道該seek參數,但我將它指向什麼,記錄號或字節數?

正如@don_crissti 已經評論的那樣,只需使用seek=恢復即可。

dd if=/dev/urandom of=/dev/disk/by-uuid/etc bs=512 seek=464938971

GNU dd還支持以字節為單位搜尋,因此您可以準確地恢復,而不管塊大小:

dd if=/dev/urandom of=/dev/disk/by-uuid/etc bs=1M \
  seek=238048755782 oflag=seek_bytes

即使對於像/dev/urandom.

如果您正在尋找更快的替代方案,您可以cryptsetup plainOpen使用隨機密鑰和零,它應該超過/dev/urandom一個數量級(沒有 AES-NI)甚至全速執行(使用 AES-NI)。

shred -n 1如果偽隨機數據對您的案例足夠好,您也可以使用。shred應該能夠利用全磁碟速度,即使在非常慢的機器上也是如此。

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