Free BSD系统所在的磁盘第一个扇区也是MBR。MBR中的分区表也像Windows系统下的分区表一样有被破坏的可能性。下面将通过一个实例讲解Free BSD系统中MBR扇区的分区表遭受破坏的恢复方法。
一块80GB的硬盘用在Free BSD系统中,系统突然无法引导。将硬盘取下连接在Windows系统中,用WinHex编辑该硬盘,发现MBR扇区中的分区表已被清空,如图5-18所示。
Free BSD系统的MBR扇区中分区表被完全清零,结束标志“55 AA”也被清除,该硬盘原来分为几个切片从当前扇区中已经无法知道。
恢复该硬盘的思路就是找到每个Free BSD分区的磁盘标签。通过磁盘标签中的参数确定切片的开始扇区及扇区总数,就可以重建MBR的分区表了。
Free BSD的磁盘标签扇区的前四个字节是签名值,固定为十六进制值“57 45 56 82”,只要在硬盘中搜索这四个字节就可以找到Free BSD的磁盘标签。
用WinHex搜索Free BSD磁盘标签的设置方法如图5-19所示。
参数设置好后单击“确定”按钮开始搜索,很快在16 066扇区搜索到一个磁盘标签,如图5-20所示。
这是搜索到的第一个磁盘标签,从磁盘标签的分区表中看到只有一个分区表项:分区的大小为“00 00 FB 04”,换算成十进制为64 260个扇区;分区开始扇区为“00 00 3E C1”,换算成十进制为16 065扇区,也就是该磁盘标签的前一个扇区,因为磁盘标签位于Free BSD所在切片的第二个扇区。
用这个Free BSD所在切片的开始扇区号16 065加上其扇区总数64 260,就应该是该磁盘中第二个切片的开始扇区,上两数的和为80 325,跳转到该扇区,发现是个空扇区,往下翻动一个扇区,即80 326号扇区,其内容如图5-21所示。
硬盘的80 326扇区显然是一个Free BSD系统的磁盘标签,从磁盘标签的分区表中看到只有一个分区表项:分区的大小为“00 08 16 E1”,换算成十进制为530 145个扇区;分区开始扇区为“00 01 39 C5”,换算成十进制为80 325扇区,也就是该磁盘标签的前一个扇区,因为磁盘标签位于Free BSD所在切片的第二个扇区。
用这个Free BSD所在切片的开始扇区号80 325加上其扇区总数530 145,就应该是该磁盘中第三个切片的开始扇区,上两数的和为610 470,跳转到该扇区,发现是个空扇区,往下翻动一个扇区,即610 471号扇区,其内容如图5-22所示。
硬盘的610 471号扇区显然也是一个Free BSD系统的磁盘标签。从磁盘标签的分区表中看到只有一个分区表项:分区的大小为“09 47 94 1B”,换算成十进制为155 685 915个扇区;分区开始扇区为“00 09 50 A6”,换算成十进制为610 470扇区,也就是该磁盘标签的前一个扇区,因为磁盘标签位于Free BSD所在切片的第二个扇区。
用这个Free BSD所在切片的开始扇区号610 470加上其扇区总数155 685 915,结果等于156 296 385扇区,已经接近该硬盘的末尾,所以这个切片就是硬盘中最后一个切片了,后面不再有下一个切片。
通过以上分析可知,该硬盘中一共有三个切片:第一个切片起始于16 065扇区,大小是64 260个扇区;第二个切片起始于80 325扇区,大小是530 145个扇区;第二个切片起始于610 470扇区,大小是155 685 915个扇区,将这些数值填入MBR的分区表中即可。这三个分区的类型都是“A5H”。
返回到MBR扇区,首先将结束标志“55 AA”填入,然后打开MBR模板,将分析好的数据填入,如图5-23所示。
分区表填写完成后,保存所做的修改并退出,该Free BSD系统的分区表就恢复成功了。