分享

GPT分区体系

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

  GPT磁盘总体布局

可以在运行带有Service Pack 1 (SP1) Windows Server 2003的磁盘管理中进行MBRGPT磁盘的相互转换,然后进行相应的分区操作。也可以使用 DiskPart.exe 命令行实用程序或 EFI 固件实用程序 Diskpart.efi 在基本 GPT 磁盘上创建分区。
一个转换为GPT并建立分区后的磁盘,总体布局如图2.37所示。
2.37  GPT磁盘总体布局
我们可以看到,一个GPT磁盘可以分为两大部分:保护MBREFI部分。
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头定义,一般占用磁盘233号扇区。分区表中的每个表项由起始和结束地址、类型值、名字、属性标志和GUID值组成。分区表建立后,128位的GUID对系统来说是唯一的。
u         分区部分是最大的区域,由分配给分区的扇区组成。这个区域的起始和结束地址由GPT头定义。
u         备份区域位于磁盘的尾部,包含GPT头和分区表的备份。它占用GPT结束扇区和EFI结束扇区之间的33个扇区。其中最后一个扇区用来备份1号扇区的EFI信息,其余的32个扇区用来备份233号扇区的分区表。

数据结构

1.  EFI信息扇区数据结构
EFI信息扇区位于磁盘的1号扇区,也称为GPT头。GPT磁盘创建后,由GPT头定义分区表的位置和大小,Windows限定分区表项为128个。GPT头还包含头和分区表的校验和。EFI信息扇区的结构如表2.21所示。
2.21  EFI信息扇区结构
相对字节偏移
(十六进制)
字节数
说明
0007
8
签名(ASCII码“EFI PART
080B
4
版本
0C0F
4
GPT头大小字节数
1013
4
GPTCRC校验和
1417
4
保留
181F
8
当前GPT头的LBA扇区号,也即为EFI区域起始扇区号
2027
8
GPT头备份LBA扇区号,也即为EFI区域结束扇区号
282F
8
GPT分区区域起始LBA
3037
8
GPT分区区域结束LBA
3847
12
磁盘GUID
484F
8
GPT分区表起始LBA
5053
4
分区表项数
5457
4
每分区表项占用字节数
585B
4
分区表CRC校验和
5C1FF
366
保留
通过这些结构中的描述值,我们可以确定GPT头、分区表、GPT分区区域、分区表的备份位置等结构布局。图2.39显示了一个GPT头的实例。
2.39  GPT
具体分析如下:
1)    0x000x078个字节,GPT头签名“4546492050415254”,ASCII码为“EFI  PART”。
2)    0x080x0B4个字节,版本号。
3)    0x0C0x0F:4个字节,GPT头大小字节数,此处的值为0x5C,即92个字节。
4)    0x100x13:4个字节,GPT头校验和。
5)    0x140x17:4个字节,保留。
6)    0x180x1F:8个字节,当前GPT头的LBA扇区号,即EFI区域起始扇区号,通常为1。
7)    0x200x27 8个字节,GPT头备份位置的LBA扇区号,即EFI区域结束扇区号,此处的值为2249090x086E8D)。
8)    0x280x2F:8个字节,GPT分区区域起始LBA扇区号,此处的值为340x22)。
9)    0x300x37:8个字节,GPT分区区域结束LBA扇区号,此处的值为2248760x036E6C)。
10)0x380x4716个字节,磁盘GUID
11)0x480x4F:8个字节,GPT分区表起始LBA扇区号,此处的值为20x02),通常都是起始于2号扇区。
12)0x500x534个字节,分区表项数,限定为1280x80)。
13)0x540x574个字节,每分区表项占用字节数,固定为1280x80)。
14)0x580x5B4个字节,分区表CRC校验和。
15)0x5C0x1FF420个字节,保留。

原文:
http://sjhfml.blog.51cto.com/656700/129146/
如有侵权,敬请告知,谢谢

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多