欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

GPT分区格式

程序员文章站 2022-07-27 15:02:42
1. GPT定义 全局唯一标识分区表(GUID partition table, 缩写:GPT)是一个实体硬盘的分区表的结构布局的标准。它是可扩展固件接口(UEFI)标准的一部分,被用于替代BIOS系统中使用32bits来存储逻辑块地址和分区大小信息的主引导记录(MBR)分区表。GPT标准使用64b ......

1. gpt定义

全局唯一标识分区表(guid partition table, 缩写:gpt)是一个实体硬盘的分区表的结构布局的标准。它是可扩展固件接口(uefi)标准的一部分,被用于替代bios系统中使用32bits来存储逻辑块地址和分区大小信息的主引导记录(mbr)分区表。gpt标准使用64bits用于记录逻辑块地址,因此,gpt分区格式在同等逻辑块大小的情况下,比mbr分区格式支持更大的硬盘空间。

2. gpt磁盘格式

gpt分区格式包含传统mbr(主引导记录)、分区表头、分区表、备份分区表头、备份分区表以及数据区。

2.1 传统mbr(lba0)

出处于兼容性与安全性方面的考虑,gpt分区格式保留传统mbr,位于lba0(第一个逻辑扇区),用于防止不支持gpt的硬盘管理软件错误识别并破坏硬盘数据。在这个mbr中,只有一个标志为0xee的分区,以此表示这块硬盘使用gpt分区格式。不支持gpt分区格式的软件,会识别出未知类型的分区;支持gpt分区格式的软件,可正确识别gpt分区磁盘。

2.2 分区表头(lba1)

分区表头记录了磁盘可用空间大小、分区表项大小与个数,备份分区表的位置信息,详细可参见表1。

表1 gpt分区表头格式

起始字节 长度 内容
0 8字节 签名("efi part", 45 46 49 20 50 41 52 54)
8 4字节 修订(在1.0版中,值是00 00 01 00)
12 4字节 分区表头的大小(单位是字节,通常是92字节,即5c 00 00 00)
16 4字节 分区表头(第0-91字节)的crc32校验,在计算时,把这个字段作为0处理,需要计算出分区序列的crc32校验后再计算本字段
20 4字节 保留,必须是0
24 8字节 当前lba(这个分区表头的位置)
32 8字节 备份lba(另一个分区表头的位置)
40 8字节 第一个可用于分区的lba(主分区表的最后一个lba + 1)
48 8字节 最后一个可用于分区的lba(备份分区表的第一个lba − 1)
56 16字节 硬盘guid(在类unix系统中也叫uuid)
72 8字节 分区表项的起始lba(在主分区表中是2)
80 4字节 分区表项的数量
84 4字节 一个分区表项的大小(通常是128)
88 4字节 分区序列的crc32校验
92 * 保留,剩余的字节必须是0(对于512字节lba的硬盘即是420个字节)
2.3. 分区表

分区表记录了每个分区的详细信息,包括分区类型guid、分区guid、分区大小与位置信息、分区的名称与属性,详细格式信息见表2。

表2 gpt分区表项的格式

起始字节 长度 内容
0 16字节 分区类型guid
16 16字节 分区guid
32 8字节 起始lba(小端序)
40 8字节 末尾lba
48 8字节 属性标签(如:60表示“只读”)
56 72字节 分区名(可以包括36个utf-16(小端序)字符)

3. 验证

使用本人硬盘验证如下:

3.1 gpt的mbr内容

使用磁盘内容查看工具查看mbr内容,16进制显示如下图所示。可见第一个主分区表项文件系统标识为“0xee”。
GPT分区格式

3.2 gpt表头

gpt表头内容如下:
GPT分区格式

3.3 gpt表项

gpt表项内容:
GPT分区格式

参考链接

[1] *.全局唯一标识分区表