有许多文件粉碎程序可以用来永久删除一个文件。我想知道的是一些实现细节。例如,考虑到 Gutmann 算法,它应该如何处理文件和文件系统?应用程序是否应该遍历所有硬盘集群以覆盖它们?或者打开一个文件,以某种方式更改它的内容,然后删除它就足够了?
反之亦然,如何恢复已删除的文件?我没有找到很多关于这些主题的信息。
我将非常感谢您的回复。
有许多文件粉碎程序可以用来永久删除一个文件。我想知道的是一些实现细节。例如,考虑到 Gutmann 算法,它应该如何处理文件和文件系统?应用程序是否应该遍历所有硬盘集群以覆盖它们?或者打开一个文件,以某种方式更改它的内容,然后删除它就足够了?
反之亦然,如何恢复已删除的文件?我没有找到很多关于这些主题的信息。
我将非常感谢您的回复。
您可以查看实用程序的源代码,shred
它是 Linux 上的 GNU 核心实用程序的一部分。基本思想是对磁盘块进行多次传递。还有一些关于底层文件系统提交方式的假设这些写道。有关info coreutils 'shred invocation'
更多信息,请参阅。
当您了解相关文件系统的内部布局以及如何在其上实施删除操作时,最好恢复已删除的文件。例如,许多 FAT 文件系统的驱动程序只是将目录条目标记为已删除,但保持文件内容完整。(直到并且除非它被您创建的新文件覆盖)。因此,您可以转储磁盘并扫描原始数据以查找您想要的内容。