之前讲过,磁盘的分区方式有两种,MBR和GPT。MBR方式通过在启动扇区的分区表中记录分区的开始和结束位置来管理分区,由于分区表最多包含4项,且采用32位数据来表示分区偏移和大小,造成的主分区的个数限制,以及分区大小的限制。现在,硬盘容量越来越大,也变得廉价的多,为了管理超过2TB的大硬盘和分区,显然基本MBR分区方式已经无法满足要求了,且MBR分区方式无法满足UEFI主板系统的要求。

GPT,即GUID分区表,顾名思义,即使用GUID来表示每个分区,GPT磁盘用唯一的GUID来表示,磁盘分区使用唯一的分区GUID来表示。GPT分区表中,每个分区表项使用128字节,其中包括分区的GUID,分区的偏移、大小,分区的名称、类型等,并且所有这些信息只占用了92个字节,所以分区表项还保留了对未来的兼容性。GPT分区表项使用64位8字节数表示分区的偏移、大小,支持18千兆兆字节的分区大小,这已经远远超过我们现在的磁盘和分区容量了。

为了兼容不支持GPT磁盘的操作系统,GPT分区格式保留了磁盘第一个扇区MBR的使用,并且也填写MBR的第一个分区表项,这个扇区又被称为保护MBR,而实际上EFI根本不使用这个分区表。在第一个分区表项中,分区开始扇区为1,分区大小扇区数为FFFFFFFF,分区类型为0xEE,它的目的是使计算机认为这个磁盘是合法的,并且已经被划分了分区,从而使系统不再试图重新初始化或格式化磁盘。

真正的GPT区域从硬盘的第二个扇区即1号扇区开始,主要包括GPT头、分区表、GPT分区、分区表备份、GPT头备份这几个部分。GPT磁盘布局如下图所示。

GPT头:也称为EFI信息区,从硬盘1号扇区开始,占用1个扇区的空间,其中记录了磁盘的GUID,当前GPT头的位置和GPT头备份的位置,分区表的开始扇区、分区表项的个数以及每个分区表项的大小,GPT头校验和,GPT分区表校验和等。GPT结构如下图所示:

分区表:分区表一般从2号扇区开始,占用32个扇区,即从GPT头之后一个扇区开始。理论上,GPT磁盘上可以创建任意多个主分区,但是由于在初始化GPT磁盘上,只给GPT分区表保留了32个扇区,且每个分区表项128个字节,所以最多也只能创建128个分区,而128个分区也就足够了。分区表项中包含分区的开始、结束位置,类型GUID,分区GUID,名字,属性标志等内容。分区表项结构如下图所示。

GPT分区:GPT分区有不同的分区类型,每种类型都在分区表项中使用类型GUID来标识,主要包括微软保留分区、OEM保留分区、LDM元数据分区、LDM数据分区、EFI系统分区、主分区。Windows使用保留分区来存放临时文件、配置数据,以及保留兼容性,或者其他用途。LDM元数据分区、LDM数据分区用户动态GPT磁盘,元数据分区即LDM数据库,包含动态磁盘和动态卷的配置信息,LDM数据分区包含所有动态卷,用来划分数据卷。EFI系统分区中存在系统引导文件,类似于MBR磁盘的活动分区。主分区是普通的数据分区,也是唯一一种普通用户能够在我的电脑里看见的分区。这几种分区的类型ID如下图所示。

转载于:https://blog.51cto.com/jslmes/1323925

