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无法安装到这个磁盘,选中的磁盘具 ...
随机推荐
- sql 表的连接与查找
A.left outer join: 左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行. SQL: select a.a, a.b, a.c, b.c, b.d, b.f fro ...
- asp.net编程基础
vs常用两个快捷键:打开即时窗口 ctrl+alt+i : 快速代码格式排版:ctrl+k+d 一:Page:页面 Page.IsPostBack 判断页面是否第一次加载用 if(Page.IsPo ...
- springboot(3):整合Servlet,filter,listener
1.springboot整合Servlet(2种方式) 添加maven依赖:spring-boot-starter-web 1>通过注解扫描完成Servlet组件的注册(方式1) 步骤:需要3步 ...
- nmcli简单使用
nmcli connection 查看所有网卡信息 nmcli connection show ens33 查看网卡具体信息 nmcli connection reload 是配置文件生效
- python 之 数据库(视图、触发器、事务、存储过程)
10.13 视图 1.什么是视图 视图就是通过查询得到一张虚拟表,然后保存下来,下次用的直接使用即可 2.为什么要用视图 如果要频繁使用一张虚拟表,可以不用重复查询 3.如何使用视图 视图记录的增.删 ...
- go 错误
错误 Go 程序使用 error 值来表示错误状态. 与 fmt.Stringer 类似,`error` 类型是一个内建接口: type error interface { Error() strin ...
- vagrant root 登录虚拟机
这个问题本来觉得是个特别简单的问题,昨天弄的时候折腾了半晚上.所以打算记录下过程,主要也被网上的各种信息误导了. 1 先看下我这vagrant配置信息 Vagrant.configure(" ...
- NodeJS的环境搭建+传统ELmentui+vue开发
ElementUI简介 我们学习VUE,知道它的核心思想式组件和数据驱动,但是每一个组件都需要自己编写模板,样式,添加事件,数据等是非常麻烦的, 所以饿了吗推出了基于VUE2.0的组件库,它的名称叫做 ...
- docker 宿主机与容器直接文件移动命令
1.将容器中的文件复制到宿主机 我们把容器中的 nginx 目录整个复制到 宿主机/usr/local/nginx 目录下,使用如下命令: docker cp nginx_test: /etc/ng ...
- windows下安装phpredis扩展
根据phpyinfo获取自己的php信息 x86,php5.6,TS,VC11 在pecl网站上找到对应的版本 5.6 Thread Safe (TS) x86 https://pecl.php.ne ...