博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
GPT分区体系
阅读量:6887 次
发布时间:2019-06-27

本文共 2826 字,大约阅读时间需要 9 分钟。

GPT
,即
GUID Partition Table
GUID 
分区表,
GPT
)的简写形式,它是
Windows Server 2003 
中的一种新型磁盘架构,是
一种由基于  Itanium 
计算机中的可扩展固件接口  (EFI*) 
使用的磁盘分区架构。这种
64
位的
Itanium 
Windows
系统采用的磁盘布局架构,与传统的
32
位磁盘完全不同。
与主启动记录  (MBR) 
分区方法相比, GPT 
具有更多的优点:
u         
它允许每个磁盘有多达 128 
个分区(MBR
磁盘最多只能有4
个主分区,或者3
个主分区加一个扩展分区和无限制的逻辑驱动器)。
u         
支持高达 18 
千兆兆字节(EB
exabytes
)的卷大小(MBR
磁盘支持的最大卷为2TB
)。
u         
允许将主磁盘分区表和备份磁盘分区表用于冗余。
u         
支持唯一的磁盘和分区 ID (GUID)
u         
性能更加稳定。
 
...
 

  GPT磁盘总体布局

可以在运行带有 Service Pack 1 (SP1) 
 Windows Server 2003
的磁盘管理中进行
MBR
GPT
磁盘的相互转换,然后进行相应的分区操作。也
可以使用  DiskPart.exe 
命令行实用程序或  EFI 
固件实用程序  Diskpart.efi 
在基本  GPT 
磁盘上创建分区。
一个转换为 GPT
并建立分区后的磁盘,总体布局如图 2.37
所示。
 
2.37  GPT
磁盘总体布局
我们可以看到,一个 GPT
磁盘可以分为两大部分:保护 MBR
EFI
部分。
1
)第一部分只由 0
号扇区组成,在这个扇区中包含一个 DOS
分区表,分区表内只有一个表项,这个表项描述了一个类型值为 0xEE
的分区,大小为整个磁盘(如图 2.38
所示)。这个分区的存在可以使计算机认为这个磁盘是合法的,并且已被使用,从而不再试图对其进行格式化等操作,所以该扇区又被称为“保护 MBR
”。实际上, EFI
根本不使用这个分区表。
 
2.38  GPT
磁盘的
0
号扇区
2
)另一部分为 EFI
部分, EFI
部分又可以分为 4
个区域: EFI
信息区 (
又称为 GPT
)
部分、分区表部分、 GPT
分区部分和备份区域。
u         EFI
信息区,也称为GPT
头,起始于磁盘的1
号扇区,通常只占用这一个扇区。GPT
磁盘创建后,由GPT
头定义分区表的位置和大小。Windows
限定分区表项为128
个。GPT
头还包含头和分区表的校验和,这样就可以及时发现错误或者改变。
u         
分区表区域包含分区表项。这个区域由GPT
头定义,一般占用磁盘2
33
号扇区。分区表中的每个表项由起始和结束地址、类型值、名字、属性标志和GUID
值组成。分区表建立后,128
位的GUID
对系统来说是唯一的。
u         
分区部分是最大的区域,由分配给分区的扇区组成。这个区域的起始和结束地址由GPT
头定义。
u         
备份区域位于磁盘的尾部,包含GPT
头和分区表的备份。它占用GPT
结束扇区和EFI
结束扇区之间的33
个扇区。其中最后一个扇区用来备份1
号扇区的EFI
信息,其余的32
个扇区用来备份2
33
号扇区的分区表。
 

数据结构

