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

noc*_*ent 4 windows ntfs pdf data-recovery filesystems

我不小心删除了几个.tex.pdf文件。这些文件存储C:\Users\Name\Desktop\notes在我笔记本电脑的 SSD 下。我使用的是 Windows 11 专业版。看起来这件事发生在大约一个月前或更短的时间。

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

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

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

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

use*_*686 12

\n

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

\n
\n

不; 至少通常不会,因为目录“包含”您所假设的意义上的文件。目录不是容器 \xe2\x80\x93,它们只不过是文件列表,并且不控制实际的数据分配。

\n

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

\n
\n

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

\n
\n

文件系统不这样做;他们尝试做完全相反的事情并分散新的分配,以便文件有一些空间可以增长 \xe2\x80\x93 的大小,这样做可以避免碎片。

\n

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

\n

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

\n
\n

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

\n

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

\n

然而,harrymc 提出了一个很好的观点,即 SSD 有 TRIM \xe2\x80\x93 ,操作系统使用该命令立即“丢弃”特定逻辑扇区,并且几乎可以将其视为“用零覆盖”。由于Windows在删除文件后立即发出TRIM(并且由于大多数SSD将TRIM视为立即丢弃),因此结果是只要删除文件,其对应的逻辑扇区立即变为空。

\n


har*_*ymc 8

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

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

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

在 SSD 上恢复任何此类数据的机会非常低。您当然仍然可以尝试,甚至可能找到一些数据,但实际上我认为这不值得麻烦。尝试在旧备份中查找文件。