Windows基本磁盘结构简析(四)——GPT磁盘相关推荐

  1. android 勿扰模式代码结构简析

    勿扰模式代码结构简析 标签: 勿扰模式 2017-08-08 11:05  60人阅读  评论(0)  收藏  举报   分类: android(59)  版权声明:本文为博主原创文章,未经博主允许不 ...

  2. 加密狗+AES算法在QT Windows下的加密简析例程

    目录 一. 前言 二. 相关知识 三.效果展示 四.加密解密流程 五.主要函数解析 六.源码/相关包 ​ 一. 前言 本例主要简析加密狗加密解密的过程,结合实体加密狗和AES加密算法,提供QT Win ...

  3. 计算机管理磁盘管理无法创建GPT,如何创建GPT磁盘|在电脑中建立GPT磁盘模式的方法...

    ‍ GPT是一种新型磁盘模式,与我们常用的MBR磁盘相比更稳定,自纠错能力更强,一块磁盘上主分区数量不受控制.我们的电脑想要快速开机,需要具备三个条件:第一是主板支持UEFI,二是系统支持UEFI,而 ...

  4. linux目录结构简析

    随着Linux的不断发展,越来越多的人开始使用Linux,对于那些刚刚接触的人来说,恐怕最先感到困惑的就是那些"不明不白"的目录了.如果想熟练使用Linux,让Linux听命于自己 ...

  5. Windows CE SDHC驱动简析(1)-驱动架构(基于WinCE5.0 SMDK2410 BSP的SDHC驱动)

    Windows CE的SD卡驱动包括总线驱动(bus driver),主控制器驱动(host controller driver)和客户端驱动(client driver). 总线驱动是客户端驱动和主 ...

  6. Windows CE串口驱动简析(2)-PDD层实现:CReg2410Uart和TX部分(基于WinCE5.0 SMDK2410 BSP的Serial驱动)

    二.PDD层 1.PDD架构 现在我们就来看看SMDK2410中串口驱动的PDD部分. MDD层和PDD COMMON层都是由微软提供的,一般情况下我们基本无须改动.微软为开发者提供了一个CSeria ...

  7. Neo4j存储结构简析

    Neo4j将边也作为数据库的"一等公民",将属性图的顶点.边.标签和属性被分开存储在不同文件中. 正是这种将图结构与图上标签 和属性分开存储的策略,使得 Neo4j 具有高效率的图 ...

  8. 勿扰模式代码结构简析

    勿扰模式是Android 7.0开始加入的功能.它的核心思想是屏蔽了通知的铃声.振动和展示. 代码分散在几部分. 1.设置代码在Settings中,ZenMode开头的一系列文件 /packages/ ...

  9. android 勿扰模式代码,勿扰模式代码结构简析

    勿扰模式是Android 7.0开始加入的功能.它的核心思想是屏蔽了通知的铃声.振动和展示. 代码分散在几部分. 1.设置代码在Settings中,ZenMode开头的一系列文件 /packages/ ...

最新文章

  1. RPC远程调用通俗理解
  2. 数据预处理(完整步骤)
  3. 顺序Guass消去法求解线性方程组的代码实现
  4. NSOperation的使用细节 [3]
  5. 运用Links方法安装插件
  6. 服务 23 年,苹果宣布停止 macOS Server
  7. android debug bridge tools_飞凌干货丨Android 应用程序如何获取system权限
  8. 阿里开发者们的第15个感悟:做一款优秀大数据引擎,要找准重点解决的业务场景...
  9. linux系统修改自动启动项,linux修改启动项
  10. DEA博弈交叉效率matlab,基于博弈交叉效率DEA模型的服务模块化创新绩效测量—以江西省文化创意产业为例...
  11. Java多线程实现多用户与服务端Socket通信
  12. AXI总线,AXI_BRAM读写仿真测试
  13. php编写解一元一次方程,一元一次方程及解法
  14. 知乎热议国家何时整治程序员的高薪现象,网友:用命和头发换的钱都被人眼红...
  15. 致敬达叔 -- 80、90的童年观影记忆
  16. 利用CH341A编程器刷新BIOS,恢复BIOS,妈妈再也不用担心BIOS刷坏了
  17. 深度Linux的安装
  18. mac电脑用计算机名共享打印机,MAC与Windows7共享打印机的设置方法
  19. 深入分析 Uniswap V3 流动性供应的数学原理
  20. ARX项目lib依赖默认使用情况分析

热门文章

  1. c语言运行模拟器在线,C语言战争模拟器.doc
  2. php的gms框架教学,GMS-全面+经典教程.doc
  3. Python 循环器(iterator)的功能
  4. 【纯干货】用Python写30种小游戏给男朋友玩,谈恋爱我是认真的
  5. 百度Map-手机版加减号显示不出来-1.1
  6. Java详细学习路线及路线图(2020最新版) | Java工程师成神之路 | Java最全学习路线
  7. 微淘对与桃宝商家的作用,微淘实操运营
  8. JAVA毕业设计MVC土特产交易平台系统计算机源码+lw文档+系统+调试部署+数据库
  9. 职场达人-新员工入职六大注意事项
  10. java读取word中的英语音标(Kingsoft Phonetic Plain字体的)