GPT分区格式
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”。

3.2 GPT表头
GPT表头内容如下:

3.3 GPT表项
GPT表项内容:

参考链接
[1] 维基百科.全局唯一标识分区表
GPT分区格式的更多相关文章
- parted命令采用gpt分区过程
Gpt无分区限制,故只有主分区,无扩展分区和逻辑分区.分区直接按容量算,不按柱面算. 查看分区:parted -l 将分区表类型转换为gpt.: 主要命令mklabel gpt 对sdc盘分区: [r ...
- windows无法安装到这个磁盘。选中的磁盘采用GPT分区形式 Windows 检测到 EFI 系统分区格式化为 NTFS。将 EFI 系统分区个数化为 FAT32,然后重新启动安装
win10安装问题解决 问题 1.windows无法安装到这个磁盘.选中的磁盘采用GPT分区形式 解决方法: 1.bios,更改 uefi/legacy boot 为ueei only 后面可以安装了 ...
- UEFI引导在GPT分区下安装win2008——抓住那只傲娇的win2008
上周遇到个客户DELL R520的服务器新采购了8块3T硬盘做备份服务器,raid配置5+1,一个磁21.8T.先用普通的装desktop OS的方法发现进去没raid盘,然后就按照官方的文档进入Li ...
- Windows无法安装到GPT分区形式磁盘的解决办法
现在很多新买的硬盘都是GTP格式,这种格式需要使用UEFI BIOS模式安装系统,我们以前传统的windows系统安装都是“MBR+legacy BIOS”模式安装 Windows无法安装到GPT分区 ...
- GPT分区基础知识
大硬盘和WIN8系统,让我们从传统的BIOS+MBR模式升级到UEFI+GPT模式,现在购买的电脑,都是预装WIN8系统,为了更好的支持2TB硬盘,更快速的启动win8,预装系统都采取了GPT分区的格 ...
- 解决装系统选中的磁盘采用的是GPT分区形式
今天给服务器重装系统碰到的问题,记录一下 当时是按正常的操作:到了装系统选盘的时候是找不到盘符的,加载了raid驱动,然后顺利找到盘符,然后格式化了以前的C盘, 结果无法选中格式化后的C盘,无法下一步 ...
- GPT分区基础知识及如何在GPT分区上安装WIN7
大硬盘和WIN8系统,让我们从传统的BIOS+MBR模式升级到UEFI+GPT模式,现在购买的主流电脑,都是预装WIN8系统,为了更好的支持2TB硬盘,更快速的启动win8,预装系统都采取了GPT分区 ...
- linux大于2T的磁盘使用GPT分区方式
MBR(Master Boot Record)(主引导记录)和GPT(GUID Partition Table)(GUID意为全局唯一标识符)是在磁盘上存储分区信息的两种不同方式 对于传统的MBR分区 ...
- 重装系统时,将MBR分区转为GPT 分区
摘要 很多同学在重装系统的时候,或多或少都遇到过这样的问题:镜像文件没有问题,软碟通刻录也没有问题,但偏偏就在选择安装系统盘盘符的时候,跳出对话框,提示:Windows无法安装到这个磁盘,选中的磁盘具 ...
随机推荐
- Yii2打印原始sql语句
$query = User::find() ->where(['id'=>[1,2,3,4]) ->select(['username']) // get the AR raw sq ...
- 《MySQL必知必会》学习笔记——第30章 改善性能
本章将付息与MySQL性能有关的某些要点. 30.1 改善性能 数据库管理员把他们生命中的相当一部分时间花在了调整.试验以改善DBMS性能之上.在诊断英勇的滞缓现象和性能问题时,性能不良的数据库(以及 ...
- WEUI switch 如何取值?
let id = $(this).attr("id"); let name = $(this).attr("data-name"); HTML: <div ...
- 【C/C++开发】值得学习的C语言开源项目
值得学习的C语言开源项目 - 1. Webbench Webbench是一个在Linux下使用的非常简单的网站压测工具.它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的 ...
- C++ 三大特性 继承(转载)
继承 继承:类的继承,就是新的类从已有类那里得到已有的特性.原有的类称为基类或父类,产生的新类称为派生类或子类. 基本语法 派生类的声明: class 派生类名:继承方式 基类名1, 继承方式 基类名 ...
- solr查询返回有中括号【可用】
看图 解决方法: 两个core名称一样就对了 有些版本的solr就是schema.xml文件 这个方法好像不行,再找找看,先记录一下 2019-06-29 改完上面后要重启加载一下core 先看一下
- 浅谈PHP随机数安全的分析
之前在身边有很多学PHP的朋友写一些小程序的时候,很多时候会使用PHP随机数函数rand()和mt_rand()函数去生成随机数 可是,随机数真的随机吗?这篇文章讲从多个实例中探讨随机数,当然,有写作 ...
- ACL 实验
一.环境准备 1. 软件:GNS3 2. 路由:c7200 二.实验操作 实验要求: 1. 掌握标准 ACL.扩展 ACL 的配置方法. 2. 掌握命名 ACL 的配置方法. 3. 掌握访问控制列表配 ...
- ucore 源码剖析
lab1 源码剖析 从实模式到保护模式 初始化ds,es和ss等段寄存器为0 使能A20门,其中seta20.1写数据到0x64端口,表示要写数据给8042芯片的Output Port;seta20. ...
- Mybatis笔记1
Mybatis 持久层框架,数据访问层 mybatis是一个优秀的基于java的持久层框架,它内部封装了jdbc,使开发者只需要关注sql语句本身,而不需要花费精力去处理加载驱动,创建连接,创建sta ...