写入同一目录后是否可以恢复 NTFS 上的文件?

写入同一目录后是否可以恢复 NTFS 上的文件?

我意外删除了几个.tex文件.pdf。这些文件存储C:\Users\Name\Desktop\notes在我的笔记本电脑的 SSD 上。我使用的是 Windows 11 Pro。这件事发生在一个月前左右。

此后,我在 上添加和删除了文件Desktop,直到现在我才注意到它们被删除了。我试图弄清楚 NTFS 如何处理它们,以及尝试恢复它们是否可行(使用 R-Studio 等软件)。

具体来说,我想知道以下问题:如果我删除文件并在 上写入新文件Desktop,这是否自动意味着以前的文件将被新文件覆盖?换句话说,新文件会取代它们的“位置”吗?

如果是这种情况,我看不出有任何方法可以恢复我的文件。如果不是,那么在这种情况下,NTFS 将新文件存储在哪里 - 它只是将它们插入第一个空闲的内存块中吗?

编辑:添加了有关操作系统的信息。

答案1

具体来说,我想知道以下问题:如果我删除文件并在桌面上写入新文件,这是否意味着以前的文件将被新文件覆盖?换句话说,新文件会取代它们的“位置”吗?

不是;至少一般来说不是,因为目录“包含”文件,正如你假设的那样。目录不是容器——它们只不过是列表文件,并且它们不控制实际的数据分配。

(有时文件系统尝试使来自同一目录的文件彼此“靠近”,但这最多是一种尽力而为的性能优化——它实际上不是目录的功能。)

在这种情况下,NTFS 将新文件存储在哪里 - 它是否只是将它们插入到第一个空闲的内存块中?

文件系统不会这样做;它们试图做完全相反的事情并传播新的分配,以便文件有一定的空间来增大大小——这样做可以避免碎片化。

因此,如果你在 NTFS 上的同一目录中创建一个新文件,它被覆盖的可能性很低任何已删除的文件,更不用说同一目录中的文件了。

有第三方“碎片整理”工具可以以图形方式显示文件的位置(不是物理位置,而是逻辑集群的位置),并fsutil file queryExtents在控制台中执行相同操作 - 该LCN列是分区内的集群编号。


澄清一下:我的答案是关于文件系统如何将文件位置映射到磁盘逻辑扇区,而其他两个答案是关于磁盘固件如何将逻辑扇区映射到物理扇区。

后者通常对操作系统是不可见的;尽管 SSD 内部发生了很多事情,但它仍然为操作系统提供了逻辑扇区的“稳定”线性视图。(一旦逻辑扇区被覆盖,即使其旧数据仍然物理上存在,操作系统也无法访问它:它看到的只是该逻辑扇区的“当前”版本。)

然而,harrymc 指出,SSD 具有 TRIM 功能,这是操作系统用来立即“丢弃”特定逻辑扇区的命令,几乎可以视为“用零覆盖”。由于 Windows 在文件被删除后会立即发出 TRIM(并且大多数 SSD 将 TRIM 视为立即丢弃),因此结果是,只要您删除文件,与该文件相对应的逻辑扇区立即地變為空。

答案2

SSD 的工作方式与 HDD 非常不同,因为它执行一些有些矛盾的操作:

  • 磨损均衡尝试将数据写入空块,因为这可以减少磁盘上的操作次数
  • 垃圾收集尝试将部分写入的块合并为一个块
  • 修剪 用于在块中的数据被删除且块完全变为空时擦除块。

由于此操作发生在大约一个月前,固件有足够的时间来移动数据。被删除的块被修剪,其数据不再存在,部分块可能被复制,其空间被修剪。

在 SSD 上恢复此类数据的可能性非常低。当然,您仍然可以尝试,甚至可能找到一些数据,但我真的认为这不值得。也许可以尝试在旧备份中找到文件。

答案3

SSD 没有像 HDD 那样的物理结构。此外,TRIM 通常用于设置应将新文件写入的位置。这可能包括(但不一定)您删除的文件所在的位置。

实际的Trim操作来协助您:

SSD 使用一种称为“修剪”的过程来定期删除不再使用的数据块。但是,修剪后的数据的实际删除是通过一个复杂的过程进行的,该过程决定了删除的时间。

修剪不仅可以释放驱动器上的空间,还可以帮助 SSD 获得更好的性能并延长使用寿命。

请参见:

Trim 解释

所以你不太可能恢复这些文件。我会说“消失了”

快速查看 SSD 上的 Recuva 表明您是否可以恢复文件只是运气问题。

因此总体而言:文件可能(90%或更多)已经丢失。

相关内容