Linux
如何驗證我的硬碟是否已清零/擦除?
我曾經
shred
擦拭我的外部硬碟:sudo shred -vz /dev/sdb
我還應該補充一點,磁碟有 5 個壞扇區。
我想驗證磁碟是否已歸零,每個https://superuser.com/questions/1510233/is-there-a-faster-way-to-verify-that-a-drive-has-been-fully-zeroed
我不太熟悉
dd
,但我相信這些表明它已經歸零:sudo dd if=/dev/sdb status=progress | hexdump 0000000 0000 0000 0000 0000 0000 0000 0000 0000 * 5000916670976 bytes (5.0 TB, 4.5 TiB) copied, 45754 s, 109 MB/s 9767541167+0 records in 9767541167+0 records out 5000981077504 bytes (5.0 TB, 4.5 TiB) copied, 45756.7 s, 109 MB/s 48c61b35e00
sudo dd if=/dev/sdb status=progress | od | head 5000952267264 bytes (5.0 TB, 4.5 TiB) copied, 45739 s, 109 MB/s 9767541167+0 records in 9767541167+0 records out 5000981077504 bytes (5.0 TB, 4.5 TiB) copied, 45741.1 s, 109 MB/s 0000000 000000 000000 000000 000000 000000 000000 000000 000000 * 110614154657000
但是使用一個簡單
cmp
的顯示異常:sudo cmp /dev/zero /dev/sdb cmp: EOF on /dev/sdb after byte 5000981077504, in line 1
磁碟是否已歸零?
磁碟是否已歸零?
是的。命令的輸出
dd
顯示它已寫入 5000981077504 字節。您的cmp
命令說它在 5000981077504 字節後到達 EOF(文件結尾),這是相同的。請注意,這只適用於硬碟驅動器。對於固態設備,磨損均衡和過度配置空間等功能可能會導致某些數據未被擦除。此外,您的驅動器不得有任何損壞的扇區,因為它們不會被擦除。
請注意,
cmp
這對於此任務不是很有效。你會更好badblocks
:badblocks -svt 0x00 /dev/sdb
從
badblocks(8)
,該-t
選項可用於驗證磁碟上的模式。如果您沒有指定-w
(write) 或-n
(non-破壞性寫入),那麼它將假定模式已經存在:-t test_pattern Specify a test pattern to be read (and written) to disk blocks. The test_pattern may either be a numeric value between 0 and ULONG_MAX-1 inclusive, or the word "random", which specifies that the block should be filled with a random bit pattern. For read/write (-w) and non-destructive (-n) modes, one or more test patterns may be specified by specifying the -t option for each test pattern desired. For read-only mode only a single pattern may be specified and it may not be "random". Read-only testing with a pattern assumes that the specified pattern has previously been written to the disk - if not, large numbers of blocks will fail verification. If multiple patterns are specified then all blocks will be tested with one pattern before proceeding to the next pattern.
此外,使用
dd
預設塊大小 (512) 也不是很有效。您可以通過指定bs=256k
. 這導致它以 262,144 字節而不是 512 字節的塊傳輸數據,從而減少了需要發生的上下文切換的數量。根據系統的不同,您可以通過使用繞過頁面記憶體來加快速度。iflag=direct
在某些情況下,這可以提高塊設備上的讀取性能。