读取或分配所有未分配扇区的方法是什么?

读取或分配所有未分配扇区的方法是什么?

最近,通过网络移动大文件时出现错误,导致原始文件在移动完成之前被删除。

从那时起,保存原始文件的 NTFS 驱动器就再也没有改变过,但出于某种原因,排名前六的几个恢复删除实用程序都无法恢复该文件,它们认为该文件的长度为 0,因此在尝试恢复时失败。老实说,我记不住它们的名字了。我只是逐个尝试了所有实用程序,直到其中许多实用程序都给出了完全相同的结果,我确信它们基本上是等同的,并且都遇到了同样的问题。

然后,我使用一个实用程序将驱动器的全部内容写入一个图像文件,我检查了该文件,发现丢失文件的部分内容与磁盘上其他文件的部分内容混合在一起。

有没有办法可以仅读取或分配不属于现有文件的扇区?

答案1

甚至比这更复杂,可能需要数周才能完成:

Linux 已为 ntfs 预建了库。我从未这样做过,所以我不知道这有多容易/困难。

您可以在内存中解码 NTFS 文件系统条目,创建所有已使用扇区的列表。然后扫描该列表以查找间隙。

编写该程序可能需要数周时间。

答案2

首先,这不会快速或容易地完成。

请备份图像,以防出现问题或更有可能的是无意中犯错。

这是减法过程。

如果你将所有东西都成像,它应该是可安装的。

挂载它,如果你不能在 Windows 上做到这一点,Linux 会做到。 mount -o loop /image.img /mountpoint

获取或编写一个程序,用 0 覆盖每个文件,以表示文件大小的精确字节数。该程序可能可以在 30-60 分钟内用 C 编写完成,并进行一些测试。删除刚刚覆盖的文件。

现在对图像中的每个文件重复此操作。

除了已删除的数据和一些基础设施外,该扇区的其余部分将为 0。

我忘记了僵尸文件。当然,它会删除所有已分配的文件,但很有可能之前删除的文件会留下数 GB 的文件残留。删除并部分覆盖的文件以及删除等都需要处理。

相关内容