介绍 EFI 技术,对比老旧 BIOS 的短板,说明 EFI 的硬件管理、操作界面、分区革新等优势,同时提及 EFI 的组成、运行流程与安全修复方式。再阐述 GPT 分区的各项特性,涵盖系统适配、超大容量支持、分区数量限制、启动条件及磁盘转换、复制注意事项。最后详细解析 GPT 磁盘底层结构,包括保护 MBR、GPT 头部、分区表、数据分区区域与备份 GPT 头的布局和功能原理。
一、GPT磁盘分区基本介绍
GPT是GUID Partition Table 的缩写,其含义为"全局唯一标识磁盘分区表",GUID就是"全局唯一标识(Globally Unique Identifier)"。
GUID分区表(GPT)是作为Extensible Firmware Interface(EFI)计划的一部分引入的,先了解一下EFI。
工具下载:
百度网盘链接: https://pan.baidu.com/s/1QM5FKMmRVHaMQOUAgRGGMQ?pwd=8888 提取码: 8888
夸克网盘链接:https://pan.quark.cn/s/2a972c406ea3?pwd=dTeZ 提取码:dTe
1、EFI简介
Extensible Firmware Interface简称EFI,其含义为"可拓展固件接口",是由Intel公司推出的一种在计算机操作系统中替代BIOS的升级方案。
BIOS的全称是Basic Input/Output System,中文名是基本输入/输出系统。BIOS是操作系统和计算机硬件之间通信的桥梁,BIOS技术的兴起源于IBM PC/AT机器的流行及第一台由康柏公司研究生产的"克隆"PC。康柏公司当年为了简化启动的设置,引入了固化程序的概念,在启动时负责讲PC初始化,然后再将控制权交给磁盘上的操作系统,就这样,BIOS沿用至今。
随着处理器研发技术的不断发展,CPU已经从32位时代进入到64位时代,而BIOS技术依然停留在16位汇编代码,寄存器参数调用的工作方式,Intel公司认为BIOS技术发展缓慢,所以在其基于64位的安腾处理器(Inanium)平台推出了EFI技术。
EFI在开机时的作用和BIOS一样,就是初始化PC,但在细节上却不一样,BIOS对PC的初始化,只是按照一定的顺序对硬件加电,简单地检查硬件是否能工作,而EFI不但检查硬件的完好性,还会自行加载硬件驱动,独立管理硬件;操作系统无需底层硬件初始化。
另外EFI的最革命之处,是颠覆了BIOS的界面概念,让操作界面和Windows一样易于上手。在EFI的操作界面中,鼠标成为了替代键盘的输入工具,各功能调节的模块也做的和Windows程序一样,可以说,EFI就是一个小型化的Windows操作系统。
EFI 系统分区(ESP),存储空间约几十 MB 到几百 MB;UEFI 固件本身仅数 MB,存放于主板闪存。具体视驱动文件多少而定。在这部分空间中,包含以下几个部分:① Pre-EFI 初始化模块;② EFI 驱动执行环境;③ EFI 驱动程序;④ 兼容性支持模块(CSM);⑤ EFI 高层应用;⑥ GUID 磁盘分区。
在实际应用中,Pre-EFI 初始化模块固化在主板只读存储器中,EFI 驱动执行环境运行于内存,可加载外部驱动。Pre-EFI 初始化程序在系统开机的时候最先得到执行,它负责最初的 CPU、北桥、南桥、内存和硬盘的初始化工作,紧接着载入 EFI 驱动。当 EFI 驱动程序被载入运行后,系统便具有控制所有硬件的能力。
在 EFI 规范中,一种突破传统 MBR 磁盘分区结构限制的 GUID 磁盘分区系统(GPT)被引入。新结构中,磁盘的分区数不再受限制(在 MBR 结构下,只能存在 4 个主磁盘分区),并且分区类型将由 GUID 来表示。在众多的分区类型中,EFI 系统分区可以被 EFI 系统存取,用于存放部分驱动和应用程序。兼容性支持模块(CSM)是在 x86 平台 EFI 系统中的一个特殊的模块,它将为不具备 EFI 引导能力的操作系统提供类似于传统 BIOS 的系统服务。
也许有人担心 EFI 这种开放的模式会导致新的安全隐患。因为 EFI 系统比传统的 BIOS 更易于受到计算机病毒的攻击,当一部分 EFI 驱动程序被破坏时,系统有可能面临无法引导的情况。实际上,系统引导所依赖的 EFI 驱动部分通常都不会存放在 EFI 的 GUID 分区中。即使分区中的驱动程序遭到破坏,也可以用简单的方法得到恢复,因为只读芯片中的 EFI 代码足够用来引导计算机从光驱启动,此时插入 EFI 的安装盘,对 EFI 的系统存储区域进行修复或者覆盖安装,就能将 PC 恢复到正常。而且这个修复过程对操作系统来说,等于是从两台配置一模一样计算机中的一台转移到另一台,并不会出现需要重新识别硬件的情况。EFI 在概念上非常类似于一个低等级的操作系统,并且具有操控所有硬件资源的能力。
2. GPT 磁盘分区的基本特点
虽然 GPT 来自于 EFI 计划,但并不依赖于 EFI,GPT 主要有如下特点:
① 目前能够支持 GPT 磁盘分区的操作系统有Windows Server 2003(64 位)、Windows Server 2003 SP1(所有版本)、Vista、Windows Server 2008、Mac OS X、部分版本的 UNIX 和 Linux、Windows XP、Windows Server 2003、Windows 2000 及以下操作系统不能支持 GPT 磁盘分区。
② 理论上,GPT 磁盘在长度上最大可达二的六十四次方个逻辑块,传统磁盘逻辑块为 512 字节,现代硬盘普遍采用 4K(4096 字节)扇区,最大分区(磁盘)容量受操作系统版本的影响。Windows XP 和 Windows Server 2003 的原始版本中,每个物理磁盘的最大容量为 2TB,包括所有分区。对于 Windows Server 2003 SP1 Windows XP x64 版本和以后的版本,支持的最大原始分区为 18EB。
③ EFI 规范对分区数量几乎没有限制,但是 Windows 实现限制的分区数量为 128 个。GPT 中的分区条目的保留空间大小会限制分区数量。
④ Microsoft Windows XP x64 版本、Windows Server 2003(64 位)、Windows Server 2003 SP1(所有版本)、Vista、Windows Server 2008 等操作系统只能在 GPT 磁盘分区上进行数据操作,Vista X64、Win7/10/11、Server2008 及以上 搭配 UEFI 固件,均可从 GPT 磁盘启动,不再局限于安腾 (Itanium) 平台。
⑤ GPT 和 MBR 结构可以在支持 GPT 的系统上混合使用,但支持 EFI 的系统要求启动分区必须位于 GPT 磁盘上,另一个硬盘可以是 MBR,也可以是 GPT。
⑥ 不建议整盘扇区对拷 GPT 磁盘,会造成磁盘 GUID、分区 GUID 重复,导致系统识别异常。因为这将导致磁盘和分区 GUID 不再是唯一的,不过可以针对 GPT 磁盘中的基本数据分区进行扇区到扇区的复制。
⑦ 在系统支持的情况下可以将 MBR 磁盘转换为 GPT 磁盘,但是GPT 转 MBR 必须删除全部分区、清空数据后才能转换。
二、GPT磁盘分区的结构原理

