| 手工恢复硬盘数据 |
 |
作者: 来源: 日期:2006-5-11 10:59:26 点击次数: |
|
sjhfnet.txt的文件(选择其他目录没有或很少有此文件名的文件),可在整个分区内查找'sjhfnet txt',再根据 相关特征确定。这时候注意一下,我们需要目录中提供的'.'目录来推测原分区的一些特性,主要是dbr中的bpb参数,如保留扇区的数目。(一般是不不会错的,但如果有那怕一个扇区的出入,整个分区中目录的映射将不能套用,还是看看吧!),是不是要问,'.'目录是什么?学过dos的人都知道,目录'.'表当前所在目录,'..'表上级目录,在32个子节的目录项中,包含有和其他目录项相同的特征,我们关心目录的位置(在原分区格式的第几个簇中),他应该是等于他所在的簇号的!也就是看一下偏移量为15h 14h 1bh 1ah的数值是否等于现在簇号。在winhex中格式化后的磁盘可清楚的列出当前簇的簇号,可比较一下(可能需要16进制与10进制的转换)。 相同不说了,如果不相同,也应该相差不多。计算一下相差的簇的数目,然后在本分区dbr扇区的0eh~0fh作相应增减,是保留扇区的数目回到原来的数目。重起一下计算机,是新的dbr生效,清空现fat表(根目录簇可以不清空,因后边讲到会覆盖的)。文件目录项的映射与实际地址便正确的结合了。(不明白吗?想想原理,努力消化一下) 接着将找到的簇复制----〉定位到现在的根目录----〉写入。 打开“资源管理器“,浏览,出来了吗? 慢!还没完,现在的目录结构是出来了,但还不能访问,因为fat表所记录的簇还是空闲的。怎么办?手动写,算一下,可能写完得30年吧!呵呵!哪。。。。,其实,如果要恢复的文件大小都在1簇范围内,可在win98下运行磁盘扫描程序,在出现修复的提示时选相应的选象修复即可(别选“删除涉及到的文件”选项,另外,win2000下不行,扫描程序会直接删除文件的)。这样,大小在1簇范围的文件别完全恢复了(包括文件)。那如何在这种情况下恢复大于1个簇的文件呢?一是你可以写一个小的程序来实现涉及到的簇的连续。如果你不会,那么也不难,得一个一个文件的来。打开winhex,使用它的目录模板跳转到文件的存储区,从当前簇复制大小为文件大小的一块连续数据,写入新文件中(记得写在其他分区中),即可!当然,如果簇数较少,可直接在fat1中改动。 另外,这样恢复的文件也不一定正确。要看当初文件的存储是否连续了?如果恢复后的文件不能用,那。。。。听天由命吧!!!(要么你在磁盘中在查找,分析,自己把它连接起来。不过,工作量吗?。。。) 这样恢复的是以前一个子目录的数据。如果有多个目录的数据要恢复,可用同样的方法替换根目录(第一个数据簇),也可以采用手动建立根目录的方法,不过,别在资源管理器中进行,手动在winhex中做吧!还有,要是恢复的目录中有多个簇,再用同样的方法,查找,作为根目录。 这是分区格式为fat32的情况,如fat16则不需考虑保留扇区的数目情况,fat16无保留扇区。 这是有目录项的情况。
再来说一下在无目录项参照的情况: 以下默认为欲恢复文件是存储在FAT32文件格式当中的文件。 假如你的磁盘已经被xxx破坏的一塌糊涂。或者已经经过了N位高手二次处理"加工"过了,什么工具软件都用过了!结果仍然没有看到你需要的数据的影子。或者你要恢复的数据本来就很少(若干源代码,或是若干论文,若干小的数据库,或是确认在数据丢失前正好做了磁盘碎片整理),不值得采用我上面采用的方法。你可以采用在磁盘内通过查找的方法,总结来找回数据(不要笑,有技巧的,况且,也许这是唯一的方法!) 可以通过磁盘文件的存储特征和文件固有的类型特征来考虑。看过《反黑行动之数据恢复》(风般的男人著)应该可以知道,文件在磁盘内至少是以扇区为单位的,也就是说,每个文件在磁盘内实际存储的开始,一定是某扇区的开始。这是其一,其二是每种类型的文件都有其特定的文件标志,可根据文件的特定标志(通常还是在文件的开头)与其在磁盘的位置来圈定。 上一篇:wd关头-关段操作 下一篇:掌握硬盘的DOS管理结构 |
|
|
 |
| 北京总部: 4006-505-808 |
| 天 津 部: 4006-505-808 |
| 上 海 部: 4006-505-808 |
| 深 圳 部: 4006-505-808 |
| 广 州 部: 4006-505-808 |
| 重 庆 部: 4006-505-808 |
| 南 京 部: 4006-505-808 |
| 其它地区: 4006-505-808 | |
|
 |
|