Dd

dd if=/dev/zero of=/dev/sda 有什麼作用

  • February 3, 2022

編輯:除非你想破壞數據,否則不要執行它來測試它。

有人可以幫我理解我得到了什麼嗎?

  1. dd if=/dev/zero of=/dev/sda bs=4096 count=4096

問:為什麼專門用 4096 表示count? 2. dd if=/dev/zero of=/dev/sda bs=512 count=4096 seek=$(expr blockdev --getsz /dev/sda - 4096)

問:這具體是做什麼的?

警告; 上面的程式碼將使一些/所有指定的設備/磁碟的數據無用!

dd if=/dev/zero of=/dev/sda bs=4096 count=4096 問:為什麼特別用4096做計數器?

這會將驅動器的前 16 MiB 清零。16 MiB 可能足以對任何“磁碟開始”結構進行核攻擊,同時又足夠小,不會花費很長時間。

dd if=/dev/zero of=/dev/sda bs=512 count=4096 seek=$(expr blockdev –getsz /dev/sda - 4096)

問:這究竟是什麼?

blockdev --getsz獲取“512 字節扇區”中塊設備的大小。所以這個命令看起來像是打算將驅動器的最後 2 MiB 清零。

不幸的是,這個命令在語法上是錯誤的。我希望該命令最初打算是

dd if=/dev/zero of=/dev/sda bs=512 count=4096 seek=$(expr `blockdev --getsz /dev/sda` - 4096)

並且反引號在人們在不同環境之間複製/粘貼的過程中失去了。

舊的分區表、LVM 元數據、raid 元數據等可能會在重用驅動器時導致問題。在驅動器的開始和結束處將部分歸零通常可以避免這些問題,同時比將整個驅動器歸零要快得多。

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