操作系统如何删除数据?(Linux / Windows)[关闭]


11

我的问题很简单:操作系统(Linux或Windows)如何从硬盘中删除数据?

我可以想象两种方式:

  1. “物理方式”:通过将数据的内存地址全部设为零来真正删除数据。例如,如果我的硬盘上某处的数据看起来像1010...010之后0000...000

  2. 保留数据,但可以覆盖它。


4
如果你担心,你应该买这些中的一个gizmodo.com/5910937/...
拉杜Murzea

Answers:


13

关于“数据”的讨论太广泛了,但是很明显,您实际上是在谈论文件。您需要知道文件通常存储在文件系统中。尽管存在差异,但这通常意味着存在树的路径结构,代表文件或目录,并且文件在硬盘上分配了存储其内容的空间。

诸如rm简单地删除文件(即树中的条目)之类的命令:它们将父目录标记为少一个子目录。在文件所在的地址以及文件的内容所在的地址,没有任何更改。

但是,还有诸如之类的命令shred,它们实际上会覆盖文件的内容,因此(理想情况下)无法恢复该文件。这实际上要比前者难,因为不能保证使用相同的扇区来存储覆盖数据,而且从物理上讲,磁盘上的磁数据不是简单的二进制。而且,此类工具不仅会将数据归零,而且还会使用模式或随机数据将其覆盖多次,以使其在物理上更难恢复。

因此,您提到了两个选项,但是每天删除操作只是删除指向实际数据的指针。


11

您已经回答了您自己的问题。操作系统删除后,会将文件使用的空间标记为“可重复使用”。更安全的“删除”将覆盖文件块。“快速”和“完整”磁盘格式也是如此


1

第二种方式。hardrive上的文件系统有一个主文件表,这基本上是一个索引,它告诉哪个扇区保存哪个文件。如果删除了文件,则将从该表中删除该条目,并且可以将扇区用于新文件。旧数据仍然存在,并且可以被恢复,除非被覆盖。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.