U盘中的文件和文件夹显示为乱码的数据恢复

U盘中的文件和文件夹显示为乱码的数据恢复

华山剑客

现象:
一朋友的U盘(128M),原来装的基本上是图片,现在文件夹和文件名显示乱码:
U盘中的文件和文件夹显示为乱码的数据恢复_第1张图片
打开文件夹时出现错误提示:
 
恢复过程:
一、做U盘的镜像(用WinHex做U盘的镜像)
 
 
 
 
二、数据收集及分析
1、到根目录看看
 
第2016扇区
分析:很明显它不是根目录内容,这说明DBR有问题。
2、看DBR参数
 
 
分析:OEM的数据是乱码,但这影响不大。
3、到FAT1去,
 
第32扇区
分析:这是FAT32的分区,而且是FAT表正常
4、到FAT2
 
第1024扇区
分析:和FAT1的一样,看起来也没有问题,目前这个U盘的数据分布情况如下:
32
992
992
DIR
DBR
FAT1
FAT2
DATA
      32           1024        2016
但再看与它(第1024扇区)相邻的两个扇区时发现了问题:
第1023扇区结尾内容
第1025扇区开始内容
分析:第1023扇区和第1025扇区的数据应该是一个FAT表中的一部分,感觉第1024扇区(FAT2的开始扇区)的数据好像插在一个FAT表中间,且FAT2只有一个扇区,这说明FAT表有问题,现在要找正确的FAT表,然后恢复。
5、搜索FAT表
发现有三个FAT表:
第32扇区
第990扇区
第1024扇区
分析:除了原来看到的两个FAT表外,在第990扇区发现一个FAT表,如果这是正确的FAT2(不可能是FAT1),那么DATA区的开始扇区为:32+(990-32)×2=1948扇区,现在到第1948扇区去:

 第1948扇区
它的上一扇区数据:
第1947扇区
分析:显然第1948扇区不是DATA开始的扇区(DATA数据在FAT2后面,而FAT2最后一个扇区的数据一般是00),现在要找DATA开始的扇区。

6、找根目录区(DIR)或DATA区开始的扇区
说明:FAT32分区中的根目录不是的固定的区域、固定大小(与FAT16分区不同),但一般情况下是从第二簇(即DATA区开始的位置)开始的,即:DATA区开始的数据是根目录数据。
寻找方法:从DATA区向上找,比如先到根目录(第2016扇区,其实在现在的U盘中不是根目录,是DATA区中间部分),然后向上搜索(方法见下图),搜索到后看下一个扇区是不是根目录或者DATA区开始的数据:
 
 
最后在第1924扇区找到,根据内容分析是根目录数据(如果是子目录,此扇区的第一个字节应该是2E),感觉根目录在DATA区的开始位置(后面还要论证!!)
第1923扇区
 
第1924扇区
7、分析根目录区及子目录数据
⑴主要分析没有删除的的子目录(即文件夹)数据,从上图中可以找到两个子目录:
 
 
 
子目录1:锐利    子目录数据起始的簇号:2CBH  即第715簇
         子目录2:建利荣华  子目录数据起始的簇号:10002H 即第65538簇
⑵找子目录数据(不能直接到715簇或者65538簇去找,因为现在的DBR有问题),然后算出每簇扇区数及确认DATA开始的位置。 
 方法:搜索2E20202020202020
 
第3136扇区
第3198扇区
第3350扇区
第132996扇区
分析这4个子目录数据(其实分析其中任意两个即可):
该子目录所在的扇区数
目录项中描述的这个扇区的所在的簇数
3136 (无内容)
608
3198 (有内容,但删除)
639
3350 (有内容)
715
132996 (有内容)
65538
现在根据以上数据计算:
①原来分区中的每簇扇区数(重建DBR时会用到这个值)
(3198-3136)÷(639-608)=2
(3350-3198)÷(715-639)=2
(132996-3350)÷(65538-715)=2
结论:每簇扇区数是:2
②计算DATA开始的扇区数(假设是X)
3136=X+(608-2)×2      X=1924
3198=X+(639-2)×2      X=1924
3350=X+(715-2)×2      X=1924
132996=X+(65538-2)×2    X=1924
结论:DATA区的开始扇区是第1924扇区,而且根目录在DATA区开始的位置
⑶目前的情况
 
 
 
DIR
DBR
FAT1
FAT2
DATA
0                     1924
8、判断正确的FAT表,并确定每FAT表扇区数
        目前有两个不同的FAT表(不讨论第1024扇区那个备份的FAT表),先要判断哪个是正确的,方法如下:从前面分析的数据可知:第715簇是一个子目录的起始簇,那么在FAT表中,不会有一个簇指向它(因为如果有一个簇指向第715簇,那么第715簇就不可能是一个开始的簇),715换成16进制就是:2CB,在FAT表中应该表示为:CB020000,所以,如果在某一个FAT表中能找到CB020000,那么这个FAT表就不是原来正确的FAT表,在整个FAT表中(1924扇区前)搜索CB020000:
 
 
结果只有第37扇区中有这个数据
第37扇区
这个扇区在从第32扇区开始的的FAT表中的数据,那么从990扇区开始的FAT表有可能是正确的,进一步判断:在从990开始的FAT表中找到715簇对应的位置: 
 
第995扇区
 
从图中可以看出,第715簇中的表项值(即它的一下簇)是716,第716簇中的表项值是FFFFFF0F,表示结束,即这个子目录的内容占用715和716两个簇。基本上确认了从990开始的扇区是原来正确的FAT表,而且应该是原来的FAT2,那么现在可以推测出原来的分区情况:
 
 
 
DIR
DBR
FAT1
FAT2
DATA
0            990      1924
每FAT扇区数为:1924-990=934
FAT1开始的位置为:990-934=56(也是DBR中保留扇区的扇区数)
因此原来的U盘数据分布情况:
56
934
934
DIR
DBR
FAT1
FAT2
DATA
0    56       990      1924
三、手工修复
1、FAT2→FAT1
 因为第1024扇区的数据(从第4352簇�D�D�D4479簇)由于有原来的FAT2的数据而覆盖了,现在先要修复一下,但不知道原来是多少,现在只能用一个连续的没有碎片的,没有结束标志的数据联结上,能不能正确恢复,要看运气了,等恢复好后根据恢复情况再进一步微调。找一下从32开始的这个第4352簇�D4479簇的数据,发现全部是连续的,符合条件:

 把它复制到第1024扇区去:
 
 
 
这样第1024扇区的数据修复完毕,现在把从第990扇区到第1923扇区的FAT2内容复制到第56扇区:
 
 
 
 
 
2、修复DBR参数(用模板修复简单些!!)
 
 
修复前
修复后
(只修改保留扇区数和每FAT扇区数据,因为其它的数据是正确的)
 
 
 
 
 
现在把U安全删除后再插上,打开U盘,原来的内容都在,而且都能正常打开,朋友非常满意(因为涉及到隐私问题,所以我没有把恢复出来的照片扫图)。
 
 
2008-1-20  华山剑客写于湖北随州

你可能感兴趣的:(数据恢复,职场,U盘,休闲)