MBR(MS-DOS)
组成
早期的Linux为了兼容Windows的磁盘,所以采用MBR硬盘分区表。
启用引导程序记录区与分区表都放在硬盘的第一个扇区(这个扇区通常是512B)。
- 主引导记录(MBR,Master Boot Record)
可以安装启动引导程序的地方,446B。 - 分区表
记录整块硬盘分区的状态,64B。
由于分区表只有64B,所以最多仅能有四组记录区,每组记录区记录该区段的启始与结束的柱面号,而这四组记录区所划分出来的,为主分区,当记录的区段被再次划分后,那么这一区段称为扩展分区,被划分出来的区域叫逻辑分区。
原理
![](https://i-blog.csdnimg.cn/blog_migrate/8244261901bc2e88ed2704b21d855566.gif)
- 分区只是对64B的分区表进行的
- 硬盘默认的分区表仅能写入四组分区信息
- 主分区、扩展分区
- 分区的最小单位通常为柱面
- 当系统要写入磁盘时,需要参考分区表
扩展分区的目的是使用额外的扇区来记录分区信息,扩展分区本身并不能被拿来格式化。
特性
- 主分区与扩展分区最多可以有4个
- 扩展分区最多只能有一个
- 逻辑分区是由扩展分区划分出来的
- 能够被格式化存储数据的是主分区及逻辑分区,扩展分区不能被格式化
- 逻辑分区的数量依操作系统而定
MBR分区表的限制
- 操作系统无法使用2.2T以上的磁盘
- MBR仅有一个区块,若有损坏,无法或很能修复
- MBR内存放启动引导程序仅有446B,无法存储较多程序代码
GPT(GUID Partition table)
GPT将磁盘以LBA为单位来划分,记录分区信息。
- LBA(Logical Block Address)
逻辑区块地址,默认大小为512B。
GPT使用34个LBA区块来记录分区信息,并且整个磁盘最后的33个LBA区块用来备份。
![](https://i-blog.csdnimg.cn/blog_migrate/8244261901bc2e88ed2704b21d855566.gif)
LBA0(MBR兼容区块)
存储了第一阶段的启动引导程序,在原本的分区表中,仅放入一个特殊标志符,用来表示此磁盘为GPT格式。
EFI信息区(GPT头)
起始于磁盘的LBA1,通常也只占用这个单一扇区。其作用是定义分区表的位置和大小。同时记录备份用的GPT分区。GPT头还包含头和分区表的校验和,这样就可以及时发现错误。若有错误,则操作系统可以通过这个记录区来找到备份区域。
分区表
分区表区域包含分区表项。这个区域由GPT头定义,一般占用磁盘LBA2~LBA33扇区。分区表中的每个分区项由起始地址、结束地址、类型值、名字、属性标志、GUID值组成。分区表建立后,128位的GUID对系统来说是唯一的。
每个LBA都可以记录四组分区记录。(4 * 128B)
相对字节偏移量 (十六进制) | 字节数 | 说明 |
---|---|---|
00~0F | 16 | 用GUID表示的分区类型 |
10~1F | 16 | 用GUID表示的分区唯一标示符 |
20~27 | 8 | 该分区的起始扇区,用LBA值表示。 |
28~2F | 8 | 该分区的结束扇区(包含),用LBA值表示,通常是奇数。 |
30~37 | 8 | 该分区的属性标志 |
38~7F | 72 | UTF-16LE编码的人类可读的分区名称,最大32个字符。 |
GPT分区
最大的区域,由分配给分区的扇区组成。这个区域的起始和结束地址由GPT分区表定义。
备份区域
备份区域位于磁盘的尾部,包含GPT头和分区表的备份。它占用GPT结束扇区和EFI结束扇区之间的33个扇区。其中最后一个扇区用来备份1号扇区的EFI信息,其余的32个扇区用来备份LBA2~LBA33扇区的分区表。