案例基本情况描述

一块Seagate 30GB的硬盘,从2000年开始使用,用了大概7年多时间,某一天突然计算机无法识别这块硬盘。经过检测,是因为硬盘使用的年数太久,产生了很多坏扇区,其中前三个扇区坏得比较严重,也就是常说的零磁道损坏,所以计算机无法识别硬盘。为了恢复这块硬盘中的数据,采用做镜像的方法(有关对硬盘坏扇区的镜像方法请阅读第12章),把故障盘的全部扇区镜像到另一块盘中,因为手边闲置能用的最小硬盘就是一块160GB的,所以只好用这块160GB的硬盘来做那块30GB的故障盘镜像。

镜像做完后,把镜像盘作为从盘连接到计算机上,结果却看不到分区,通过“磁盘管理”看到该盘的情形如图4-37中的“磁盘1”所示。

MBR及EBR被破坏的分区恢复实例-数据恢复迷

图4-37 “磁盘1”看不到分区

分区丢失的原因分析

从图4-37磁盘管理中显现的现象来看,“磁盘1”是一个“没有初始化”的硬盘,从这一点可以确定该硬盘的MBR结构一定是有问题的。用WinHex打开这块硬盘,发现MBR扇区果然是坏的,如图4-38所示。

MBR及EBR被破坏的分区恢复实例-数据恢复迷

图4-38 “磁盘1”的MBR扇区

MBR扇区中的这些数据,并不是原故障盘中的真实数据。因为原故障盘中相应的这些扇区损坏很严重,已经无法读出数据,所以镜像工具就在目标盘中自行填充了一些数据,这就是我们现在看到的MBR扇区。进一步分析发现,所有存放分区表的扇区都是坏的,可能是分区表所在扇区访问频率比较高,所以这些扇区都坏掉了。

恢复思路及方法

从前面的分析发现,所有存放分区表的扇区都是坏的,也就是说分区表已经全部损坏。为了看到数据,必须把分区表都修复好。

修复的过程中会利用文件系统中DBR扇区的结构和参数,有关文件系统的知识将在后面讲解。如果读者对文件系统不了解,可以先学习后面的章节,然后再返回来阅读该案例。

修复MBR引导程序及结束标志

因为MBR扇区的结构由引导程序、Windows磁盘签名、分区表、结束标志四部分组成,所以恢复MBR也就需要分别恢复这四个结构。此处只讲解引导程序、磁盘签名和结束标志的恢复,分区表的恢复放到(2)、(3)、(4)、(5)中讲解。

引导程序、磁盘签名和结束标志的恢复方法有多种,下面逐一讲解:

①复制法。

因为MBR的引导程序具有公共引导特性,所以可以到另外一块硬盘的MBR扇区中复制这段代码,粘贴到该硬盘即可,具体做法如下:

第1步 复制引导程序和磁盘签名。

用WinHex打开一块MBR结构完好的硬盘,选中引导程序和磁盘签名部分并且复制这段数值,如图4-39所示。

MBR及EBR被破坏的分区恢复实例-数据恢复迷

图4-39 复制引导程序和磁盘签名

第2步 写入故障盘。

再打开故障盘,把刚才复制的引导程序写入到故障盘的MBR扇区,如图4-40所示。

MBR及EBR被破坏的分区恢复实例-数据恢复迷

图4-40 将引导程序写入故障盘的MBR扇区

写入后的结果如图4-41所示。

MBR及EBR被破坏的分区恢复实例-数据恢复迷

图4-41 引导程序写入后

为了避免两块硬盘的磁盘签名相同,可以把磁盘签名的4个字节稍作修改。

第3步 写入结束标志。

将MBR扇区的最后两个字节改为“55 AA”,如图4-42所示。

MBR及EBR被破坏的分区恢复实例-数据恢复迷

图4-42 写入结束标志

第4步 清空分区表部分。

为了稍后重建分区表方便,将分区表部分的字节全部清零,如图4-43所示。

MBR及EBR被破坏的分区恢复实例-数据恢复迷

图4-43 将分区表部分清零

这样,MBR扇区的引导程序、磁盘签名及结束标志就恢复完毕了。

②DOS命令法。

