用WinHex手工恢复硬盘分区表

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

用WinHex手工恢复硬盘分区表

最近,PC机不能正常引导,将硬盘挂载到其它PC机上,显示硬盘未分区,结果如下图所示:

原硬盘分为4个分区,但现在显示未分区,推测是硬盘的分区表丢失,计划用WinHex工具手工恢复硬盘分区表,通过用WinHex查看分区表,果真丢失了分区表,于是利用该工具进行了恢复,成功修复硬盘。

恢复期间,参考了网上的众多资料,这些资料虽然提供了很多帮助,但感觉理论性太强,没有充分利用工具本身的优势,因此作一总结,以为新手提供帮助。为了更好的理解恢复方案,在文中增加了小知识点,如果对理论不感兴趣,可略过这些小知识点,直接参考恢复步骤即可。在此也一并感谢在网上分享资料的各位大侠。

一、查看MBR(Master Boot Record)

利用WINHEX打开硬盘的MBR,如下图所示:

从图中可见,

1、第1扇区的55AA前的64个字节全为0,表明分区表信息丢失。

2、在最上边的栏中的可以看到分区信息,包括分区名称、类型、大小、该分区的首扇区等信息,这些将帮助我们迅速地恢复硬盘分区。

小知识1:MBR(Master Boot Recorder)、DPT(Disk Partition Table)

MBR位于磁盘的第一个扇区,CHS地址是0柱面,0磁头,1扇区,共占用63个扇区,实际上只使用1扇区;其布局如下:

DPT中定义的分区包括主分区和扩展分区,主分区+扩展分区总共不能超过4个。所谓主分区是指DPT中包含能够被系统的磁盘分区,一个硬盘主分区至少有1个,最多4个,它是可以设置为活动的,即可以引导操作系统。一个硬盘只能有一个活动分区。扩展分区并不能被系统直接使用,它的作用是突破DPT中只能定义四个分区限制的,可以没有,最多1个。对于windows系统,一般分为一个主分区,一个扩展分区。(本文介绍的方法也是针对这种情况,对硬盘分区表进行恢复)。

其做法:定义完主分区之后,将多余的容量定义为扩展分区,指定该分区的起始位置,根据起始位置指向硬盘的某一扇区,称作扩展MBR(EBR),在其中定义下一个分区表。如果只有一个分区,就定义该分区,然后结束;如果不只一个分区,就定义一个基本分区和一个扩展分区,扩展分区再指向下一个分区表,在下一个分区表中定义分区,直至结束。在扩展分区中定义的分区就是逻辑分区。

扩展分区的容量=各个逻辑分区的容量之和+隐藏扇区(即EBR所占用扇区)

另外EBR的结构跟MBR的结构是一样的,也是占用63个扇区。

对于一个分为4个区的硬盘数据结构如下:

图中的C盘为主分区,D盘、E盘、F盘都为逻辑分区。

二、分区表恢复方案

由于目前普遍采用LBA寻址方式,每个分区表项的16字节信息中最重要的是1、5、9、10、11、12、13、14、15、16四组信息。至于2、3、4字节,对于C盘,一般为010100,其它盘为00、、C1、FF(即0磁头、1扇区、1111111111柱面(由于柱面数一般会大于1024,因此表示柱面数的10位全为1));6、7、8字节一般填写FE、FF、FF即可。

第1字节代表引导标志,引导盘为80,其它则为00;

第5字节代表分区类型,可自图中所示分区类型获得,本硬盘中,四个分区类型分别为:FAT32、FTA32、NTFS、FAT32。

第9、10、11、12字节代表本分区之前已用了的扇区数,需要通过计算获得

第13、14、15、16字节代表本分区的总扇区数,需要通过计算获得。

通过查找EBR中的分区信息,及WinHex系统提供的信息,计算MBR中的分区信息,完成分区表的恢复。

三、手工恢复硬盘分区表过程

1、收集各EBR中的分区信息

由于EBR的结构与MBR结构一样,即以55AA作为结束标志,因此可以搜索55AA。为加快搜索速度,设置offset mod 512=510,即对512的整数倍的510、511字节进行搜索。

如果是直接从MBR处开始搜索,要注意判断是否是EBR,该扇区前面、后面的几个扇区的字节一般全为00.

小技巧:由于WinHex工具本身提供的信息较全,可直接点击Partition2后,进行反向搜索。很快搜索到第一个EBR。如下图所示:

第1扩展分区分区示意图

在第一个扩展分区,其分区信息表如下:

00 01C1FF 0B FEFFFF 3F000000 AD2CE204

00 00C1FF 05 FEFFFF EC2CE204 EC2CE204

再点击Partition3进行反向搜索,得到第2个EBR,如下图所示:

第2扩展分区分区示意图

第二个扩展分区的分区信息如下:

00 010100 0B FEFFFF 3F000000 AD2CE204

00 00C1FF 05 FEFFFF D859C409 731A6C06

再点击,Partition4,进行反向搜索,得到第3个EBR,如下图所示:

第3扩展分区分区示意图

第三个扩展分区的分区信息如下:

00 01C1FF 0B FEFFFF 3F000000 341A6C06

2、计算C盘及扩展分区的信息

对于C盘,其之前已用的扇区数,就是MBR所占用的扇区,共63个扇区,转换成16进制为3F。接下来重点计算本分区的总扇区数。实际上,C盘后紧跟第1个EBR,其是自63扇区开始,结束于第1个EBR之前的第1个扇区。通过第1扩展分区分区示意图的左下角可看到EBR位于4096570扇区,则C盘结束的扇区是40965749.因此C盘所占用扇区为40965749-63+1=40965687。转换成16进制为:2711637,则13、14、15、16字节分别为:37、16、71、02.

对于第1扩展分区,其分区之前所用的扇区数,即是C盘总的扇区数及MBR之和,即40965687+63=40965750,转换成16进制,则为:2711676,则9、10、11、12字节分别为:76、16、71、02.现在需要计算第一扩展分区的总扇区。

第一扩展分区的总扇区可采用两种方法计算。一种是各个逻辑分区的容量之和+隐藏扇区(即EBR所占用扇区);另外一种是(硬盘总扇区-未分区的扇区)-MBR所点扇区-C 盘所占扇区。

下面分别采用这两种方法进行计算:

方法一:各个逻辑分区的容量之和+隐藏扇区(即EBR所占用扇区)

自各EBR得到信息,第一个逻辑分区为04E22CAD扇区,第二个逻辑分区为04E22CAD ,第三个逻辑分区为066C1A34,另外,每个EBR占用3F扇区,共3个,则其和为:

1030744B,则13、14、15、16字节分别为:4B、74、30、10.

相关文档
最新文档