通俗基础教程
电脑操作教程
电脑怎样拨号上网
如何做个人网页
怎样做局域网
Word教程(文字处理)
图形图象处理入门
经典提高教程
怎样使用代理服务器
如何做无盘工作站
Photoshop教程
Dreamweaver教程
Flash教程
Firework教程
Frontpage2000教程
Authware教程
Office2000教程
如何制作动画图片
OICQ&ICQ使用方法

高手学习指南

硬件升级技巧
CGI教程
ASP教程

PHP教程

注册表使用技巧
路由器的设置
网站建设指南
SQL
合作网站
栏目制作月光软件
最近更新:
类别:电脑操作

KV3000修复硬盘数据之三十二(40G硬盘修复)
修复FAT32位C盘分区表 本文作者中国林业大学实习生:曲龙涛

  因4月26日CIH发作,使许多用户的硬盘上的数据丢失,在这里提供一种用KV3000硬盘救护箱功能手动修复硬盘分区表和BOOT表的方法。本文以修复思路为主,虽然以被CIH破坏的硬盘为例,但修复硬盘的思路大同小异,因此其他硬盘的修复仍可采用本文的思路。

  本文例子:40G硬盘,分三个区,文件格式FAT32。

  现象:4月26日被CIH破坏。用户使用其它软件修复过,只能找到C盘,但C盘数据均为乱码,同时,其他分区不存在。这说明硬盘分区表不正确。

  修复方法如下:

  一、将出问题的硬盘挂在一台正常的计算机上。开机进入CMOS设置,检测硬盘,若能检测到,可以进行下步操作;若检测不到,说明硬盘的电路板有问题,这时就需要换一块与该硬盘同型号的电路板再进行下步操作,否则,该硬盘便无法恢复。

  二、用干净的引导盘(软盘)启动计算机,此时会在DOS下,用DOS命令检查硬盘状态(关于DOS命令可参考相关书籍)。如果的确出现本文例子中出现的"现象",则可采用手动方法恢复。

  手动恢复工具:KV3000F6功能-硬盘急救箱。

  三、进入KV3000的F6急救箱后可看到第0扇区的情况。此扇区就是平常所说的"硬盘分区表"。此表中从"80"到"55AA"之间的参数记录了硬盘的基本情况;再按下F2可查看BOOT区。

  本文例子如下:(表一为硬盘分区表;表二为BOOT区I/0表)

  表一:

                    8001 0100BFE 7F7E3F00
  000080E2 5D000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000
  00000000 000055AA

  表二:(标准表的第13字节开始)

       02102000 02000000 00F80000 3F00FF00 3F000000
  62A9B400 142D0000 00000000 02000000 01000600

  (注:数"字节"以表中的两个数为一个"字节",表中开始的字节为第"0字节",以后以此类推,如表一中的"80"为第"0字节","5D"为第"14字节"。)

  由表一可以看出,"80"和"55AA"都存在,从第12到第15字节表示了C盘的扇区数(也称作C盘大小)。把这个数换算成十进制以备后用;

  80E25D00 高低换位→ 005DE280 换算为十进制(用F7)→ 6152832

  四:用F6(搜索硬盘分区表),再按下F2=search logical Hard,Disk partition (搜索逻辑硬盘分区表),可检测到该硬盘的逻辑分区的情况:

  Hard Disk Total Sector Total Bytes Partition Table Sector
  D:19.008G 37126152   19008589824  6152895
  E:19.008G 37126152   19008589824  43279110
          (表三)

  可以看到,此表中与D相对应的Partition Table Sector:6152895。用这个数减掉63:6152895-63=6152832,与换算出的C盘扇区数相同(第三步中算出的)。这说明0扇区中表示C盘扇区数正确,而且D盘的分区表位置也正确。将6152895换算成十六进制数以备后用:

  6152895 换算为十六进制(用F7)→ 005DE2BF 高低换位→ BFE25D00

