【转】硬盘逻辑结构简介

硬盘逻辑结构简介

 1. 硬盘参数释疑

  到目前为止人们常说的硬盘参数还是古老的 CHS(Cylinder/Head/Sector)参数那么为什么要使用这些参数,它们的意义是什么?它们的取值范围是什么?
  很久以前硬盘的容量还非常小的时候,人们采用与软盘类似的结构生产硬盘也就是硬盘盘片的每一条磁道都具有相同的扇区数.由此产生了所谓的3D参数 (Disk Geometry). 既磁头数(Heads), 柱面数(Cylinders),扇区数(Sectors),以及相应的寻址方式.
  其中:
  磁头数(Heads)表示硬盘总共有几个磁头,也就是有几面盘片最大为 255 ( 8 个二进制位存储);
  柱面数(Cylinders) 表示硬盘每一面盘片上有几条磁道,最大为 1023( 10 个二进制位存储);
  扇区数(Sectors) 表示每一条磁道上有几个扇区最大为 63( 6个二进制位存储).
  每个扇区一般是 512个字节理论上讲这不是必须的,但好象没有取别的值的.
  所以磁盘最大容量为:
  255 * 1023 * 63 * 512 / 1048576 = 8024 GB ( 1M =1048576 Bytes )或硬盘厂商常用的单位:
  255 * 1023 * 63 * 512 / 1000000 = 8414 GB ( 1M =1000000 Bytes )
 CHS 寻址方式中磁头柱面扇区的取值范围分别为 0 Heads - 1,0  Cylinders - 1, 1  Sectors (注意是从 1 开始).

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

 3. 现代硬盘结构简介
  在老式硬盘中由于每个磁道的扇区数相等,所以外道的记录密度要远低于内道因此会浪费很多磁盘空间 (与软盘一样). 为了解决这一问题,进一步提高硬盘容量人们改用等密度结构生产硬盘也就是说,外圈磁道的扇区比内圈磁道多采用这种结构后硬盘不再具有实际的3D参数,寻址方式也改为线性寻址即以扇区为单位进行寻址.
为了与使用3D寻址的老软件兼容 (如使用BIOSInt13H接口的软件), 在硬盘控制器内部安装了一个地址翻译器,由它负责将老式3D参数翻译成新的线性参数这也是为什么现在硬盘的3D参数可以有多种选择的原因(不同的工作模式对应不同的3D参数 LBA, LARGE, NORMAL).

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


. Boot Sector 结构简介

1. Boot Sector 的组成

  Boot Sector 也就是硬盘的第一个扇区它由 MBR (MasterBoot Record),DPT (Disk Partition Table)  Boot Record ID 三部分组成.
  MBR 又称作主引导记录占用 Boot Sector 的前 446 个字节( 0 to 0x1BD ),存放系统主引导程序 (它负责从活动分区中装载并运行系统引导程序).
  DPT 即主分区表占用 64 个字节 (0x1BE to 0x1FD),记录了磁盘的基本分区信息主分区表分为四个分区项每项 16 字节,分别记录了每个主分区的信息(因此最多可以有四个主分区).
  Boot Record ID 即引导区标记占用两个字节 (0x1FE and0x1FF), 对于合法引导区它等于 0xAA55, 这是判别引导区是否合法的标志.
  Boot Sector 的具体结构如下图所示:

   0000 |---------------------------------------------|
      |                        |
      |                        |
      |      Master Boot Record         |
      |                        |
      |                        |
      |      主引导记录(446字节)        |
      |                        |
      |                        |
      |                        |
   01BD |                        |
   01BE |---------------------------------------------|
      |                        |
   01CD |      分区信息 1(16字节)        |
   01CE |---------------------------------------------|
      |                        |
   01DD |      分区信息 2(16字节)        |
   01DE |---------------------------------------------|
      |                        |
   01ED |      分区信息 3(16字节)        |
   01EE |---------------------------------------------|
      |                        |
   01FD |      分区信息 4(16字节)        |
      |---------------------------------------------|
      | 01FE        |01FF          |
      |    55         AA      |
      |---------------------------------------------|

 

2. 分区表结构简介

  分区表由四个分区项构成每一项的结构如下:
  BYTE State   分区状态, 0 =未激活, 0x80 = 激活 (注意此项)
  BYTE StartHead 分区起始磁头号
  WORD StartSC  分区起始扇区和柱面号,底字节的低6位为扇区号,
           高2位为柱面号的第 9,10 高字节为柱面号的低 8 
  BYTE Type    : 分区类型0x0B = FAT32, 0x83 = Linux ,
           00 表示此项未用,07 = NTFS
  BYTE EndHead  分区结束磁头号
  WORD EndSC   :分区结束扇区和柱面号定义同前
  DWORD Relative :在线性寻址方式下的分区相对扇区地址
           (对于基本分区即为绝对地址)
  DWORD Sectors  : 分区大小 (总扇区数)

  注意 DOS / Windows 系统下,基本分区必须以柱面为单位划分( Sectors * Heads 个扇区), 如对于 CHS  764/255/63 的硬盘,分区的最小尺寸为 255 * 63 * 512 / 1048576 = 7.844 MB.

 3. 扩展分区简介

  由于主分区表中只能分四个分区无法满足需求,因此设计了一种扩展分区格式基本上说扩展分区的信息是以链表形式存放的,但也有一些特别的地方.首先主分区表中要有一个基本扩展分区项,所有扩展分区都隶属于它,也就是说其他所有扩展分区的空间都必须包括在这个基本扩展分区中.对于DOS / Windows 来说扩展分区的类型为 0x05. 除基本扩展分区以外的其他所有扩展分区则以链表的形式级联存放后一个扩展分区的数据项记录在前一个扩展分区的分区表中,但两个扩展分区的空间并不重叠.
  扩展分区类似于一个完整的硬盘必须进一步分区才能使用.但每个扩展分区中只能存在一个其他分区此分区在 DOS/Windows环境中即为逻辑盘.因此每一个扩展分区的分区表(同样存储在扩展分区的第一个扇区中)中最多只能有两个分区数据项(包括下一个扩展分区的数据项).

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值