现在的位置: 首页 > 综合 > 正文

手工修复受损的U盘

2013年02月20日 ⁄ 综合 ⁄ 共 1095字 ⁄ 字号 评论关闭

前不久,由于静电或者病毒,我的U盘突然无法读出数据了,打开时系统提示需要格式化。(如果你想恢复数据,请千万别格式化,也不要做任何写操作。切记!!!如果数据很重要,建议直接妥善保存存储介质,并送交数据恢复公司。) 

我先用数据恢复软件进行恢复,如:易我文件恢复向导,Easyrecover,getdate back,undelete_plus等,均失败。(根据经验,易我文件恢复向导,效果不错,但这次也失去了作用)。

由于U盘被破坏的时间很短,所以遭到破坏的文件应该不多。这是我的精神支柱。

仔细观察没有发现MBR,FAT1,FAT2,目录,等数据

看来修复的难度很大。加之对于文件系统不甚了解,想恢复数据难度就更大了。于是一边学习FAT文件系统(我的另一篇文章中有,供大家学习。或登录WWW.SJHF.NET查找)

多次用WINHEX查看U盘后,我在0x3C3C4000处发现了MBR,隔了一个扇区发现了,FAT1,FAT2(不完整,但没关系,他是FAT1的备份吗)在MBR中知道我的我的分区为FAT16隐藏扇区两个,每个FAT为0xff大,加上目录32个扇区,对了每簇为32扇区。一共是0X44000字节

我把从0X0到0X44000的数据先复制出来,备份。然后吧MBR,FAT1,FAT2(经过修复的)复制回去。

这次U盘可以打开了,但文件夹的名字全是乱码,文件的大小也都不对。

考虑是目录错了。

看来恢复文件艰难重重。

我已经打算放弃了。

用WINHEX查找一些还能看到的文本文件,C语言文件

把他们先复制出来吧。

我突发奇想,既然FAT完好,我只要找到每个文件的开始顺着FAT就可以找到完整的文件了,虽然没有文件名。

在查找文件时,我发现了几个子目录,这让我兴奋,因为这里有文件名,文件大小,更重要的有文件开始的簇号。

因为文件开始保存的扇区应为0X44000 + (簇号-2) * 每簇的扇区数(我这里是32)

令我吃惊的是根据这个公式我没有找到相应文本文件。而在他的附近找到了

是不是我的0X44000不对呀!!!!

在后续的查找中在0X3D1CC000处又发现了FAT,后面还有一个目录,根据观察(那个目录我熟悉)应该是根目录,看来里数据恢复的日子不远了,我把这个目录复制了回去就是0X40000处

在打开U盘,文件根目录的文件名正确了

但是下一级目录还是错误的,并且文件不能打开。

郁闷,看来应该是数据区的起始地址错了。

看来我只能试着修改隐藏扇区数来做调整了。

祝我幸运吧!

文件结构的学习建议去WWW.SJHF.NET

看来我是不幸的

簇号是混乱的,我晕

先做个备份,U盘是要用的,数据以后有心情了恢复吧。手工填写FAT是疯狂的。

 

 

抱歉!评论已关闭.