我已经从我的 Win 11 系统中删除了几个 GB 的 .wav 文件(使用 shift+delete)。那是上周的事,从那以后机器就断电了。我尝试了多种不同的恢复工具,从 Recuva 到 R-Studio 到 GetDataBack 到 Stellar 到 Photorec,但即使在第二台笔记本电脑上的简单测试场景中,我也没有恢复任何已删除的 .wav 文件。两台机器都是完全正常(可启动)的 Win 11 笔记本电脑。
对于我认为最好的 Photorec,我使用 SystemRescue 制作了一个可启动 USB 并在整个驱动器上搜索 .wav 文件,但该工具返回 0 个文件。我觉得这很可疑——根本没有 .wav 文件?我在我的测试笔记本电脑上发现了许多默认设置。我使用 Photorec 是否错误?它没有太多选择。我尝试将我的驱动器同时视为 NTFS 和另一个 (EXT*)。在这两种情况下,都会在进一步传递之前找到 0/10 头文件。这是一个问题吗?
当然,我一直在关注他们的软件文档。
一般删除的文件(假设 Windows 10/11 + NTFS):
我还假设我们绕过了回收站。删除后:
基于文件系统的反删除或文件恢复工具通常可以在几秒钟内检查 $MFT 和 $Bitmap。
1 意味着只要不重复使用该条目,我们就可以检索文件名、文件的父级(文件夹)以及分配给该文件的簇的完整列表等信息(假设所有簇“运行列表”适合一个 MFT)记录)。
2 意味着分配给文件的簇可以随时被覆盖。在系统驱动器上,我们需要考虑操作系统不断写入驱动器。此外,我们下载的用于恢复文件的软件,我们安装的用于恢复文件的软件,可能会覆盖我们试图恢复的数据。
要恢复完整的文件,我们需要 1 和 2。如果我们丢失 2,那么恢复就没有意义了。如果我们只丢失 1 个,我们就有机会“雕刻”该文件。在这种情况下,基于文件系统的恢复和取消删除工具将不会检测到已删除的文件(日志除外)。
PhotoRec 是一个“雕刻者”:它扫描整个驱动器(尽管它提供了一个选项来限制仅扫描可用空间)并查找“魔术字节”。例如,JPEG 以字节序列 0xFF、D8、FF 开头,如果我们在簇边界上找到这样的序列,则很有可能找到 JPEG 文件的开头。
由于如果我们使用像 PhotoRec 这样的工具,我们必须扫描整个驱动器(或整个可用空间),因此我们可以看到这远非理想。此外,该工具由于其本质必然会产生“误报”,并且不会恢复文件名等文件属性,我们认为基于文件系统的取消删除工具是更好的选择。
删除的文件多久会被覆盖?
你不知道。虽然扫描已删除的文件有时确实会检测到几个月前删除的文件,但几分钟前删除的文件也确实已经无法恢复。
这些工具如何估计已删除文件的状态?
许多取消删除类型的工具会告诉您他们是否“认为”文件可以恢复。他们给出一些百分比或简单地说明例如“好”或“差”。
通过将分配给已删除文件的簇与 $Bitmap 中这些簇的状态进行比较,可以确定这些簇是否“空闲”。如果是这样,则假设分配给该文件的簇尚未被覆盖。
另一种可以应用的方法是查看文件扩展名是否与“魔术字节”匹配。
现在假设从 SSD + Windows 10/11 + NTFS 中删除文件
Windows 通常会立即向 SSD 发送 TRIM 命令,但这仅涉及与数据簇关联的 LBA 扇区地址。将此视为可能有例外的经验法则。同样,通常 SSD 的“未映射”“修剪”LBA 地址,如果我们从 LBA 地址 (RZAT) 读取,则从该点开始返回零。
有时会讨论是否立即发送 TRIM 命令,因为 Windows 也运行计划的(每周)TRIM。但即时 TRIM 和预定 TRIM都会发生。
$MFT 记录本身不受 TRIM 影响,它只是被标记为“未使用”。
这意味着:
该视频演示了上述内容: https: //youtu.be/NyLQbxnPurc
经验法则的一些例外情况
很可能这是不可能的,但即使不可能,您也不想恢复它们,因为它们无法使用。WAV 文件存储未编码的原始波形,因此对所有扰动特别敏感。删除将文件占用的空间标记为可用空间,随着时间的推移,内容将严重退化。即使被恢复,它们也至少会受到中等程度的损坏,而且听起来很可怕,到处都有很多随机的静电噪音。