1.  EFI
信息扇区数据结构
EFI
信息扇区位于磁盘的 1
号扇区,也称为 GPT
头。 GPT
磁盘创建后,由 GPT
头定义分区表的位置和大小, Windows
限定分区表项为 128
个。 GPT
头还包含头和分区表的校验和。 EFI
信息扇区的结构如表 2.21
所示。
2.21  EFI
信息扇区结构
相对字节偏移
(
十六进制
)
字节数
说明
00
07
8
签名
(ASCII
码“
EFI PART
08
0B
4
版本
0C
0F
4
GPT
头大小字节数
10
13
4
GPT
CRC
校验和
14
17
4
保留
18
1F
8
当前
GPT
头的
LBA
扇区号,也即为
EFI
区域起始扇区号
20
27
8
GPT
头备份
LBA
扇区号,也即为
EFI
区域结束扇区号
28
2F
8
GPT
分区区域起始
LBA
30
37
8
GPT
分区区域结束
LBA
38
47
12
磁盘
GUID
48
4F
8
GPT
分区表起始
LBA
50
53
4
分区表项数
54
57
4
每分区表项占用字节数
58
5B
4
分区表
CRC
校验和
5C
1FF
366
保留
通过这些结构中的描述值,我们可以确定 GPT
头、分区表、 GPT
分区区域、分区表的备份位置等结构布局。图 2.39
显示了一个 GPT
头的实例。
 
 
2.39  GPT
具体分析如下:
1)    0x00
0x07
8
个字节, GPT
头签名“ 4546492050415254
”, ASCII
码为“ EFI  PART
”。
2)    0x08
0x0B
4
个字节,版本号。
3)    0x0C
0x0F
:4个字节, GPT
头大小字节数,此处的值为 0x5C
,即92个字节。
4)    0x10
0x13
:4个字节, GPT
头校验和。
5)    0x14
0x17
:4个字节,保留。
6)    0x18
0x1F
:8个字节,当前 GPT
头的 LBA
扇区号,即 EFI
区域起始扇区号,通常为1。
7)    0x20
0x27
 8
个字节, GPT
头备份位置的 LBA
扇区号,即 EFI
区域结束扇区号,此处的值为 224909
0x086E8D
)。
8)    0x28
0x2F
:8个字节, GPT
分区区域起始 LBA
扇区号,此处的值为 34
0x22
)。
9)    0x30
0x37
:8个字节, GPT
分区区域结束 LBA
扇区号,此处的值为 224876
0x036E6C
)。
10)0x38
0x47
16
个字节,磁盘 GUID
11)0x48
0x4F
:8个字节, GPT
分区表起始 LBA
扇区号,此处的值为 2
0x02
),通常都是起始于 2
号扇区。
12)0x50
0x53
4
个字节,分区表项数,限定为 128
0x80
)。
13)0x54
0x57
4
个字节,每分区表项占用字节数,固定为 128
0x80
)。
14)0x58
0x5B
4
个字节,分区表 CRC
校验和。
15)0x5C
0x1FF
420
个字节,保留。
本文转自老骥伏枥51CTO博客,原文链接:
http://blog.51cto.com/sjhfml/129146
 ,如需转载请自行联系原作者
你可能感兴趣的文章
磁盘格式化 ,磁盘挂载, 手动增加swap空间
查看>>
【Windows编程】系列第十一篇:多文档界面框架
查看>>
Spring-framework @Autowired注入bean 为null之谜
查看>>
C#取得时间的方法
查看>>
大家乐一下,纯属娱乐, 缓解压力
查看>>
PHP
查看>>
解决iOS因为网络卡顿点击button或者cell多次push的bug
查看>>
iOS-应用跳转
查看>>
怎么使用Vin码识别sdk/车架号识别sdk?
查看>>
实现许多图片编辑软件都支持的“填充颜色”功能
查看>>
鼠标点击后,所有div掉下来
查看>>
限定某个目录禁止解析php、限制user_agent、PHP相关配置
查看>>
IDEA查看类的继承关系
查看>>
js选项卡功能3
查看>>
Redis 连接
查看>>
威胁快报|Nexus Repository Manager 3新漏洞已被用于挖矿木马传播,建议用户尽快修复...
查看>>
关于redis,学会这8点就够了
查看>>
阿里小二的日常工作要被TA们“接管”了!
查看>>
权限框架Shiro学习之表结构设计
查看>>
Nginx 服务器之速率限制
查看>>