WINHEX手工恢复分区表教程.doc
4页Winhex 是使用最多的一款工具软件,是在 Windows 下运行的十六进制编辑软件,此软件功能非常强大,有完善的分区管理功能和文件管理功能,能自动分析分区链和文件簇链,能对硬盘进行不同方式不同程度的备份,甚至克隆整个硬盘;它能够编辑任何一种文件类型的二进制内容(用十六进制显示)其磁盘编辑器可以编辑物理磁盘或逻辑磁盘的任意扇区,是手工恢复数据的首选工具软件首先要安装 Winhex,安装完了就可以启动 winhex 了,启动画面如下:首先出现的是启动中心对话框这里我们要对磁盘进行操作,就选择“打开磁盘” ,出现“编辑磁盘”对话框:在这个对话框里,我们可以选择对单个分区打开,也可以对整个硬盘打开,HD0 是我现在正用的西部数据 40G 系统盘,HD1 是我们要分析的硬盘,迈拓 2G这里我们就选择打开 HD1 整个硬盘,再点确定.然后我们就看到了Winhex 的整个工作界面最上面的是菜单栏和工具栏,下面最大的窗口是工作区,现在看到的是硬盘的第一个扇区的内容,以十六进制进行显示,并在右边显示相应的 ASCII 码,右边是详细资源面板,分为五个部分:状态、容量、当前位置、窗口情况和剪贴板情况这些情况对把握整个硬盘的情况非常有帮助。
另外,在其上单击鼠标右键,可以将详细资源面板与窗口对换位置,或关闭资源面板如果关闭了资源面板可以通过“察看”菜单——“显示”命令——“详细资源面板”来打开) 最下面一栏是非常有用的辅助信息,如当前扇区/总扇区数目……等向下拉拉滚动条,可以看到一个灰色的横杠,每到一个横杠为一个扇区,一个扇区共 512 字节,每两个数字为一个字节,比如00下面我们来分析一下 MBR,因为前面我们说过,前 446 个字节为引导代码,对我们来说没有意义,这里我们只分析分区表中的 64 个字节分区表 64 个字节,一共可以描述 4 个分区表项,每一个分区表项可以描述一个主分区或一个扩展分区(比如上面的分区表,第一个分区表项描述主分区 C 盘,第二个分区表项描述扩展分区,第三第四个分区表项填零未用)每一个分区表项各占 16 个字节,各字节含义如下:(H 表示 16 进制)字节位置 内容及含义 第 1 字节 引导标志若值为 80H 表示活动分区;若值为 00H 表示非活动分区 第 2、3、4 字节 本分区的起始磁头号、扇区号、柱面号 第 5 字节 分区类型符:00H ——表示该分区未用 06H——FAT16 基本分区0BH——FAT32 基本分区05H——扩展分区07H——NTFS 分区0FH——(LBA 模式)扩展分区83H—— Linux 分区 第 6、7、8 字节 本分区的结束磁头号、扇区号、柱面号 第 9、10、11、12 字节 本分区之前已用了的扇区数 第 13、14、15、16 字节 本分区的总扇区数此硬盘的第一分区表(即 MBR)分析如下:第一个分区表项(C 盘)第 1 字节 80:表示此分区为活动分区;第 5 字节 0B:表示分区类型为 Fat32;第 9、10、11、12 字节 系统隐含扇区 3F 00 00 00:所谓系统隐含扇区就是本分区(C 盘)之前已用了的扇区数,这是一个十六进制数,但要注意:真正的隐含扇区数应该反过来填写(比如:隐含扇区数为3E 4D 5A 6F,则反过来就是 6F 5A 4D 3E ,这才是实际的隐含扇区数) 。
那么,3F 00 00 00 反过来写就是00 00 003F,也就是 3F,将他转成十进制数我们才能知道实际的隐含扇区数是多大这可以使用计算器来算,单击工具栏上的“计算器”按钮,如下图:这样就启动了计算器计算器有两种型号,我们要进行进制转换,就要选择“科学型”比如我们要将十六进制 3F 转换为十进制,就要先选中“十六进制” ,然后输入3F 再选中“十进制” ,十六进制 3F 转为十进制等于 63想一想我们前面所讲的,MBR 占用 63 个扇区,也就是 C 盘之前已用了的扇区数为 63,第64 个扇区就是 C 盘的第一个扇区,但要注意的是,整个硬盘的 LBA 地址是从零开始的,0~62 的扇区为 MBR第13、14、15、16 字节本分区总扇区数(当然,这也就是 C 盘的大小):C1 E6 15 00,同样,实际的十六进制数也要反过来才对,也就是 00 15 E6 C1,将它转换成十六进制数是 1435329给你出个题,你知道 D 盘的 EBR 在哪个扇区吗?我们一起来算一下,还记得前面数据结构那个表吗?C 盘后面不就是 D 盘的 EBR 吗?D 盘 EBR 的第一个扇区=MBR+C 盘的大小,也就是 63+1435329=1435392。
我们来看看对不对,单击工具栏上的“转到扇区”按钮,出现一个“转到扇区”对话框然后输入 1435392,再点“确定” ,就到了 1435392 扇区了(你可以使用它再转回到 0 扇区)这个就是 D 盘的 EBR,也就是 D 盘的分区表了,怎么知道的呢?因为 MBR 和 EBR 的结构是完全一样的,都是占用了 63 个扇区,但只用了第一个扇区,其余 62 个扇区填零不用第一个扇区前 446 个字节都为引导代码,后 64个字节为分区表,最后 2 个字节为 55AA 结束标志因为 EBR 不是活动分区,不需要引导代码,所以前 446 个字节为零还有另一种方法直接找到 D 盘的 EBR,单击“访问”下拉按钮——“分区二”——“分区表” ,直接就到1435392 扇区.这样,分区表中的第一个分区表项共十六个字节分析完毕,下面我们再来看看第二个分区表项(扩展分区) 第 1 字节 00:表示非活动分区第 5 字节 05:表示扩展分区第 9、10、11、12 字节 00 E7 15 00:本分区之前的扇区数(扩展分区前面也就是 MBR 和C 盘,好像我们前面算过这个数?)同样,先将它反过来,就是 00 15 E7 00 ,再转为十进制是 1435392,看来我们前面真的算过这个数。
第 13、14、15、16 字节 40 09 29 00:本分区的总扇区数也就是扩展分区的总扇区数转为十进制应该是 2689344想一想,用这个数加上前面的 1435392,不正好是整个硬盘的总扇区数 4124736 吗?这样,如果分区表被破坏,我们只要把这些数值都计算出来并填上,分区表不就恢复了?那么,这里我们为什么不分析第 2、3、4 字节(本分区的起始磁头号、扇区号、柱面号)和第 6、7、8 字节(本分区的结束磁头号、扇区号、柱面号)呢?这是因为 C/H/S(柱面/ 磁头/扇区)是老式硬盘的寻址方式,这种寻址方式来管理硬盘效率很低;而现在几乎所有的硬盘都支持 LBA(全称是 Logic Block Address,即扇区的逻辑块地址)寻址方式,这种管理方式简单高效在 LBA 方式下,系统把所有的物理扇区都统一编号,按照从零到某个最大值排列,这样只用一个序数就确定了一个唯一的物理扇区小知识:具体一个硬盘有多少个 LBA(扇区) 不需要我们去记忆,因为用各种工具软件(如MHDD WINHEX 等)都可以检测到我们只要知道个大概就行了:如 10G 的硬盘大概有 2000 万个扇区;20G的硬盘大概有 4000 万个扇区;40G 的硬盘大概有 8000 万个扇区……那么,2G 的硬盘大概有 400 万个扇区。





