硬盘分区表解读.docx

硬盘分区表解读 一、 识别标志 分区表一般位于硬盘某柱面的0磁头1扇区。而第1个分区表(也即主分区表)总是 位于(0柱面,0磁头,1扇区),剩余的分区表位置可以由主分区表依次推导出来。分区 表有64个字节,占据其所在扇区的[447-510]字节。要判定是不是分区表,就看其后紧邻的 两个字节(也即[511-512])是不是55AA(55和AA两个字节,其实是两个16进制:55H 和AAH,用四位二进制表示一位16进制),若是,则为分区表。 二、 结构含义 字节 分区表由4项组成,每项16个字节(Byte).共4x16 = 64字节(Byte)。每项描述一个 分区的基本信息。每个字节的含义如下: 0 Activeflag.活动标志.若为0x80H,则表示该分区为活动分区.若为0X00H,则表示该 分区为非活动分区. 1,2,3该分区的起始磁头号,扇区号,柱面号。其中磁头号--1字节,扇区号--2字 节的低6位,柱面号--2字节的高2位+ 3字节 4分区文件系统标志: 分区未用:0X00H. 扩展分区:0x05H,0x0FH. FAT16 分区:0X06H. FAT32 分区:0x0BH,0x1BH,0x0CH,0x1CH. NTFS 分区:0x07H. 5,6,7该分区的结束磁头号,扇区号,柱面号,含义同上. 8,9,10,11逻辑起始扇区号。表示分区起点之前已用了的扇区数. 12,13,14,15该分区所占用的扇区数. 分区表项有几个字节比较重要,下面分别阐述之: 1、(1,2,3)字节 磁头号由(1)字节8位表示,其范围为(0 -- 2A8 - 1),也即(0磁头--255磁头)。 扇区号由(2)字节低6位表示,其范围为(0 -- 2人6 - 1),由于扇区号从1开始,所 以其范围是(1扇区--63扇区)。 柱面号由(2)字节高2位+ (3)字节,共10位表示,其范围为(0 --2Y0 - 1 ), 也即(0柱面--1023柱面)。 当柱面号超过1023时,这10位依然表示成1023,需要注意。 (5, 6, 7)字节含义同上。 2、(8,9,10,11)字节 如果是主分区表,则这4个字节表示该分区起始逻辑扇区号与逻辑0扇区(0柱面,0 磁头,1扇区)之差。如果非主分区表, 则这4个字节要么表示该分区起始逻辑扇区号与扩展分区起始逻辑扇区号之差,要么 为63。详细情况在后面有所阐述。 1、 扇区上的字节是按左边低位,右边高位的顺序排列的。所以在取值时,需要把字节 再反一下,让高位字节在左边,低位字节在右边,这一点在读取逻辑起始扇区号和分区大小 时需要注意。举个例子:第一项的逻辑起始扇区为(3F 00 00 00),转换为十进制前要先 反一下字节顺序,为(00 00 00 3F)然后在转换为十进制,即63 .同理分区大小为(3F 04 7D 00),先反为(00 7D 04 3F)再转换为十进制,即8193087。 2、 逻辑扇区号与(柱面,磁头,扇区)的相互转换: 令L =逻辑扇区号,C =柱面号,H =磁头号,S =扇区号。 每道扇区数=63 每柱面磁头数=255 每柱面扇区数=每道扇区数*每柱面磁头数 =63 x 255 =16065 柱面号下标从0开始。磁头号[0 -- 254],扇区号[1-- 63]。 逻辑扇区号下标也从0开始。 (柱面,磁头,扇区)转换成逻辑扇区号的公式为: L = Cx16065 + H x63 + S - 1 ; 比如(1柱面,1磁头,1扇区),其逻辑扇区号为: L= 1x16065 + 1x63 + 1 - 1 =16128 逻辑扇区号转换成(柱面,磁头,扇区)公式为: C = L / 16065 H = (L % 16065) / 63 S = (L % 16065) % 63 + 1 比如逻辑扇区号16127: C = 16127 / 16065 = 1 H = (16127 % 16065) / 63 = 0 S = (16127 % 16065) % 63 + 1 = 63 即(1柱面,0磁头,63扇区 3、 分区表上有四项,每一项表示一个分区,所以一个分区表最多只能表示4个分区。 主分区表上的4项用来表示主分区和扩展分区的信息。因为扩展分区最多只能有一个,所 以硬盘最多可以有四个主分区或者三个主分区,一个扩展分区。余下的分区表是表示逻辑分 区的。这里有必要阐述一点:逻辑区都是位于扩展分区里面的,并且逻辑分区的个数没有限 制。 4、 分区表所在扇区通常在(0磁头,1扇区),而该分区的开始扇区通常位于(1磁 头,1扇区),中间隔了 63个隐藏扇区。

文档评论(0)

1亿VIP精品文档

相关文档