硬盘DOS分区表参数的推算方法
我们知道,硬盘的逻辑0扇区存放有硬盘的I/O参数表,从I/O参数表可以确定有关硬盘的基本参数,其所在相对位置为0BH-1DH,共19个字节,各字节的含义如下:
0B-0CH:每扇区字节数。
0DH:每簇扇区数。
0E-0FH:保留扇区数。
10H:FAT表数。
11-12H:根目录最大可存文件数。
13-14H:本分区总扇区数。
15H:硬盘标志。
16-17H:每个FAT表占用扇区数。
18-19H:每磁道扇区数。
1A-1BH:磁头数。
1C-1DH:本分区前区有扇区数。
下面就是联想386/33机DOS3.3版的I/O参数表。其中硬盘总容量为100MB。只有一个DOS分区,总容量为32MB。其I/O参数表的具体内容是:
00 02 04 01 00 02 00
02 9F FF F8 40 00 21 00
08 00 21 00
二、硬盘分区表参数的推算法:
1.分区表各字节的含义:
在硬盘的第1扇区(0柱0头1扇区)有64字节是记录硬盘分区信息的,每个分区占16个字节,共有4个分区,在相对位置为1BE-1FDH,各字节的含义如下:
00H:活动分区标志。80H__活动分区;00H__非活动分区。
01_03H:表示本分区起始头号、区号及柱面号。
04H:DOS系统标志。
05-07H:本分区终止头号、区号、柱面号。
08-0BH:本分区前的扇区数。
0CH-0FH:本分区扇区总数。
2.柱面号和扇区号的关系:
从硬盘主引导程序可知,柱面号和扇区号有如下关系:起始实际柱面号的低8位就是分区表中的柱面号,高2位和实际扇区号合并就是分区表中的扇区号;终止实际柱面号低8位减1就是分区表中的柱面号,高2位和实际扇区事情合并就是分区表中的扇区号。
3.分区表参数的推算:
下面以联想386/33机为例来说明推算分区表参数的方法:
(1)第一字节是80H(活动分区)或00H(非活动分区)。
(2)由于本分区前已有33个扇区,每磁道33个扇区,即在本分区前已有一磁道,所以本分区从0柱1头1区开始,故第二、三、四字节分别为01、01、00H。
(3)第五字节是04H。
(4)本分区总扇区数是FF9FH,本分区终止扇区号为FF9FH+21H=FFC0H,则终止柱面号为(FFC0H/21H)/8=F8H,由于余数为0,则可推知终止头号为07H(即最后一个磁头),即第六字节为07H,由实际柱面号F8H的低8位为F8H,则分区表第八字节为F7H,由于终止扇区号必为最后一扇区,即为33扇区,该扇区号和实际柱面号的高2位(二进制)合并得21H,故第七字节为21H。综上所述可得知第六、七、八字节分别07H、21H、F7H。
(5)由于本分区前已有21H个扇区,故第九、十、十一、十二字节分别为21H、00H、00H、00H。
(6)由于本分区的总扇区数为FF9FH,故第十三、十四、十五、十六字节分别为9FH、FFH、00H、00H。