我使用 dd 将一个外部硬盘“零填充”(完全擦除),据我所知:人们说你应该至少“零填充”3 次,以确保数据真的被擦除并且没有人可以恢复任何东西。
所以我决定在磁盘填满零之后再次扫描磁盘。我原本以为磁盘上还会剩下一些随机二进制文件。结果发现它一开始只有几个连续的字节。这可能是文件结构类型和其他标头内容。除此之外,它全是零,没有其他内容。
所以如果我们必须从零填充的磁盘恢复任何文件,...该怎么做?据我所知,即使你用零填充磁盘,你仍然应该会剩下一些数据。...或者 dd 真的可以完全消灭所有数据吗?
答案1
正如你所读到的这里,将数据“零填充”后,将无法恢复。
正确恢复单个位的概率为 56%,但由于必须恢复 8 位才能获得一个字节,因此恢复任何数据的可能性非常小。
答案2
请务必小心处理此信息。我从事硬盘行业,我可以确认,非轨道读取可以恢复覆盖的数据。
一些恢复方法使用这个技巧将磁头设置为偏离轨道 +/-10%,然后读取,将其稍微偏离轨道一点,然后读取。在某个时候,您将能够恢复零填充之前所记录的内容。
尽可能使用随机数。对于元数据和 MBR 擦除,零是可以的。我建议进行几次随机遍历以消除原始数据。
此外,零并不意味着清除硬盘上的记录位。零和其他数字一样,都有位模式。
答案3
是的...但这取决于你有多偏执。
专业人士可能仍能读取部分数据。政府/军方对“完全擦除”的标准包括多次遍历,包括多次在整个驱动器上写入随机数据,中间穿插 0 填充和 1 填充。这是因为存在磁性重影,复杂的硬件可以分析并提取出来。这是一种昂贵的工具,大多数人无法使用,因此,仅仅雇用某人进行提取对于大多数人来说也是非常昂贵的。
但单凭这一点,没有理由dd
不能进行多次传递。你可以告诉它从哪里获取它写入的原始数据,因此/dev/random
我认为,交替进行零次传递和一次传递将使它有资格对数据造成相当大的破坏。
答案4
更新
根据戴维链接的论文,使用软盘可以恢复被覆盖的数据,但使用现代硬盘几乎不可能恢复,因此恢复想法最好被视为一个神话。
我保留我原来的答案作为代表神话。
注意:“神话”是指恢复物理覆盖的数据。恢复只是被删除(而不是被覆盖)的数据则完全是另一回事。
尽我所知:
当您覆盖磁盘上的数据时,旧数据将丢失,无法被常规系统工具识别。(如果没有丢失,读取将返回新旧数据的混合位,因此您的数据将损坏,您需要更换磁盘。)
但使用特殊设备也许可以恢复被覆盖的数据。原因在于磁盘上记录位的方式:“位”是磁盘上的磁化区域。代表单个位的区域包含数百个磁性“颗粒”,如果足够多的单个颗粒具有正确的方向,则读取一个位将返回 1。
诀窍在于写入永远不会 100% - 覆盖可能会改变大约 90% 的晶粒的磁性方向,这对于可靠地读取新数据来说已经足够了。但是晶粒中还留有一些未改变方向的残余磁性。如果您有合适的设备,可以读取这些残余物,因此您可以获得旧的覆盖数据的(有些嘈杂的)表示。结合统计分析,通常可以重建相当数量的原始材料。
但是这种恢复需要专门的硬件,而且正如 Oli 提到的,对于大多数人来说,它的成本过于昂贵。