五、核实逻辑分区表正确性:

  1、查找逻辑分区:按表三中的Partition Table Sector 找到6152895(D盘分区表所在扇区)和43279110(E盘分区表所在扇区),并记下两扇区的数据,如下:

  D:

    0001 417F0BFE BF853F00 00000880 36020000 81860FFE
  FF120663 94024780 36020000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 000055AA
        (表四)

  E:

    0001 81860BFE FF123F00 00000880 36020000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 000055AA
        (表五)

  可以看到,D盘分区表中表示的E盘起始位置(第18-19字节)和结束位置(第21-23字节):"8186";"FEFF12"与E盘分区表的起始位置(第2-3字节)"8186"和结束位置"FEFF12"(第6-8字节)相同。

  2、计算:此步中需要计算核对部分数据:

  表四:

  ①第12-15字节:表示了D盘扇区数:"08803602" 高低换位→ "02368008" 换算为十进制(用F7)→ 37126152,此数与表三中D:Total Sector37126152相同,说明12-15字节正确。

  ②第24-27字节:表示E盘分区表所在扇区:"06639402" 高低换位→ "02946306" 换算为十进制(用F7)→ 43279110,此数与表三中E:Partition Table Sector:4327110相同,说明24-27字节正确。

  ③第28-31字节(表示D盘之后所有逻辑分区的总扇区数。本例中D盘之后仅有E盘,因此这里表示的是E盘的扇区总数):

  "47803602" 高低换位→ "02368047" 换算为十进制(用F7)37126215。再看表三中E:Table Sector 37126152;该数加63为37126215。可以看到表四中换算出的数与表三中计算出来的数相同。说明表四的28-31字节也正确。

  (注:63是DOS在分区时,在每个分区之前保留了63个扇区,这个数较固定)

  表五:第12-15字节,表示E扇区数:"08803602" 高低换位→ "02368008" 换算为十进制(用F7)→ 37126152。此数与表三中E:Total Sector:37126152相同。说明表五中的第12-15字节正确。

  至此,由计算可得出如下结论:查看到的D、E分区表是正确的。所以之后,可以根据D、E的分区表信息,手动写到C盘分区表的相应位置,便可恢复逻辑分区的数据。

  六、手动修改C盘的硬盘分区表:

  工具:KV3000中硬盘急救箱(F6)里的F5=Edit(编辑功能)。

  现在,再回到表一,从第16字节开始到第31字节均为零。这就是为什么只有C盘而找不到D、E的原因。现在只要将正确的参数写到相应的位置即可恢复D、E。

  从表四记下必要参数;

  ①第2-3字节:D盘起始位置,写到表一中第18-19字节处;

  ②第5-7字节:D盘结束位置,写到表一中第21-23字节处;

  ③将第四步所得的D盘分区表位置:BFE25D00写入表一第24-27字节;

  ④D+E总扇区数=37126152+371261852+63×2=74252430 换算为十六进制(用F7)→ 046D008E 高低换位→ 8E006D04

  ⑤在表一的第20字节处写入"0F",表示逻辑分区的分区格式。"0F"表示FAT32。

  这样,填写后表一第16至第31字节处,结果如下:

  0000 417F0FFE BF85BFE2 5D8E006D 04000000

  这时,重新启动计算机后,D、E的数据全部恢复。

  七、恢复C盘数据:

  1、看表二中第20-23字节"62A9B400"表示了C盘的扇区数,比较与表一中第12-15字节"80E25D00"不符,因表一中的数已证明是正确的,因此,表二中的数据是错误的,可按表一中的数据改过来:即把"62A9B400"改为"80E25D00"。

  2、查找目录区:用F4=Search功能,在ASCII Value:栏中输入"command",回车后,光标会移到Starting Sector,输入"1"回车,开始查找。找到后,出现"Found"字样。按下回车查看该页是否为目录区。若是则记下该页扇区数,若不是则继续查找。目录区最明显的特征是可看到原来C盘中的所有目录名,汉字为乱码。本文例子的目录区在第19625扇区。需做如下计算:(扇区数-63-32)/2=(19625-63-32)/2=9765 换算为十六进制(用F7)→ 2625 高低换位→ 2526。将所得到的"2526"与表二中第24-25字节"142D"比较,发现表二中该数错误。此时将"142D"改为"2526"。(FAT32如上计算,FAT16有所不同。)

  3、重写FAT表:(用正常的FAT2表重写被破坏的FAT1表),按下F4=Search,用TAB键切换到Hex Codes,键入0000F8FFFF0F(FAT表前几个字节)回车,输入"1"回车。找到后记下扇区数。查看该页,在该页的左上方开始处可看到"F8FFFF0F"几个字节,否则,要继续查找。本文例子:FAT2位于第9860处。退出该"查找"界面,用F3功能翻到第9860扇区。再用Ctrl+F10(写扇区功能)。在To Write Sector 0-[ ]输入"95"回车;跳至Write Sector Count 输入"1500"回车,再按两次"N",一次"Y"。

  在完成以上步骤后,重新用软盘启动计算机,此时C、D、E盘被认可,数据安全恢复。再用SYS C:传上系统,硬盘完全恢复。

  下面,我们总结一下修复步骤:

检测硬盘→查看硬盘状态→分析可能原因→检查各分区分区表及I/O表参数是否正确→检测逻辑分区→修改出错的部分→修改I/0表中错的目录区指针→用正确的FAT2表覆盖FAT1表→重启,数据恢复→传系统→杀毒→备份数据(注:第一二步中若检测不到硬盘或无法查看硬盘信息,则说明硬件有问题或硬盘已物理损坏)

  几点说明:

  1、硬盘分区表、I/0表、目录区、FAT表均记录了硬盘的许多信息,如果该表中的参数出现错误,可能造成各式各样的情况。因此若对硬盘逻辑和物理结构或表中的数据不熟悉的情况下,千万不要随意改动。

  2、在操作过程中,若没有确实的把握,请将被改动的地方记录下来,以备随时恢复。

  3、硬盘出现的问题因原因不同,万不可一概而论,本文中所提到的方法有所限制,切不可随意模仿。

  4、本文中提到的数据和参数有很大的不确定性(每块硬盘不尽相同),所以在得到一个数后,一定要反复确认后方可更改。

  5、本文虽然以40G硬盘为例,其他大硬盘也可按文中的思路进行恢复。

   
相关教程
KV3000修复硬盘数据
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
©月光工作室 专业栏目
 



月光软件源码下载编程文档电脑教程网站优化网址导航网络文学游戏天地生活休闲写作范文安妮宝贝站内搜索
电脑技术编程开发网络专区谈天说地情感世界游戏元素分类游戏热门游戏体育运动手机专区业余爱好影视沙龙
音乐天地数码广场教育园地科学大观古今纵横谈股论金人文艺术医学保健动漫图酷二手专区地方风情各行各业

月光软件站·版权所有