将已删除的文件标记为未删除


11

我的硬盘驱动器的容量为500 GiB。150 GB的数据被意外删除。发生此事件后,我没有向驱动器写入任何字节,因此可以保证我的数据在那里。我尝试了Recuva之类的应用程序,所有应用程序都显示数据在那里,并允许我将数据保存在其他位置,但是问题是我不想这样做。

我只希望文件再次被标记为未在MFT中删除。是否有任何可用于此目的的应用程序?我进行了很多搜索,但未找到任何内容,是否可以将文件取消标记为在MFT中已删除,或者我丢失了什么?如果我知道如何手动执行此操作,则可以编写一个应用程序。


2
其实,在老的DOS天,undeleteunerase确实做到了,但Windows程序倾向于复制文件。我认为我从未见过任何实际上未删除的文件。I didn't write any byte to the drive after that incident, so my data is guaranteed to be there.也许可以,但这并不意味着它们可以恢复;零散的任何文件都可能只会让您取回文件的第一块。
Synetech 2014年

AFAIK,通常,在删除文件时,将从MFT中删除文件夹/文件的条目。它可能不像将其打开或关闭一样简单。
Ganesh R. 2014年

@GaneshR。那就是我想做的,我想在MFT中重新添加条目,这可能吗?数据已经在硬盘驱动器中了,只需要在文件系统中注册即可。
Elmo 2014年

Recuva为我显示了文件名和文件所在的文件夹。
Elmo 2014年

1
您可以尝试请求某些数据恢复工具的开发者添加此选项。这里的反馈论坛的一对夫妇最流行的:Recuva的Photorec
Synetech

Answers:


5

取消删除NTFS卷上的文件并不像翻转一位一样简单。确实,已删除文件和未删除文件之间的差异仅是MFT中的一位,但是还需要恢复文件内容(存储为流),以及重新标记已删除文件中使用的扇区。 $ Bitmap伪文件,每个扇区包含一个位,每个位指示其对应的群集是已使用(已分配)还是空闲(可用于分配)。

这项工作非常复杂,以至于所有恢复工具都不愿写入已损坏的卷。例如,在$ Bitmap中将一个扇区标记为已使用,如果另一个文件已经使用了该扇区,则可能导致交叉链接。

本文很好地演示了十六进制转储的问题:
Windows“文件恢复”系列:第5部分从NTFS文件系统中手动恢复已删除的文件

另一篇文章甚至包含程序的源代码,可以对其进行修改以取消“已删除”位的翻转: 在NTFS中取消删除文件

有很多NTFS磁盘编辑器可以编辑MFT来翻转该位。我通过Google发现的一些(但幸运的是从未使用过)是:
WinHex
NTFS数据恢复工具包
DMDE
免费软件Active Disk Editor

可能甚至可行的解决方案是撤消MFT中的已删除位,然后使用chkdsk实用程序尝试恢复内容。该实用程序可以恢复文件的扇区链,这些扇区的扇区被错误地标记为可重新分配,并且可以修复$ Bitmap。

但是,此过程始终有可能破坏您的磁盘。

这就是为什么您和以上所有评论者(包括我本人)未找到任何可就地恢复的产品的原因。对于不是Microsoft员工从事NTFS工作的任何人来说,搞砸磁盘的可能性实在太大了。

我最好的建议是获取第二块硬盘并恢复其上的文件。我相信您已经发现一个备份磁盘是不够的。我已经有好几个朋友要我恢复唯一的备份,并且我总是建议他们(有时为时已晚)要有两个备份磁盘。

此外,两个备份磁盘中的至少一个应与计算机断开连接。听说计算机炸毁了自己和每个连接的USB设备,使所有人一无所获,就没有数据和备份的情况,我建议您这样做。


2

就像我昨天说过的,如果只有几个文件要恢复,那么您总是可以尝试使用十六进制/磁盘编辑器手动进行,但是我当然不建议这样做。

经过几分钟的研究和测试,我最终设法将文件标记为未删除$MFT,但问题是这还不够,您还必须标记文件中正在使用的簇$BITMAP。事实证明,这项任务太困难了,要找到和完成这项工作也太多了,所以我最终放弃了。我认为运行chkdsk /f,看它是否将检测的差异和正确标识集群,但觉得太冒险这样做,因为在NTFS分区上我有一些其他的文件,我不想失去测试。

(此外,请注意,与FAT *不同,NTFS将文件的群集链存储在中$MFT,这并不能保证您在恢复时可以访问整个群集链,因此,碎片化的文件最终可能无法恢复即使意外擦除后您没有向驱动器写入任何内容,也并不表示Windows并未这样做。例如,它可能已写入驱动器\System Volume Information,尤其是在运行Shadow Copy / Previous Versions服务的情况下。)

显然,手动恢复不是真正的解决方案,也不是您的问题的答案,这就是为什么我仅将其发布为评论。可悲的是,我所做的所有搜索都是空的,而您的问题的简短答案是:不,没有公共程序可以简单地将文件标记为NTFS卷上的未删除文件

(有一些昂贵的取证程序,它们可以对驱动器进行处理并恢复文件,并通过过滤器显示原始数据以显示结构等,但是即使这样,它们也无济于事,因为它们特别指出了修改原始驱动器。)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.