原理:

    硬盘是一种采用磁介质的数据存储设备,数据存储在密封于洁净的硬盘驱动器内腔的若干个磁盘片上。这些盘片一般是在以铝为主要成分的片基表面涂上磁性介质所形成,在磁盘片的每一面上,以转动轴为轴心、以一定的磁密度为间隔的若干个同心圆就被划分成磁道(track),每个磁道又被划分为若干个扇区(sector),数据就按扇区存放在硬盘上。在每一面上都相应地有一个读写磁头(head),所以不同磁头的所有相同位置的磁道就构成了所谓的柱面(cylinder)。传统的硬盘读写都是以柱面、磁头、扇区为寻址方式的(CHS寻址)。硬盘在上电后保持高速旋转(5400转/min以上),位于磁头臂上的磁头悬浮在磁盘表面,可以通过步进电机在不同柱面之间移动,对不同的柱面进行读写。所以在上电期间如果硬盘受到剧烈振荡,磁盘表面就容易被划伤,磁头也容易损坏,这都将给盘上存储的数据带来灾难性的后果。

硬盘的第一个扇区(0道0头1扇区)被保留为主引导扇区。在主引导区内主要有两项内容:主引导记录和硬盘分区表。主引导记录是一段程序代码,其作用主要是对硬盘上安装的操作系统进行引导;硬盘分区表则存储了硬盘的分区信息。计算机启动时将读取该扇区的数据,并对其合法性进行判断(扇区最后两个字节是否为0x55AA或0xAA55 ),如合法则跳转执行该扇区的第一条指令。所以硬盘的主引导区常常成为病毒***的对象,从而被篡改甚至被破坏。可引导标志:0x80为可引导分区类型标志;0表示未知;1为FAT12;4为FAT16;5为扩展分区等等。



目前硬盘一般采用双碟装,即两张盘片
这样用于存储的磁盘盘面就的4面(不过根据产品容量不同也会有所不同,这里只说主流容量产品)。
而磁头是与磁盘盘面一一对应的,也就是说有4个盘面,就有4个磁头
至于以前嘛,那可就多了。
原来一般是采用三碟装,IBM还出过五碟装的(腾龙二代)



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

 4. 扩展 Int 13H 简介

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