fedora专题

硬盘中数据的MBR组织结构浅析

友情提示:在阅读本文之前,建议大家先阅读《机械硬盘的内部结构浅析》。

一块硬盘,大概包括五类数据:

(1)MBR:Main Boot Record,即主引导记录

(2)OBR:OS Boot Record,即操作系统引导记录

(3)FAT:File Assign Table,即文件分配表

(4)DIR:DIRectory,即根目录

(5)DATA:实际数据部分

对于一块硬盘来说,只有MBR是有且仅有一个的,而其他几类数据,则由分区的个数决定。

【MBR】

MBR,位于一块硬盘的第0柱面、第0磁头、第1扇区。(柱面和磁头,都是从0开始编号,而扇区是从1开始编号的。这是约定俗成的编号规则。)

有些文章里,你会看到有“0号扇区”、“绝对0号扇区”等称呼,其实都是指的第1号扇区。

众所周知,一个扇区的容量是512字节,所以,本段落的主角MBR,就存储在这512字节里面,不过MBR并没有占满这个空间,它只占据了其中的446字节,

还剩下512 – 446 = 66字节。这66字节,又存储了什么内容呢,让我们来看看下图,便一目了然了:

显而易见,除了红色的MBR占据了446字节外,还有蓝色的DPT(磁盘分区表)占据了64个字节,最后是灰色的2字节结束标志(约定为55 AA)。

我们来提取一块硬盘的最开始的512字节内容,转换成十六进制,用winHex工具(Mac平台用Hex Fiend工具)看一看:

红色区域部分,就是MBR的446字节;蓝色区域部分,便是DPT的46字节;而最后面的55 AA,便是结束标志。

【DPT】

正如上面的两张图所示,DPT(磁盘分区表)是一个64字节的数据区域,这64字节被等分成了4份(4个分区),每一份是16字节,分别对应一个分区的描述信息。

在DPT里,有几个知识点,需要和大家说明:

(1)这四个分区,只可以是主分区、扩展分区。而且,主分区的数量只可以是1-4个,而扩展分区的数量只可以是0个或1个。

(2)主分区的数量 + 扩展分区的数量 ≤ 4

(4)如果希望让一块硬盘的分区数量超过4个,就要引入一个新的概念,叫做逻辑分区。逻辑分区,是在扩展分区之中的概念,是包含在扩展分区之内的。

(5)逻辑分区的数量不限,可以有很多个。

(6)逻辑分区的分区信息,则位于扩展分区的起始扇区中。

【一张磁盘数据的组织结构图】

从上图中,可以看到,采用MBR方式的硬盘,可以有很多个很个逻辑分区,因为其逻辑分区的组织形式类似于“指针链表式”。这样,就可以打破“DPT”的四个分区的限制了。

而且,图中很清晰地画出了16字节的分区信息的“协议图”。这里有一点要说明的,那就是对于小分区,其采用的是“起始CHS”和“结束CHS”方式来说明分区大小,而对于大分区来说,会忽略“起始CHS”和“结束CHS”,而是采用“相对扇区数”和“扇区总数”这样的偏移法(LBA)来说明分区大小。

其他的内容,在图中已经表述的比较清楚啦。如果有哪些不懂的地方,可以联系我交流:)