MBR、GPT
▶ MBR-Master Boot Record-主引导记录
主引导记录
是计算机在开机后访问 硬盘
时所必须要读取的 首个扇区
,一个扇区单位有512个字节,而一个MBR的分区表也最占512B,所以也就是说这里的第一个扇区就存放着 MBR【主引导记录】
,硬盘读取的第一个扇区读取的就是MBR分区表。
MBR 有三个大的部分组成,分别是:
-
引导加载器 boot code[master boot code]
: 占据 446 字节,引导加载器 也叫 主引导扇区、启动加载器,这里面通常存放的GRUB/GRUB2
,用于后续加载操作系统的内核。
引导加载器 GRUB
:https://www.cnblogs.com/takenika/articles/18390663 -
硬盘分区表 DPT(Disk Partition Table)
: 占据 64 字节,记录的是分区的信息。
DPT:Disk Partition Table:偏移地址是01BEH ~ 01FDH
,每个分区表项长 16 字节,共 64 个字节,对应起来有 4 个分区表,这四个分区表有两种情况 ① 4个都是主分区的分区表,② 3个主分区表+1个扩展分区表。 -
硬盘有效标志 Magic number
:Magic number 也有翻译为 魔数、结束标记字,占据2个字节。
Magical number-硬盘有效标志-结束标志字:偏移地址是01FE ~ 01FF
自然就是占了2字节,固定是55AA
当结束标志有问题系统不能启动。
这三个部分合在一起就是512个字节也就是一个扇区,后面有图来表现。
在有些场合主引导记录的时候指的不是一整块的扇区而是最前面的 启动加载器。

对于分区的操作是对整个64位的分区表进行的,并不涉及到数据区,对于结束的 0×55 AA
则是 2 byte
表示主引导记录的结束。
MBR 将分区信息保存到磁盘的第一个扇区的64个字节中也就是MBR第二个部分,每个分区是16个字节,这16个字节中存在有活动状态标志、文件系统标识、起止柱面号、磁头号、隐含扇区数目(4个字节)、分区总扇区数目(4个字节)等,这四个分区的部分合起来称为 DPI 磁盘分区表
。
具体来说,MBR的分区表
只能有 4个分区
的信息,这4个分区中的分区可以是 primary
或者是 扩展分区
。
通常情况下:MBR 是 4 个 primary
和或者 3个primary + 1个扩展分区
。
扩展分区
严格来说不是一个分区,仅仅是指向下一个 分区的指针
,这种指针的结构就形成了一个 单向列表
,如下图。

MBR
无法支持 2.2TB
容量的磁盘。
▷ MBR扇区表示法

▷ MBR分区命令 fdisk
fdisk
命令用于支持 MBR 磁盘分区。
Linux命令:fdisk-MBR磁盘分区:https://www.cnblogs.com/takenika/articles/18387545
▶ GPT-GUID Partition Table-全局唯一标识磁盘分区表

① 是处于兼容性考虑,依旧存储了一个传统的 MBR
,这个 MBR 称为 保护型MBR
包含了磁盘的签名,MBR分区表,结束标记。
注意:这里面没有引导代码,分区表只有一个分区标识,GPT实际上用不到这部分,这一部分主要是让系统的一些。
磁盘管理软件知道这是一个磁盘,是一个合法的磁盘。
② 这是主要的 GPT的头部
,位于 1号扇区
,定义了分区表的 起始位置
和 结束位置
,分区表项的个数,这个区域也记录这个盘的 GUID 和下面主分区表的表头和分区表的大小,备份的分区表的表头位置、大小。
另外还存储自身和分区表的校验信息,在固件引导程序,操作系统启动的时候,就可以依据这里面的校验信息判断这个分区表本身是否有误,有误的话,就会从硬盘最后(④)。
④ 备份GPT信息表中恢复整个分区表。
③ 的分区表项中,依据前面的GPT头部的定义,这一部分可以有过个项,从理论上讲,这一部分实际上是没有上线的。
严格来讲GPT磁盘关于能分128个分区并不严谨,这种限制主要是在windows中,微软的设置最多支持128个分区
表项。
③ 与 ④ 这两份分区表提高了安全性。
⑤ 是GPT磁盘的最后一个盘区,是用于备份GPT头部的信息,也就是备份②的信息。
▷ GPT磁盘分区命令 parted 与 gdisk
parted
属于 GUN
项目,操作直接。
gdisk
不是 GNU 项目,但是操作与 parted 相比 更加友好
。
▶ MBR 与 GPT 对比
