![使用“dd”多次擦除磁盘](https://linux22.com/image/46965/%E4%BD%BF%E7%94%A8%E2%80%9Cdd%E2%80%9D%E5%A4%9A%E6%AC%A1%E6%93%A6%E9%99%A4%E7%A3%81%E7%9B%98.png)
我想使用dd
多次覆盖磁盘来破坏无法恢复的数据。
我知道我可以用dd if=/dev/zero/ of=/dev/sdx/
零进行传递,或者dd if=/dev/null/ of=/dev/sdx/
完成类似(不完全相同)的结果,但它会更慢。
我想知道是否有一种方法可以使用 将全零写入磁盘,然后将所有 1 写入磁盘dd
,或者是否有更好的方法来完成此操作?
答案1
首先,dd if=/dev/null of=/dev/sdx
(请注意,任一设备名称后都没有尾随/
)不会执行任何操作,因为从 /dev/null 读取始终返回 EOF。相比使用dd
,这个任务更适合shred /dev/sdx
。
答案2
-kq
的选项为wipe
特定于块设备:
wipe -kq /dev/hda3
答案3
另一种选择是使用达里克的靴子和核武器 (DBAN)来自现场 CD/DVD。
答案4
更好的方法是
cat /dev/zero >/dev/sdx
用什么覆盖并不重要。如果您担心攻击者使用昂贵的电子设备,这对于 20 世纪 80 年代的磁盘确实很重要,但对于今天的磁盘来说并不重要。看https://security.stackexchange.com/questions/10464/why-is-writing-zeros-or-random-data-over-a-hard-drive-multiple-times-better-th/10474#10474
请注意,这仅适用于磁硬盘,不适用于 SSD。在 SSD 上,覆盖一个扇区只是将其标记为未使用并写入另一个扇区。如果您担心攻击者能够访问硬件,则无法确定您是否已擦除闪存中的数据。相反,请使用 SSD 的安全擦除命令(如果有)。但请注意,并非所有 SSD 型号都有安全擦除命令,有些声称有错误地执行该命令。