GPT概述

74次阅读

全局唯一标识分区表 (GUID Partition Table, 缩写 :GPT) 是一个实体硬盘的分区结构。它是可扩展固件接口标准的一部分 , 用来替代 BIOS 中的主引导记录分区表。传统的主启动记录 (MBR) 磁盘分区支持最大卷为 2.2 TB (terabytes) , 每个磁盘最多有 4 个主分区 ( 或 3 个主分区 ,1 个扩展分区和无限制的逻辑驱动器 )。与 MBR 分区方法相比 ,GPT 具有更多的优点 , 因为它允许每个磁盘有多达 128 个分区 , 支持高达 18 千兆兆字节 (exabytes,1EB=10^6TB) 的卷大小 , 允许将主磁盘分区表和备份磁盘分区表用于冗余 , 还支持唯一的磁盘和分区 ID (GUID)。
与 MBR 分区的磁盘不同 ,GPT 的分区信息是在分区中 , 而不象 MBR 一样在主引导扇区。为保护 GPT 不受 MBR 类磁盘管理软件的危害 ,GPT 在主引导扇区建立了一个保护分区 (Protective MBR)的 MBR 分区表 , 这种分区的类型标识为 0xEE, 这个保护分区的大小在 Windows 下为 128MB,Mac OS X 下为 200MB, 在 Window 磁盘管理器里名为 GPT 保护分区 , 可让 MBR 类磁盘管理软件把 GPT 看成一个未知格式的分区 , 而不是错误地当成一个未分区的磁盘。另外 ,GPT 分区磁盘有多余的主要及备份分区表来提高分区数据结构的完整性。

在 MBR 硬盘中 , 分区信息直接存储于主引导记录 (MBR) 中 ( 主引导记录中还存储着系统的引导程序 )。但在 GPT 硬盘中 , 分区表的位置信息储存在 GPT 头中。但出于兼容性考虑 , 硬盘的第一个扇区仍然用作 MBR, 之后才是 GPT 头。跟现代的 MBR 一样 ,GPT 也使用逻辑区块地址 (LBA) 取代了早期的 CHS 寻址方式。传统 MBR 信息存储于 LBA 0,GPT 头存储于 LBA 1, 接下来才是分区表本身。64 位 Windows 操作系统使用 16,384 字节 ( 或 32 扇区 ) 作为 GPT 分区表 , 接下来的 LBA 34 是硬盘上第一个分区的开始。为了减少分区表损坏的风险 ,GPT 在硬盘最后保存了一份分区表的副本。与主启动记录 (MBR) 分区方法相比 ,GPT 具有更多的优点 , 因为它允许每个磁盘有多达 128 个分区 , 支持高达 18 千兆兆字节的卷大小 , 允许将主磁盘分区表和备份磁盘分区表用于冗余 , 还支持唯一的磁盘和分区 ID(GUID)。

GPT 结构

GPT 的结构见下图

传统 MBR (LBA 0)
在 GPT 分区表的最开头 , 处于兼容性考虑仍然存储了一份传统的 MBR, 用来防止不支持 GPT 的硬盘管理工具错误识别并破坏硬盘中的数据 , 这个 MBR 也叫做保护 MBR。在支持从 GPT 启动的操作系统中 , 这里也用于存储第一阶段的启动代码。在这个 MBR 中 , 只有一个标识为 0xEE 的分区 , 以此来表示这块硬盘使用 GPT 分区表。不能识别 GPT 硬盘的操作系统通常会识别出一个未知类型的分区 , 并且拒绝对硬盘进行操作 , 除非用户特别要求删除这个分区。这就避免了意外删除分区的危险。另外 , 能够识别 GPT 分区表的操作系统会检查保护 MBR 中的分区表 , 如果分区类型不是 0xEE 或者 MBR 分区表中有多个项 , 也会拒绝对硬盘进行操作。
在使用 MBR/GPT 混合分区表的硬盘中 , 这部分存储了 GPT 分区表的一部分分区 ( 通常是前四个分区 ), 可以使不支持从 GPT 启动的操作系统从这个 MBR 启动 , 启动后只能操作 MBR 分区表中的分区。如 Boot Camp 就是使用这种方式启动 Windows。
分区表头 (LBA 1)
分区表头定义了硬盘的可用空间以及组成分区表的项的大小和数量。在使用 64 位 Windows Server 2003 的机器上 , 最多可以创建 128 个分区 , 即分区表中保留了 128 个项 , 其中每个都是 128 字节。(EFI 标准要求分区表最小要有 16,384 字节 , 即 128 个分区项的大小 )
分区表头还记录了这块硬盘的 GUID, 记录了分区表头本身的位置和大小 ( 位置总是在 LBA 1) 以及备份分区表头和分区表的位置和大小 ( 在硬盘的最后 )。它还储存着它本身和分区表的 CRC32 校验。固件、引导程序和操作系统在启动时可以根据这个校验值来判断分区表是否出错 , 如果出错了 , 可以使用软件从硬盘最后的备份 GPT 中恢复整个分区表 , 如果备份 GPT 也校验错误 , 硬盘将不可使用。所以 GPT 硬盘的分区表不可以直接使用 16 进制编辑器修改。
分区表头的格式如下

GPT 概述

主分区表和备份分区表的头分别位于硬盘的第二个扇区 (LBA 1) 以及硬盘的最后一个扇区。备份分区表头中的信息是关于备份分区表的。

分区表项 (LBA 2–33)
GPT 分区表使用简单而直接的方式表示分区。一个分区表项的前 16 字节是分区类型 GUID。例如 ,EFI 系统分区的 GUID 类型是{C12A7328- F81F-11D2-BA4B-00A0C93EC93B}。接下来的 16 字节是该分区唯一的 GUID( 这个 GUID 指的是该分区本身 , 而之前的 GUID 指的是该分区的类型 )。再接下来是分区起始和末尾的 64 位 LBA 编号 , 以及分区的名字和属性。
GPT 分区表项的格式如下

GPT 概述

原文链接:https://blog.csdn.net/hbcbgcx/article/details/89397362

正文完
 
不知道
版权声明:本站原创文章,由 不知道 2023-07-10发表,共计2065字。
转载说明:声明:本站内容均来自互联网,归原创作者所有,如有侵权必删除。 本站文章皆由CC-4.0协议发布,如无来源则为原创,转载请注明出处。