成功恢复FAT32误格式化后所有碎片文件(已覆盖的除外)
转载请保留原作网站:http://www.sjhf.net [摘要] 接至沈阳寄过来的一个FAT32的10GB分区,存储某单位重要的文档(多为DOC和XLS),误格式化!之后客户想过若干种方法,也找过当地一些数据恢复公司,客户称:用一些数据恢复软件进行恢复(猜测如FINAL DATA等工具),部分文件可找到名称,但恢复出来的数据无法打开,修复后也只能出来少部分数据。
[分析] 1、接手后观察文件系统损坏情况,格式化前后文件系统结构相同,所以原FAT表全部清0,不可重现。试用几个数据恢复软件进行恢复,只有不到5个文件能够完全打开,还都是像请假条、通知一样的并不很重要的文档。这样可知,市面上所有软件均无法完好恢复。 2、具体进行磁盘数据区,对原因进行确认。果然,大多数文件均不连续。(原因可能是因为这些重要的文档,像数据库一样频繁改动),直观上看,没有任何规律。格式化后因用户或先前的数据恢复商并未严格遵守不写盘的原则,直接在系统上挂盘,造成系统还原、缩略图、回收站等组件新占用了部分空间,约5000个簇(大约40M),基本占用分区最前边,所以这40M的恢复将很困难。 3、逆向分析数据的存储过程,根据磁盘扇区的特征及文件内容特性,通过模糊比对算法是有可能进行处理的。但工作量巨大,鉴于客户数据重要,决定一试。
[恢复过程] 1、通过之前写过的扇区类型分析程序进行扇区类型分析。形成A中间结果 2、根据A中间结果中的目录节点,分析结构,重组模糊目录树。假设为B中间结果 3、根据A与B中间结果,结合逆向数据存储过程算法,重建一FAT表。 4、根据建好的FAT表,映射欲恢复数据的目录项,恢复后测试70%的文件已经恢复成功。 5、对未成功恢复的文件进行分析,发现这些文件其跳跃性较大,所以程序很难自动分析处理。所以,手工进行分析。 6、先前正确的文件很有助于进行分析,通过程序将这些不可能存储的空间在虚拟环境中剔除,再将A结果中不符合数据类型的空间剔除。余下的可形成C结果。 7、针对单个文件,过滤掉存储位置在覆盖范围内的,再分析其特征,与C结果中进行比对,很快发现命中率很高,(此例中,多数文件100%命中),根据分析结构,恢复数据。将恢复结果,写了一个小程序补充至C结果,减少分析范围和复杂度。 8、继续第7步,如果有无法恢复的文件,暂时跳过。 9、待所有文件均处理完成后,返回来再分析8步中遗留的文件,继续7-9步。完成后剩余2个文件还无法恢复。 10、人工方式仔细分析最后的两个文件,根据簇之间的差异性,做出碎片的判断,经过很长时间的处理(比上面的要复杂得多)。终于恢复成功。两个文件均有4个不连续的碎片,恢复的难度很高。 11、至此,所以未覆盖的文件100%恢复成功。
[后记] 一、 此例100%恢复也不是必然的,之所以可以完美解决,原因可能有: 1、文件数目并不是很多,造成存储空间在特征上的复杂程序是有限的,磁盘空间也不很大; 2、多数文件(尤其在同类型的文件上)表现的碎片还是有一定规律性的,比如客户需要的一个保险的目录,基本其下的所有重要文件都是两个 碎片,且第一个碎片多为1-2个簇,可能是客户先将空表建好后,才后续添入内容的。 3、程序的自动分析的对关键结构的重建在恢复中起到了至关重要的作用。否则以人工的方式进行分析和恢复,几乎是不可能的。 |