设为首页 收藏本站
查看: 2152|回复: 0

[经验分享] Windows GPT磁盘GUID结构详解

[复制链接]

尚未签到

发表于 2018-6-18 16:27:59 | 显示全部楼层 |阅读模式
  前一篇 Windows磁盘MBR结构详解 中我们介绍了Basic Disk中的Master Boot Record结构。GPT Disk作为Windows 2003以后引入的分区结构。使用了GUID分区表结构,它与MBR相比好处是支持更大和更多的分区,提高容错。本文介绍了GUID分区表的结构和各个字段的含义。
  GPT Disk 的Protective MBR:

  GPT Disk的结构中,第一个LBA位置(LBA 0)存放的是Protective MBR,随后LBA1的位置才是GPT的GUID分区表头。Protective MBR的作用是为了兼容性考虑,阻止一些遗留的MBR磁盘工具破坏GUID分区表。这种在LBA 0的位置存放Protective MBR的结构是基于Extensible Firmware Interface(EFI)规格。Protective MBR和MBR拥有同样的结构,同时还包括一条包含值为0xEE的System>
DSC0000.jpg

  Globally Unique>
  如下图所示,组成GPT Disk的GUID记录有以下几种:
DSC0001.jpg

  GUID Partition Table Header: GPT Header定义了分区记录所用到的Logical Block Address的区域。同时还定义了分区在磁盘上的位置、它自身的GUID、以及一组CRC32的校验值。Primary GPT Header位于磁盘的LBA1位置,紧跟着Protective MBR。Backup GPT Header位于磁盘最后一个磁道之上。下图是GPT Header中包含几个字段:
DSC0002.jpg


  •   首位0x00是为长度8个字节的签名档,这个值必须为固定值,用来定义EFI的兼容性。

  •   0x08开始有四组长度为4个字节的字段,Revision标注EFI规格的版本信息、Header>
  •   随后0x18开始是5个长度为8个字节的字段和一个长度为16字节字段,Primary LBA记录了Primary GPT Head的位置、Backup LBA记录Backup GPT Header的位置、First Usable LBA记录了第一个分区的起始位置,例如64位的Windows Server 2003,它的起始位置是34、Last Usable LBA记录的分区结束的位置。Disk GUID长度为16个字节,用来标识分区表头和磁盘、 Partition Entry LBA记录GUID分区记录的位置,固定为LBA2。
  •   从0x50开始为3个长度为4字节的记录,Number of Partition Entries记录最大的磁盘分区数,例如64位的Windows Server是128个、Size of Partition Entry记录了每个GUID分区记录大小,它的值为128字节、Partition Entry Array CRC32记录一组分区记录的校验值。
  •   最后从0x5C位置开始长度为420字节的预留空间,值都为0。
  GUID Partition Entry Array:类似MBR中的分区表,GUID partition entry array中包含了磁盘上每个分区的记录。比如64位的Windows Server 2003创建了一个Array值为16384字节,则第一个可用的数据大于等于LBA34. GUID Partition Entry Array也在分区最后存在一个副本,位置是在最后一个可用的LBA之后,GUID Partition table header之前。

  GUID Partition Entry: GUID Partition Entry长度为128个字节,用来定义单个分区结构。每个GUID Partition entry从Partition Type记录开始。长度为16个字节的Partition Type GUID,类似MBR磁盘分区表中的System>  第一部分{45464920-5041-5254-0000-01005C000000}为EFI System分区、中间部分{16E3C9E3–5C0B–B84D–817D–F92DF00215AE}为Microsoft Reserved分区,最下面的一个{A2A0D0EB–E5B9–3344–87C0–68B6B72699C7}是Windows Basic Disk中的一个主分区。
DSC0003.jpg

DSC0004.jpg

  在每个部分的中间位置主要记录了一些字段。Partition Type GUID之后的0x10位置开始,是一个长度为16字节的Unique Partition GUID记录用来标识每条记录的唯一性。0x20开始为3个长度为8个字节的字段,Starting LBA和Ending LBA分别记录了分区的起始和结束的位置、Attribute Bit描述了分区是如何使用的,例如是否为隐藏和只读等等、最后0x38开始的72个字节字段用来Unicode的分区的名字,名字最长为36个字符。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-525559-1-1.html 上篇帖子: Windows磁盘MBR结构详解 下篇帖子: 如何删除已安装的Windows服务
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表