1、保护MBR
保护MBR位于GPT磁盘的第一个扇区,包含引导代码、磁盘签名、仅 1 个 0xEE 保护分区表项、55AA 结束标志,如图

在保护MBR扇区中没有引导程序,分区表内只有一个表项,这个表项描述一个类型在0xEE的分区,0xEE 保护分区起始为 LBA1,标记占用整块磁盘,防止旧 MBR 工具误格式化,而EFI根本不使用这个分区表。
2、GPT头
GPT 主头固定位于 LBA 1(默认 512 字节扇区下为第二个扇区),该扇区是在创建GPT磁盘时生成的,GPT头会定义分区的起始位置、分区表的结束位置、每个分区表项的大小、分区表项的个数及分区表的检验和等信息。如图是GPT头扇区

GPT头中各个参数的含义

3、分区表
Windows 默认 GPT 分区表占用 LBA2~LBA33,该数值由 GPT 头定义,并非 GPT 强制固定,一共占用32个扇区,能够容纳128个分区表项,每个分区表项大小为128字节。因为每个分区表项管理一个分区,所以Windows系统允许GPT磁盘创建128个分区。
每个分区表项中记录着分区的起始和结束地址、分区类型的GUID、分区名字、分区属性和分区GUID。如图是分区表项

分区表项中各参数的含义

4、分区区域
GPT分区区域通常都是起始于GPT磁盘的34号扇区,是整个GPT磁盘中最大的区域,Windows 默认数据区起始为 LBA34,实际起始位置由 GPT 头部参数规定。由多个具体分区组成,如EFI系统分区(ESP)、微软保留分区(MSR)、LDM元数据分区、LDM数据分区、OEM分区、主分区等。分区区域的起始地址和结束地址由GPT头定义。
5、GPT头备份
GPT头由一个备份,放在GPT磁盘的最后一个扇区,备份 GPT 头与主 GPT 头**结构、绝大部分参数完全一致。**仅两处不同:①当前 LBA 地址 ②备份 LBA 地址,其余全部相同。