把故障盘作为第一主盘连接到一台计算机上,然后用DOS引导盘启动系统,进入DOS,执行“FDISK/MBR”命令,即可将故障盘的引导程序、磁盘签名及结束标志修复好。

③“初始化”法。

将故障盘连接到一台有系统的计算机上,进入“计算机管理”中的“磁盘管理”,对故障盘做一个“初始化”,即可修复该盘的引导程序、磁盘签名及结束标志,同时分区表部分也被清零,如图4-44所示。

MBR及EBR被破坏的分区恢复实例-数据恢复迷

图4-44 初始化磁盘

初始化后的结果如图4-45所示。

MBR及EBR被破坏的分区恢复实例-数据恢复迷

图4-45 初始化后的结果

修复第一个分区

跳转到硬盘的63号扇区,看看DBR是否完好,用WinHex跳转到63号扇区,其内容如图4-46所示。

MBR及EBR被破坏的分区恢复实例-数据恢复迷

图4-46 “磁盘1”的63号扇区

显然这是一个NTFS分区的DBR,其模板如图4-47所示。

MBR及EBR被破坏的分区恢复实例-数据恢复迷

图4-47 DBR的模板

从BPB参数中可以看出该分区大小为6 136 766扇区,因为是NTFS分区,所以填写分区表时,这个数值要加1,即分区大小为6 136 767个扇区,现在可以填写MBR中的第一个分区表项了。

打开MBR的模板,填写分区表第一项,如图4-48所示。

MBR及EBR被破坏的分区恢复实例-数据恢复迷

图4-48 填写MBR分区表第一项

因为第一个分区装有操作系统,所以要激活,填写“80H”;C/H/S参数已经不起作用,可以随便填写,以后不再重复说明;分区类型为NTFS,应填写“07H”,分区开始位置为63号扇区,分区大小为6 136 767扇区,依次填入后存盘,第一个分区修复完毕。

修复第二个分区

将第一个分区的开始位置63加上其大小6 136 767,结果为6 136 830,这就是第二个分区的开始扇区号。跳转到此扇区,内容如图4-49所示。

MBR及EBR被破坏的分区恢复实例-数据恢复迷

图4-49 6 136 830号扇区的内容

很显然,这是一个DBR扇区,而不是EBR,所以第二个分区为主磁盘分区,而不是扩展分区。这个DBR扇区的模板如图4-50所示。

MBR及EBR被破坏的分区恢复实例-数据恢复迷

图4-50 第二个分区的DBR模板

这个分区也是NTFS分区,开始于6 136 830号扇区,分区大小为8 241 344(填入分区表时应加1)。因为是主磁盘分区,所以其分区表项应该在MBR中。打开MBR模板,填写第二项,如图4-51所示。

MBR及EBR被破坏的分区恢复实例-数据恢复迷

图4-51 填写第二个分区的分区表项

填写完毕后存盘,第二个分区也恢复好了。

修复第三个分区

将第二个分区的开始位置6 136 830加上其大小8 241 345,结果为14 378 175,这就是第三个分区的开始扇区号。跳转到此扇区,其内容如图4-52所示。

MBR及EBR被破坏的分区恢复实例-数据恢复迷

图4-52 14 378 175号扇区的内容

这又是一个没有镜像成功的扇区,那么这个位置是DBR扇区还是EBR扇区呢?因为没有镜像成功所以无法看出来,再往后跳转63个扇区,即跳转到14 378 238号扇区,其内容如图4-53所示。

MBR及EBR被破坏的分区恢复实例-数据恢复迷

图4-53 14 378 238号扇区的内容

毫无疑问这是一个DBR扇区,其模板如图4-54所示。

MBR及EBR被破坏的分区恢复实例-数据恢复迷

图4-54 14 378 238号扇区DBR的模板

从BPB参数可看出,这个分区也是NTFS分区,开始于63号扇区(相对扇区号,可以说明前面的14 378 175应为EBR扇区),分区大小为13 510 601(填入分区表时应加1)。因为这个分区为扩展分区中的逻辑驱动器(这里称它为“逻辑驱动器1”),所以其分区表项应该在EBR中,即14 378 175号扇区(称这个扇区为“EBR1”)。

为了填写这个分区表,先把14 378 175号扇区清零,如图4-55所示。

