用户的一块系统硬盘,容量80GB,分三个区:第一个分区装有操作系统;第二个和第三个分区是数据区,存有用户的重要数据。
因为一次系统故障,用户用一张光盘重新安装操作系统,安装完后发现不能启动,并且分区也丢失了。
把该硬盘接到另外一台计算机上,进入系统,打开磁盘管理,看到硬盘的状态为“动态 不可读取”,如图4-149中的“磁盘2”所示。
硬盘的状态成为“动态 不可读取”,自然就无法访问硬盘中的分区了,那么是什么原因使该硬盘变为“动态 不可读取”的状态呢?这可能是因为用户在重装系统时有误操作,或者系统安装光盘有问题,导致该硬盘MBR的分区表被改变,硬盘才会显示为“动态 不可读取”。
用WinHex打开这块硬盘,查看MBR,其内容如图4-150所示。
MBR中的分区表果然发生了变化,目前只有一项分区表项,分区类型为动态分区的“42H”,分区开始于63号扇区,大小是硬盘63号扇区后的所有空间,即156 301 425扇区。分区表的模板如图4-151所示。
找到了分区丢失的原因所在,下面开始动手恢复数据。
本案例恢复的过程中会利用文件系统中DBR扇区的结构和参数。有关文件系统的知识将在后面讲解,如果读者对文件系统不了解,可以先学习后面的章节,然后再返回来阅读该案例。
首先跳转到硬盘的63号扇区,看看是否有DBR。用WinHex跳转到63号扇区,其内容如图4-152所示。
显然这是一个NTFS分区的DBR,其模板如图4-153所示。
从BPB参数中可以看出该分区大小为20 482 811扇区。因为是NTFS分区,所以填写分区表时,这个数值要加1,即分区大小为20 482 812个扇区。现在可以填写MBR中的第一个分区表项了。
打开MBR的模板,修改分区表第一项的内容,修改结果如图4-154所示。
因为第一个分区装有操作系统,所以要激活,填写“80H”;C/H/S参数已经不起作用,可以随便填写;分区类型为NTFS,应填写“07H”;分区开始位置为63号扇区,分区大小为20 482 812扇区,依次填入后存盘,第一个分区修复完毕。
将第一个分区的开始位置63加上其大小20 482 812,结果为20 482 875,这应该是第二个分区的开始扇区号。跳转到此扇区,其内容如图4-155所示。
从结构看这是一个EBR扇区,也就是该硬盘扩展分区的开始,分区表中有两个分区表项,其模板如图4-156所示。
因为该硬盘共三个区,所以在主扩展分区内会有两个驱动器,同时也能说明主扩展分区内只有一个子扩展分区,也就是图4-156中第二个分区表项所描述的分区。用这个分区表项的开始扇区号加上分区大小,就是主扩展分区的大小,即图4-156中①与②的和,结果为135 813 510扇区。这就确定了主扩展分区的开始扇区和大小,现在可以回到MBR中创建主扩展分区的表项。
在WinHex中跳转到MBR处,打开模板,填写分区表项,结果如图4-157所示。
填写完后将结构存盘,重启计算机,看到硬盘的三个分区都出现了,数据完好无损。在磁盘管理中看该硬盘的分区结构如图4-158的“磁盘2”所示。