![如何向驱动器中写入零会删除其中的数据?](https://linux22.com/image/1629818/%E5%A6%82%E4%BD%95%E5%90%91%E9%A9%B1%E5%8A%A8%E5%99%A8%E4%B8%AD%E5%86%99%E5%85%A5%E9%9B%B6%E4%BC%9A%E5%88%A0%E9%99%A4%E5%85%B6%E4%B8%AD%E7%9A%84%E6%95%B0%E6%8D%AE%EF%BC%9F.png)
我对安全擦除驱动器的过程了解不少,包括一次擦除通常就足够了,而且还没有人(公开地)能够从一次零操作中恢复一点数据,但我意识到我仍然不知道为什么实际上,将零(或任何其他模式)写入 HDD 就足以擦除数据。
当我将零写入磁盘以清除数据时,究竟发生了什么?驱动器的位是否被翻转?如果是,那到底意味着什么?
正在写入的特定模式是否会对其产生影响 - 正在写入的零和组成驱动器的零和一(位)之间是否存在关系?
答案1
任何模式都和零一样好。零没有什么特别之处。
这个想法是设置磁盘上的每个位,而不仅仅是分配的扇区,因为未分配(但以前使用过)的扇区中仍然可以有剩余的数据。
零只是最容易写的常数,只有一个字符 - 0
,但1
都9
同样好(但可能在心理上表达较少的“无”的概念)。
答案2
当我将零写入清除数据的磁盘时,究竟发生了什么?
您正在用这些零覆盖数据。
HDD 基本上是一系列位。单个位可以容纳单个 0 或单个 1。这些位用于存储数据。每个磁盘都有固定数量的位。位越多,磁盘越大,可以存储的数据越多。
通过将这些位设置为 0 和 1,您的数据将存储在磁盘上。计算机程序知道如何解释它们以理解数据。
将零(或其他内容)写入磁盘会将先前的位值替换为新值,并用新值覆盖先前的内容。
对于 SSD 来说,情况会稍微复杂一些,而且覆盖它们并不是安全擦除它们的可靠方法。
答案3
简单的答案是(大部分,见下文)与用覆盖整个打印页面相同涂改液,您只是用空白替换了那里的信息。
确切模式技术上在大多数情况下并不重要,因为存储设备上任何字节的覆盖都会替换存储在那里的内容。对于传统硬盘,过去人们更喜欢使用零,因为这会导致媒体看起来是空白的,但有些人更喜欢使用随机数据(如果您要重新使用具有全盘加密的媒体,则首选这种方式,因为它会隐藏您在设备上存储的数据量),而对于某些闪存驱动器,最好使用所有位都已设置的字节(因为某些类型的闪存的未编程单元就是这样的)。
然而就像涂改液一样,这并不能保证数据无法恢复,即使它确实阻止了确切数据的恢复,通常也无法消除曾经存在任何数据的证据。大多数现代存储设备都会对坏扇区/块/字节进行某种形式的重新映射,旧数据仍会残留在以前使用过的、现在已损坏的介质区域中。同样,对于某些类型的介质,写入介质会导致实际的不可逆物理变化(例如,闪存每次写入时都会降低一点),尽管如果不对介质进行破坏性测试,可能很难检测到这种情况。
此外,对于某些介质类型,被“覆盖”的实际数据可能在相当长的一段时间内都不会被覆盖。由于上述每次写入闪存介质时都会出现性能下降的情况,大多数闪存设备都使用虚拟块映射来防止闪存的相同物理单元被覆盖的次数超过闪存的其他单元,最终结果是,对闪存设备的写入通常会写入新的空物理位置,然后将该地址的旧物理位置标记为空。
答案4
二进制由 1 和 0 组成,1 表示真或开,0 表示假或关。我们称这些为位。8 个这样的位组成一个字节。1024 个字节组成一个千字节,等等。
当你写入零时,你实际上是在关闭该字节。虽然如果你只是想销毁数据,这很有用,但如果你想让它看起来什么都没有,那就没用了。向驱动器写入零可以理解为故意破坏。
因此,从可信度的角度看,最好是采用随机写入模式,将 1 和 0 随机写入驱动器。如果您的驱动器被捕获,它看起来就像是随机数据。