一个FAT16分区“K”双击打开时出现如图4-276所示的提示信息。
这个分区“K”所在的硬盘没有任何物理故障,显然是文件系统遭到破坏,所以系统会提示分区未格式化,用WinHex打开分区“K”,出现如图4-277所示的信息。
看来WinHex也无法打开分区“K”,可以断定DBR一定有错误,只能用WinHex打开分区“K”所在的硬盘,然后跳转到“K”盘的DBR扇区,如图4-278所示。
从图4-278中可以看到“K”盘的DBR扇区已经被完全破坏。DBR是文件系统中的一个非常重要的扇区,这个扇区被破坏了,分区当然无法打开。下面来修复DBR扇区。
DBR扇区的结构分为以下几个部分:跳转指令、OEM代号、BPB参数、引导代码和结束标志。同一文件系统类型的DBR扇区,除了BPB参数有部分不一样以外,其他各部分都是一样的,所以恢复DBR的方法是从同一文件系统类型的分区中复制一个DBR,然后再对BPB参数进行修改,就可以了。
现在将另外一个FAT16分区的DBR扇区复制到“K”盘DBR所在的扇区,覆盖原来的数据,如图4-279所示。
其BPB参数的模板如图4-280所示。
因为同样是FAT16文件系统的DBR扇区,所以大部分BPB参数的值都是一样的,只有个别参数的值可能不一样,需要修改,这几个参数是每簇扇区数、保留扇区数、分区大小、FAT表大小,其他的都不用修改。
下面对这些值进行验证并修改。
第1步 验证“保留扇区数”。
保留扇区数也就是DBR与FAT1之间的扇区数,用WinHex搜索FAT1,搜索的设置如图4-281所示。
搜索发现4号扇区就是FAT1,所以“保留扇区数”的值应该为“4”。
第2步 验证“分区大小”。
因为该分区的分区表是完好的,所以可以从分区表中获得该分区的大小,其分区表如图4-282所示。
图4-282中选中的4个字节就是这个分区的总扇区数,值为22514DH,转换为十进制等于2 249 037,所以分区大小为2 249 037个扇区。
第3步 验证“FAT表大小”。
因为FAT1开始于4号扇区,在随后搜索找到FAT2开始于142号扇区,所以可以确定FAT表大小为138个扇区。
第4步 验证“每簇扇区数”。
每簇扇区数这个参数需要通过计算获得,计算方法如下:
①算出该分区中数据区的大小。计算方法:分区总扇区数−DBR保留扇区数−2×每FAT扇区数−FDT占用的扇区数,即2 249 037−4−2×138−32=2 248 725。
②算出该分区的FAT表中记录的FAT项的个数。计算方法:(FAT表大小×512)/2,FAT表大小乘以512是FAT表的总字节数,除以2是因为FAT16每个FAT项占16位,即2字节,结果为138×512/2=35 328。
③用①的结果除以②的结果就得到每簇扇区数为32。
这种算法一般不会刚好得到整数,需要四舍五入取整数。
BPB的参数都已计算完毕,用模板填入DBR即可,如图4-283所示。
填完后,存盘,分区就可以打开了,如图4-284所示。