MBR及EBR被破坏的分区恢复实例-数据恢复迷

图4-55 把14 378 175号扇区清零

清零后在扇区末尾填入结束标志“55 AA”,如图4-56所示。

MBR及EBR被破坏的分区恢复实例-数据恢复迷

图4-56 填入结束标志“55 AA”

然后打开模板,填写分区表第一项,如图4-57所示。填写完毕后存盘即可。

MBR及EBR被破坏的分区恢复实例-数据恢复迷

图4-57 填写第三个分区的分区表项

修复第四个分区

从前三个分区的大小来看,在第三个分区之后应该还有分区,那么第四个分区是主磁盘分区还是逻辑驱动器呢?这需要继续往后分析。

用EBR1所在扇区号14 378 175,加上逻辑驱动器1的开始扇区号63,再加上逻辑驱动器1的大小13 510 602,结果为27 888 840,这就是下一个分区的开始扇区。

跳转到27 888 840号扇区,内容如图4-58所示。

MBR及EBR被破坏的分区恢复实例-数据恢复迷

图4-58 27 888 840号扇区的内容

这也是一个没有镜像成功的扇区,那么这个位置是DBR扇区还是EBR扇区呢?再往后跳转63个扇区,即跳转到27 888 903号扇区,其内容如图4-59所示。

MBR及EBR被破坏的分区恢复实例-数据恢复迷

图4-59 27 888 903号扇区的内容

毫无疑问这是一个DBR扇区,其模板如图4-60所示。

MBR及EBR被破坏的分区恢复实例-数据恢复迷

图4-60 27 888 903号扇区DBR的模板

从BPB参数可看出,这个分区也是NTFS分区,开始于63号扇区(相对扇区号,可以说明前面的27 888 840应为EBR扇区),分区大小为31 872 896(填入分区表时应加1)。因为这个分区为扩展分区中的逻辑驱动器(这里称它为“逻辑驱动器2”),所以其分区表项应该在EBR中,即27 888 840号扇区(称这个扇区为“EBR2”)。

为了填写这个分区表,先把27 888 840号扇区清零,如图4-61所示。

MBR及EBR被破坏的分区恢复实例-数据恢复迷

图4-61 把27 888 840号扇区清零

清零后在扇区末尾填入结束标志“55 AA”,如图4-62所示。

MBR及EBR被破坏的分区恢复实例-数据恢复迷

图4-62 填入结束标志“55 AA”

然后打开模板,填写分区表第一项,如图4-63所示。填写完毕后存盘即可。

MBR及EBR被破坏的分区恢复实例-数据恢复迷

图4-63 填写第四个分区的分区表项

把这四个分区的大小相加,已经接近30GB,说明后面再没有分区了。最后,需要填写主扩展分区表项和子扩展分区表项。主扩展分区表项填写在MBR扇区中,主扩展分区的开始位置是“EBR1”所在的扇区号14 378 175,大小为63加上“逻辑驱动器1”的大小13 510 602,再加上63,再加上“逻辑驱动器2”的大小31 872 897,结果为45 383 625,跳转到MBR扇区并打开模板填入数值,如图4-64所示。

MBR及EBR被破坏的分区恢复实例-数据恢复迷

图4-64 主扩展分区的分区表项

因为是扩展分区,所以分区类型一定要填“0F”或“05”。

子扩展分区的分区表项应该填入“EBR1”当中,即14 378 175号扇区;子扩展分区的开始扇区为“EBR1”和“EBR2”之间的扇区数,为13 510 665个扇区;子扩展分区的大小为63加上“逻辑驱动器2”的大小31 872 897,结果为31 872 960。跳转到14 378 175扇区,打开模板,填入计算好的数值,如图4-65所示。

MBR及EBR被破坏的分区恢复实例-数据恢复迷

图4-65 子扩展分区的分区表项

到此为止所有的分区表都已修复完毕,将所做的修改存盘并重启计算机,可以看到硬盘的四个分区都已恢复出来,如图4-66所示。

MBR及EBR被破坏的分区恢复实例-数据恢复迷

图4-66 “磁盘1”的四个分区恢复成功

因为将镜像做到了160GB的硬盘上,所以在第四个分区之后还有120GB多的未指派区域。