硬盘逻辑结构相关知识简介

核心提示:本文内容主要介绍硬盘逻辑结构方面的一些参数和概念,包括Int13H调用、BootSector结构、分区表结构、扩展分区等知识。1.硬盘参数很久以前,硬盘的容量还非常小的时候,人们采用与软盘类似的结构生

硬盘逻辑结构相关知识简介

本文内容主要介绍硬盘逻辑结构方面的一些参数和概念,包括Int13H调用、BootSector结构、分区表结构、扩展分区等知识。

1.硬盘参数

很久以前,硬盘的容量还非常小的时候,人们采用与软盘类似的结构生产硬盘。也就是硬盘盘片的每一条磁道都具有相同的扇区数。由此产生了所谓的3D参数(DiskGeometry)。既磁头数(Heads),柱面数(Cylinders),扇区数(Sectors),以及相应的寻址方式。

其中:

磁头数(Heads)表示硬盘总共有几个磁头,也就是有几面盘片,最大为255(用8个二进制位存储);

柱面数(Cylinders)表示硬盘每一面盘片上有几条磁道,最大为1023(用10个二进制位存储);

扇区数(Sectors)表示每一条磁道上有几个扇区,最大为63(用6个二进制位存储)。

每个扇区一般是512个字节,理论上讲这不是必须的,但好象没有取别的值的。

所以磁盘最大容量为:

255*1023*63*512/1048576=8024GB(1M=1048576Bytes)或硬盘厂商常用的单位:

255*1023*63*512/1000000=8414GB(1M=1000000Bytes)

在CHS寻址方式中,磁头,柱面,扇区的取值范围分别为0到Heads-1,0到Cylinders-1,1到Sectors(注意是从1开始)。

2.基本Int13H调用简介

BIOSInt13H调用是BIOS提供的磁盘基本输入输出中断调用,它可以完成磁盘(包括硬盘和软盘)的复位,读写,校验,定位,诊断,格式化等功能。它使用的就是CHS寻址方式,因此最大识能访问8GB左右的硬盘(本文中如不作特殊说明,均以1M=1048576字节为单位)。

3.扩展Int13H简介

虽然现代硬盘都已经采用了线性寻址,但是由于基本Int13H的制约,使用BIOSInt13H接口的程序,如DOS等还只能访问8G以内的硬盘空间。为了打破这一限制,Microsoft等几家公司制定了扩展Int13H标准(ExtendedInt13H),采用线性寻址方式存取硬盘,所以突破了8G的限制,而且还加入了对可拆卸介质(如活动硬盘)的支持。

4.现代硬盘结构简介

在老式硬盘中,由于每个磁道的扇区数相等,所以外道的记录密度要远低于内道,因此会浪费很多磁盘空间(与软盘一样)。为了解决这一问题,进一步提高硬盘容量,人们改用等密度结构生产硬盘。也就是说,外圈磁道的扇区比内圈磁道多。采用这种结构后,硬盘不再具有实际的3D参数,寻址方式也改为线性寻址,即以扇区为单位进行寻址。

为了与使用3D寻址的老软件兼容(如使用BIOSInt13H接口的软件),在硬盘控制器内部安装了一个地址翻译器,由它负责将老式3D参数翻译成新的线性参数。这也是为什么现在硬盘的3D参数可以有多种选择的原因(不同的工作模式,对应不同的3D参数,如LBA,LARGE,NORMAL)。

5.BootSector的组成

BootSector也就是硬盘的第一个扇区,它由MBR(MasterBootRecord),DPT(DiskPartitionTable)和BootRecordID三部分组成。

MBR又称作主引导记录占用BootSector的前446个字节(0to0x1BD),存放系统主引导程序(它负责从活动分区中装载并运行系统引导程序)。

DPT即主分区表占用64个字节(0x1BEto0x1FD),记录了磁盘的基本分区信息。主分区表分为四个分区项,每项16字节,分别记录了每个主分区的信息(因此最多可以有四个主分区)。

BootRecordID即引导区标记占用两个字节(0x1FEand0x1FF),对于合法引导区,它等于0xAA55,这是判别引导区是否合法的标志。

BootSector的具体结构如下图所示:

0000|---------------------------------------------|

||

||

|MasterBootRecord|

||

||

|主引导记录(446字节)|

||

||

||

01BD||

01BE|---------------------------------------------|

||

01CD|分区信息1(16字节)|

01CE|---------------------------------------------|

||

01DD|分区信息2(16字节)|

01DE|---------------------------------------------|

||

01ED|分区信息3(16字节)|

01EE|---------------------------------------------|

||

01FD|分区信息4(16字节)|

|---------------------------------------------|

|01FE|01FF|

|55|AA|

|---------------------------------------------|

6.分区表结构简介

分区表由四个分区项构成,每一项的结构如下:

BYTEState:分区状态,0=未激活,0x80=激活(注意此项)

BYTEStartHead:分区起始磁头号

WORDStartSC:分区起始扇区和柱面号,底字节的低6位为扇区号,

高2位为柱面号的第9,10位,高字节为柱面号的低8位

BYTEType:分区类型,如0x0B=FAT32,0x83=Linux等,

00表示此项未用,07=NTFS

BYTEEndHead:分区结束磁头号

WORDEndSC:分区结束扇区和柱面号,定义同前

DWORDRelative:在线性寻址方式下的分区相对扇区地址

(对于基本分区即为绝对地址)

DWORDSectors:分区大小(总扇区数)

(0)
上一篇 2021年8月27日 下午2:09
下一篇 2021年8月27日 下午2:13

猜你喜欢

电话

联系我们

1388-0022-916

在线咨询:点击这里给我发消息

邮件:1395700887@qq.com

工作时间:周一至周日,9:30-18:30,节假日无休

微信
微信
分享本页
返回顶部