问题描述
我们为什么要整理这篇笔记呢?为了理解硬盘盘片的组成结构。在理解磁盘盘片结构后,有助于我们理解磁盘命令,如 fdisk(8)等,中使用的术语;有助于我们理解数据在磁盘中的分布方式;能够增强我们进行磁盘操作的自信心;理解在磁盘操作时发生的底层动作。所以,理解磁盘的物理结构,对日常工作是很有帮助的;
该部分笔记将整理:磁盘驱动器的物理结构,了解相关术语及概念;
解决方案
1)盘片(PLATTER):
2)磁头(HEAD):磁盘读 / 写磁头,用于读写数据“针头”。通常一个碟片有两个用于读取或写入数据的磁头:一个用于顶部,另一个用于相对侧;磁头值表示磁盘位置和所在面;
盘片的物理组成
该笔记将介绍:磁盘盘片结构,并简单介绍磁盘组成结构(我们的关注重点为磁盘盘片结构);
盘片(PLATTER)为圆形金属盘,安装在硬盘内部的主机电轴上。部分硬盘包含多个盘片,以在有限空间内提供更多数据存储;
盘片有由铝(或玻璃)基板做成的芯,覆有氧化铁或钴合金制成的薄层。在基板的两侧,通过特别的制造技术沉积很薄的涂层,这个薄涂层就是数据存储的地方,称为介质层。当磁介质应用到基板表层时,会涂有薄润滑的保护层,以保护介质层。这复杂的三层介质如下:
基板(底层材料)
基板(底层材料)用于形成磁盘的形状,也是介质层沉积的地方,除此之外无特殊用途。通常使用铝合金作为盘片的基板,在早期很成功。随着技术进步,针头与盘片距离缩短,盘片转速更高,因此需要新材料来替代铝合金。玻璃盘片用来替代铝制盘片,它们更加稳定、质量更好、盘片更薄;
介质层
基板用于形成磁盘的形状,而介质层则沉积在基板上。它是应用在基板表面的磁性材料薄涂层,也是数据保存的地方,其厚度仅壹英寸的百万分之几;
采用“特殊技术”将磁性材料沉积在基板上。基板两面都涂有该薄涂层,通常通过称为磁控溅射的真空蒸镀(我们也不懂,看着翻译的)。另种方法是电镀法,类似于用在电镀饰品中的过程;
注意,盘片的两面都涂有介质层,也就是说盘片的两面都可以存储数据。(注意,这点会影响我们对其他内容的理解)
保护层
在介质层上,涂有超薄、防护的、润滑的保护层。它用于保护磁盘免于由于意外磁头接触、“磁头碰撞”、异物进入磁盘而带来的损坏;
盘片的特定结构
为了维护有组织的盘片以及取回数据,盘片被组织成“特定结构”。这种“特定结构”不是盘片的物理组成,而是逻辑划分方法。这些特定结构包括轨道(Track)、扇区(Sector)、簇(Cluster);
扇区(Sector)
轨道被分割成数千个很小的单元,称为扇区(Sector)。在硬盘上,扇区是数据存储的基本单元,每个扇区可容纳数据超过 512-BYTE。少许附加字节用于控制结构与错误校验;
扇区的大小:
1)传统的硬盘是一个扇区是 512-BYTE,
2)在 CD-ROM 中是 2048-BYTE,
3)在新一点的硬盘中使用 4096-BYTE 的扇区;
扇区的组成:在现代的磁盘中,每个物理扇区由两部分组成:
1)头部,包含驱动器和控制器使用的信息;
2)数据区域,用于保存数据。我们常说“扇区为 512-BYTE”,只是指扇区的数据区域;
轨道(Track)
每个盘片被分成数千个紧凑的同心圆,像树的年轮,称为轨道(Track)。保存在磁盘中的所有信息,都记录在轨道中。轨道值在最外侧从零开始,推移到最内测。每个轨道可以容纳大量数据;
轨道是磁盘驱动器中数据的物理分区。在驱动器中单个碟片上的轨道数量恰好等于驱动器的磁柱数量;
一个磁盘有多少轨道?这个完全取决于厂商对硬盘的布局;
How many tracks does a modern harddisk have?
number of tracks
磁柱(Cylinder)
磁柱(Cylinder),由多个盘片上的“相同位置”(相同轨道值)的轨道组成,它是磁盘分区的最小单位;
所示如图,3 个 Track(黄色区域)是 1 个 Cylinder:
Q:为什么会有 Cylinder 这个概念?或说 Cylinder 存在的意义是什么?
A:如果硬盘仅有单个盘片,当数据写入时,若某个 Track 写满,则机械移动磁头到下个 Track 以继续写入数据。但是,如果有多个盘片,就不再移动磁头,而是直接电子切换下个磁头(电子切换要快于机械切换),直接在下个盘片的同个 Track 继续写入数据。为此诞生 Cylinder 概念。
簇(Cluster)
在硬盘上,每个分区细分为簇(Cluster)。簇是在硬盘上存储的最小的可能单元。簇大小取决于两样东西:分区大小;在分区上的文件系统。将多个扇区组织在一起形成簇;
Block Size,Cluster Size,Allocation Unit,部分时候具有相同含义,都是指操作系统进行磁盘操作的最小单位,即文件系统的最小单位。在内核中,文件系统使用 Block 概念;
其他内容
容量计算
因此「机械磁盘」的容量计算公式是:
1)碟片扇区数 * 扇区容量 * 碟片数
2)磁盘读 / 写磁头数量 * 每个磁头负责的磁柱数量 * 每个磁柱所含有的磁区数量 * 磁区容量
每个「Partition entry」是 16 字节,它的单位是扇区,每个扇区 512-BYTE,因此总字节数就是:512 x 2 ^ 16 x 8
在 PC XT 时代的硬盘技术产品,分区表使用柱面、磁头、扇区(CHS 寻址)单元细分存储介质。这些值不再与现代磁盘驱动器中的名称相对应,也与其他设备无关,例如固态驱动器,这些设备实际上没有圆柱或磁头;
参考文献
Wikipedia/Track (disk drive)
Wikipedia/Data cluster
Wikipedia/Disk sector
Physical structure of a hard disk – Master partition table step by Part 1
“blocks” column in output of fdisk
鸟哥的 linux 私房菜 /Linux 磁盘与硬件管理 / 物理组成
https://kb.iu.edu/d/ahim
What is the difference between block size and cluster size on a disk? – Quora
What is the difference between sectors, blocks, and clusters? : DataHoarder