U盘中的文件和文件夹显示为乱码的数据恢复
2010-01-24 16:54
549 查看
U盘中的文件和文件夹显示为乱码的数据恢复
华山剑客
现象:一朋友的U盘(128M),原来装的基本上是图片,现在文件夹和文件名显示乱码:
打开文件夹时出现错误提示:
恢复过程:
一、做U盘的镜像(用WinHex做U盘的镜像)
[align=center] [/align]
[align=left] [/align]
[align=left] [/align]
二、数据收集及分析
1、到根目录看看
[align=left] [/align]
[align=center]第2016扇区[/align]
[align=left]分析:很明显它不是根目录内容,这说明DBR有问题。
[/align]
[align=left]2、看DBR参数[/align]
[align=center] [/align]
[align=center] [/align]
[align=left]分析:OEM的数据是乱码,但这影响不大。
3、到FAT1去,[/align]
[align=center] [/align]
[align=center]第32扇区[/align]
[align=left]分析:这是FAT32的分区,而且是FAT表正常
4、到FAT2[/align]
[align=center] [/align]
[align=center]第1024扇区
分析:和FAT1的一样,看起来也没有问题,目前这个U盘的数据分布情况如下:[/align]
[align=center]32[/align] | [align=center]992[/align] | [align=center]992[/align] | DIR |
[align=center]DBR[/align] | [align=center]FAT1[/align] | [align=center]FAT2[/align] | [align=center]DATA[/align] |
但再看与它(第1024扇区)相邻的两个扇区时发现了问题:
[align=center]第1023扇区结尾内容[/align]
[align=center]第1025扇区开始内容[/align]
分析:第1023扇区和第1025扇区的数据应该是一个FAT表中的一部分,感觉第1024扇区(FAT2的开始扇区)的数据好像插在一个FAT表中间,且FAT2只有一个扇区,这说明FAT表有问题,现在要找正确的FAT表,然后恢复。
5、搜索FAT表
[align=left]发现有三个FAT表:[/align]
[align=center]第32扇区[/align]
[align=center]第990扇区[/align]
[align=center]第1024扇区[/align]
分析:除了原来看到的两个FAT表外,在第990扇区发现一个FAT表,如果这是正确的FAT2(不可能是FAT1),那么DATA区的开始扇区为:32+(990-32)×2=1948扇区,现在到第1948扇区去:
第1948扇区
[align=left]它的上一扇区数据:[/align]
[align=center]第1947扇区[/align]
[align=left]分析:显然第1948扇区不是DATA开始的扇区(DATA数据在FAT2后面,而FAT2最后一个扇区的数据一般是00),现在要找DATA开始的扇区。[/align]
[align=left]
6、找根目录区(DIR)或DATA区开始的扇区
说明:FAT32分区中的根目录不是的固定的区域、固定大小(与FAT16分区不同),但一般情况下是从第二簇(即DATA区开始的位置)开始的,即:DATA区开始的数据是根目录数据。
寻找方法:从DATA区向上找,比如先到根目录(第2016扇区,其实在现在的U盘中不是根目录,是DATA区中间部分),然后向上搜索(方法见下图),搜索到后看下一个扇区是不是根目录或者DATA区开始的数据:
[/align]
[align=left] [/align]
[align=left]最后在第1924扇区找到,根据内容分析是根目录数据(如果是子目录,此扇区的第一个字节应该是2E),感觉根目录在DATA区的开始位置(后面还要论证!!)
[/align]
[align=center]第1923扇区[/align]
[align=left] [/align]
[align=center]第1924扇区[/align]
[align=left]7、分析根目录区及子目录数据
⑴主要分析没有删除的的子目录(即文件夹)数据,从上图中可以找到两个子目录:
[/align]
[align=left] [/align]
[align=left] [/align]
[align=left]子目录1:锐利 子目录数据起始的簇号:2CBH 即第715簇
子目录2:建利荣华 子目录数据起始的簇号:10002H 即第65538簇
⑵找子目录数据(不能直接到715簇或者65538簇去找,因为现在的DBR有问题),然后算出每簇扇区数及确认DATA开始的位置。
方法:搜索2E20202020202020[/align]
[align=center] [/align]
[align=center]第3136扇区[/align]
[align=center]第3198扇区[/align]
[align=center]第3350扇区[/align]
[align=center]第132996扇区[/align]
[align=left]分析这4个子目录数据(其实分析其中任意两个即可):[/align]
[align=center]该子目录所在的扇区数[/align] | [align=center]目录项中描述的这个扇区的所在的簇数[/align] |
3136(无内容) | [align=center]608[/align] |
3198(有内容,但删除) | [align=center]639[/align] |
3350(有内容) | [align=center]715[/align] |
132996(有内容) | [align=center]65538[/align] |
①原来分区中的每簇扇区数(重建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区开始的位置
⑶目前的情况[/align]
[align=center] [/align] | [align=center] [/align] | [align=center] [/align] | DIR |
[align=center]DBR[/align] | [align=center]FAT1[/align] | [align=center]FAT2[/align] | [align=center]DATA[/align] |
[align=left]8、判断正确的FAT表,并确定每FAT表扇区数
目前有两个不同的FAT表(不讨论第1024扇区那个备份的FAT表),先要判断哪个是正确的,方法如下:从前面分析的数据可知:第715簇是一个子目录的起始簇,那么在FAT表中,不会有一个簇指向它(因为如果有一个簇指向第715簇,那么第715簇就不可能是一个开始的簇),715换成16进制就是:2CB,在FAT表中应该表示为:CB020000,所以,如果在某一个FAT表中能找到CB020000,那么这个FAT表就不是原来正确的FAT表,在整个FAT表中(1924扇区前)搜索CB020000:
[/align]
[align=left] [/align]
[align=left]结果只有第37扇区中有这个数据[/align]
[align=center]第37扇区[/align]
这个扇区在从第32扇区开始的的FAT表中的数据,那么从990扇区开始的FAT表有可能是正确的,进一步判断:在从990开始的FAT表中找到715簇对应的位置:
[align=center]第995扇区[/align]
[align=left] [/align]
从图中可以看出,第715簇中的表项值(即它的一下簇)是716,第716簇中的表项值是FFFFFF0F,表示结束,即这个子目录的内容占用715和716两个簇。基本上确认了从990开始的扇区是原来正确的FAT表,而且应该是原来的FAT2,那么现在可以推测出原来的分区情况:
[align=center] [/align] | [align=center] [/align] | [align=center] [/align] | DIR |
[align=center]DBR[/align] | [align=center]FAT1[/align] | [align=center]FAT2[/align] | [align=center]DATA[/align] |
[align=left]每FAT扇区数为:1924-990=934
FAT1开始的位置为:990-934=56(也是DBR中保留扇区的扇区数)
因此原来的U盘数据分布情况:[/align]
[align=center]56[/align] | [align=center]934[/align] | [align=center]934[/align] | DIR |
[align=center]DBR[/align] | [align=center]FAT1[/align] | [align=center]FAT2[/align] | [align=center]DATA[/align] |
[align=left]三、手工修复
1、FAT2→FAT1
因为第1024扇区的数据(从第4352簇―――4479簇)由于有原来的FAT2的数据而覆盖了,现在先要修复一下,但不知道原来是多少,现在只能用一个连续的没有碎片的,没有结束标志的数据联结上,能不能正确恢复,要看运气了,等恢复好后根据恢复情况再进一步微调。找一下从32开始的这个第4352簇―4479簇的数据,发现全部是连续的,符合条件:[/align]
把它复制到第1024扇区去:
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
这样第1024扇区的数据修复完毕,现在把从第990扇区到第1923扇区的FAT2内容复制到第56扇区:
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left]2、修复DBR参数(用模板修复简单些!!)[/align]
[align=left] [/align]
[align=left] [/align]
[align=center]修复前[/align]
[align=center]修复后
(只修改保留扇区数和每FAT扇区数据,因为其它的数据是正确的)[/align]
[align=center] [/align]
[align=center] [/align]
[align=center] [/align]
[align=center] [/align]
[align=center] [/align]
[align=left]现在把U安全删除后再插上,打开U盘,原来的内容都在,而且都能正常打开,朋友非常满意(因为涉及到隐私问题,所以我没有把恢复出来的照片扫图)。
[/align]
[align=center] [/align]
[align=right]2008-1-20 华山剑客写于湖北随州[/align]本文出自 “华山剑客数据恢复” 博客,请务必保留此出处http://tclrz100e.blog.51cto.com/1199440/269878
相关文章推荐
- u盘文件乱码怎么恢复,小牛数据恢复
- U盘文件丢失选择什么数据恢复软件好
- Windows10 命令行中文显示乱码,无法输入中文,查看中文文件夹和文件名称显示为乱码
- 上传文件细节处理问题(包括中文乱码、限制文件大小、显示上传速度、删除临时文件,随机生成文件夹等)
- U盘误删除文件?迅龙数据恢复软件轻松找回数据
- 解决PLSQL Developer导出CSV文件数据显示乱码和科学计数法问题
- debian安装后 中文名称的文件及文件夹显示为方块 乱码等
- 怎样恢复丢失U盘里的文件数据
- U盘数据突然不显示怎么恢复
- USBoot /WinHex恢复故障U盘的数据文件
- CodeSmith exclude global 文件和文件夹问题 与 输入中文显示乱码问题
- 每扇区2048字节的U盘乱码的数据恢复
- 下载文件名字乱码问题,json_encode解决Ajax 返回字符串数据不显示问题
- Linux下使用extundelete实现文件/文件夹数据恢复
- 电脑分区或U盘根目录损坏无法读取-艾奇文件数据恢复软件
- [数据恢复答疑]为什么我的EasyRecovery Professional数据恢复软件恢复OFFICE文件打开是乱码呢!
- U盘文件乱码还能恢复吗
- 【转载】u盘删除的文件如何恢复 U盘删除格式化数据恢复
- csv数据文件 导入数据库乱码(不显示)
- 在从paradox的数据库文件db中的数据导出或显示出来的时候,有的中文字符变为乱码?