Hard Disk Drive(MBR)
这里讲的主要是网上所谓的老式磁盘,它是由一个个盘片组成的,我们先从个盘片结构讲起。如图1所示,图中的一圈圈灰色同心圆为一条条磁道,从圆心向外画直线,可以将磁道划分为若干个弧段,每个磁道上一个弧段被称之为一个扇区(图践绿色部分)。扇区是磁盘的最小组成单元,通常是512字节。
图1 老式磁盘一个盘片的结构
图2展示了由一个个盘片组成的磁盘立体结构,一个盘片上下两面都是可读写的,图中蓝色部分叫柱面(cylinder)。
图2 老式磁盘的整体结构
简简单介绍了磁盘结构后,下面我们将对磁盘的参数进行讲解。磁盘的常见参数如下:
- 磁头(head)
- 磁道(track)
- 柱面(cylinder)
- 扇区(sector)
- 圆盘(platter)
图2中磁盘是一个 3个圆盘6个磁头,7个柱面(每个盘片7个磁道) 的磁盘,图2中每条磁道有12个扇区,所以此磁盘的容量为6*7*12*512字节。
即:
存储容量 = 磁头数 × 磁道(柱面)数 × 每道扇区数 × 每扇区字节数
磁盘的寻址概念
数据读写是按照柱面进行,即磁头读写数据时首先在同一柱面从0磁道开始操作,依次向下在同一柱面的不同盘面进行操作
柱面(Cylinder),磁头(Header)和扇区(Sector),即C/H/S地址
每个扇区可以存放512个字节和一些其他信息:即数据存储的数据段和数据存储地点的标示符号(就是记录自己的物理坐标),磁头读取扇区头标即可获得当前CHS位置.
下面讲一下现代磁盘,在老式磁盘中,尽管磁道周长不同,但每个磁道上的扇区数是相等的,越往圆心扇区弧段越短,但其存储密度越高。不过这种方式显然比较浪费空间,因此现代磁盘则改为等密度结构(扇区等长),这意味着外围磁道上的扇区数量要大于内圈的磁道,寻址方式也改为以扇区为单位的线性寻址。为了兼容老式的3D寻址方式,现代磁盘控制器中都有一个地址翻译器将 3D 寻址参数翻译为线性参数。实际磁头磁头,柱面,扇区信息都保存在硬盘控制电路的ROM芯片中,在访问磁盘时候将这种逻辑地址转换为物理地址,此种方式记为LBA寻址.
要点: (1)以柱面/磁头/扇区表示的为绝对扇区又称物理磁盘地址
(2)单一数字表示的为相对扇区或DOS扇区,又称逻辑扇区号
(3)相对扇区与绝对扇区的转换公式
MBR(Master Boot Record): 硬盘主引导记录
位于硬盘 0磁头,0柱面,1扇区(512MB)
MBR的组成
0000-0088
|
Master Boot Record
主引导程序
|
主引导
程序
|
0089-01BD
|
出错信息数据区
|
数据区
|
01BE-01CD
|
分区项1(16字节)
|
分区表
|
01CE-01DD
|
分区项2(16字节)
|
|
01DE-01ED
|
分区项3(16字节)
|
|
01EE-01FD
|
分区项4(16字节)
|
|
01FE
|
55
|
结束标志
|
01FF
|
AA
|
MBR中的分区信息结构
存贮字节位
|
内容及含义
|
第1字节
|
引导标志。若值为80H表示活动分区,若值为00H表示非活动分区。
|
第2、3、4字节
|
本分区的起始磁头号、扇区号、柱面号。其中:
磁头号——第2字节;
扇区号——第3字节的低6位;
柱面号——为第3字节高2位+第4字节8位。
|
第5字节
|
分区类型符。
00H——表示该分区未用(即没有指定);
06H——FAT16基本分区;
0BH——FAT32基本分区;
05H——扩展分区;
07H——NTFS分区;
0FH——(LBA模式)扩展分区(83H为Linux分区等)。
|
第6、7、8字节
|
本分区的结束磁头号、扇区号、柱面号。其中:
磁头号——第6字节;
扇区号——第7字节的低6位;
柱面号——第7字节的高2位+第8字节。
|
第9、10、11、12字节
|
本分区之前已用了的扇区数。
|
第13、14、15、16字节
|
本分区的总扇区数。
|
MBR的主要功能及工作流程
主引导扇区与硬盘分区
从主引导扇区的结构可以知道,它仅仅包含一个64个字节的硬盘分区表。由于每个分区信息需要16个字节,所以对于采用MBR型分区结构的硬盘(其磁盘卷标类型为MS-DOS),最多只能识别4个主要分区。所以对于一个采用此种分区结构的硬盘来说,想要得到4个以上的主要分区是不可能的。这里就需要引出扩展分区了。扩展分区也是Primary partition的一种,但它与主分区的不同在于可以划分为无数个逻辑分区。(逻辑分区与扩展分区,主分区的关系自行百度)
(小贴士:分区的最小单元是磁柱)
扩展分区中逻辑驱动器的引导记录是链式的。每一个逻辑分区都有一个和MBR的分区表结构类似的扩展引导记录(EBR),其分区表的第一项指向该逻辑分区本身的引导扇区,第二项指向下一个逻辑驱动器的EBR。对于Windows系统而言,一般都是只划分一个主分区给系统,剩余的部分全部划为扩展分区。
扩展分区表项:第一个项 包括数据的开始地址在内的与扩展分区中当前逻辑驱动器有关的信息
第二个项 有关扩展分区中的下一个逻辑驱动器的信息,包括包含下一个逻辑驱动器的EBR的扇区的地址。如果不存在进一步的逻辑驱动器的话,该字段不会被使用
第三个项 未用
第四个项 未用.
https://www.cnblogs.com/april30138/p/3924930.html
http://www.blogfshare.com/mbr-dpt-ebr.html