01
Number
一、UEFI 背景概述
UEFI(统一可扩展固件接口)的诞生背景,源于传统 BIOS(Basic Input/Output System)在以下方面的严重技术瓶颈:
1. BIOS 的局限性
传统 BIOS 源于 1981 年 IBM PC XT 时代,设计初衷是简化开机和操作系统加载,但它在现代环境下暴露出诸多限制:
局限点描述16 位实模式处理器在 BIOS 启动时仍在 16 位模式,受限于 1MB 地址空间,影响启动效率和功能扩展不能识别大硬盘BIOS 启动依赖 MBR,最多只支持 2TB 容量和 4 个主分区驱动固化硬件驱动写死在 BIOS 固件中,不支持动态扩展启动流程刚性不支持多引导管理和复杂逻辑判断无安全机制无签名验证,极易被 rootkit 攻击随着硬件复杂度提升和系统安全需求增强,BIOS 显得力不从心。
二、UEFI 的诞生与发展
1. 起源:Intel EFI 项目
- 起点:1998年,Intel 在 Itanium 服务器架构项目中,首次提出 EFI(Extensible Firmware Interface)。
- 初衷:为了解决 BIOS 无法支持 64 位处理器和新硬件的问题。
- EFI 1.x:作为专属固件接口,用于 Itanium 平台,但未被广泛采用。
2. 转折点:UEFI 2.0 标准发布
- 2005 年,EFI 被统一改名为 UEFI,并由 UEFI Forum(联合 Intel、AMD、Microsoft、Apple、ARM 等厂商)推动标准化。
- UEFI 2.3 系列从此成为主流固件架构,并不断发展。
3. 微软推动普及
- Windows 8(2012年)起:
- 正式要求 PC 制造商在新设备中预装支持 UEFI。
- 引入 Secure Boot,提高系统启动安全性。
- Windows 11(2021年) 更是强制要求启用 UEFI 和 TPM。
三、UEFI 的设计目标
UEFI 不只是替代 BIOS,而是针对现代计算机系统从根本上重新设计的一套启动和服务框架,其目标包括:
目标说明跨平台支持 x86、x64、ARM、RISC 等架构高性能启动速度更快,支持并发设备初始化可扩展性支持模块化驱动加载、第三方扩展安全性引入 Secure Boot 和签名机制支持图形化界面支持鼠标和高分辨率显示服务化设计提供 Boot Services 和 Runtime Services 接口给操作系统调用
四、UEFI 与产业生态的关系
UEFI 的发展推动了以下产业链协同演进:
- 主板厂商:如 ASUS、Gigabyte、MSI 提供支持 UEFI 的固件与设置界面。
- 系统厂商:如 Windows、Linux、macOS 都提供原生 UEFI 启动支持。
- 芯片厂商:Intel、AMD 的 CPU 和芯片组支持 UEFI。
- 安全技术:Secure Boot 与 TPM 集成,构建可信计算基础。
- 开发者生态:可以开发独立的 .efi 程序、固件驱动、启动管理器(如 rEFInd)。
五、UEFI 推广背后的战略意义
- 标准化平台接口:
- 统一启动行为,使主板厂商和操作系统厂商之间协同更紧密。
- 打击恶意软件:
- 防止 rootkit 和 bootkit,从引导层提升整体系统安全。
- 推动新硬件采用:
- 支持 NVMe、PCIe 启动设备、大容量硬盘等新技术。
- 统一引导逻辑:
- 让多操作系统并存(Windows + Linux + macOS)成为现实。
02
Number
UEFI 各组成模块详解
1.Platform Initialization(PI)阶段
由 Intel 定义的固件初始化标准,分为四个子阶段:
阶段全称功能说明SECSecurity Phase初始化 CPU,建立最基本的执行环境PEIPre-EFI Init初始化内存(RAM),准备 DXE 执行环境DXEDriver Execution Environment加载各种驱动程序,支持模块化扩展,硬件初始化完整BDSBoot Device Select选择启动设备,进入启动服务阶段
2.UEFI Boot Services
- 提供启动期间可用的服务,如:
- 内存分配(AllocatePages)
- 驱动加载(LoadImage/StartImage)
- 协议注册与定位(InstallProtocol, HandleProtocol)
- 事件管理(CreateEvent, WaitForEvent)
- 在加载 OS 前都有效,OS 启动后会释放这些服务。
3.UEFI Runtime Services
- 启动操作系统之后仍然存在,可被 OS 调用。
- 提供:
- 获取/设置时间(GetTime, SetTime)
- 重启系统(ResetSystem)
- 访问 UEFI 变量(GetVariable, SetVariable)
- 高级安全服务(如 Secure Boot 密钥存取)
4.UEFI 驱动与应用
- 以 .efi 文件形式存在,可运行于 UEFI shell 或从 ESP 加载。
- 驱动:DXE 阶段加载的模块化驱动。
- 应用:如启动管理器、引导程序、诊断工具、UEFI shell 等。
5.EFI System Partition(ESP)
- 格式为 FAT32。
- 存储 .efi 程序,包括启动项、驱动、启动管理器。
- 启动流程中从这里加载 OS loader。
6.OS Loader 与操作系统
- 如:
- Windows:bootmgfw.efi
- Linux:grubx64.efi
- macOS:boot.efi
- Loader 接管控制权,加载内核并启动操作系统。
UEFI 架构特性
特性描述模块化设计驱动、应用、协议解耦,支持动态加载服务化架构提供 Boot 和 Runtime Services,统一接口跨平台支持兼容 x86、x64、ARM 等架构安全机制Secure Boot、TPM 集成支持图形化界面支持 GOP(Graphics Output Protocol)编程接口清晰使用标准 C 语言接口,文档完备,易于开发
UEFI 与传统 BIOS 的架构对比
项目BIOSUEFI模式16 位实模式32/64 位保护模式存储分区限制MBR(最大 2TB)GPT(支持最大 9.4ZB)启动方式Boot Sector 引导可启动任意 EFI 文件驱动机制固化在 ROM 中可热插拔、模块化加载扩展性极差极强,支持网络启动、诊断工具等安全性无支持 Secure Boot、签名验证
03
Number
UEFI和BIOS区别以及启动类型关系
UEFI 与 BIOS 的区别
项目BIOSUEFI启动模式Legacy BIOSUEFI启动分区类型MBR(最多支持2TB,最多4个主分区)GPT(支持超过2TB,多达128个分区)图形界面无,通常是蓝底白字有图形界面和鼠标支持启动速度相对较慢更快安全启动不支持支持(Secure Boot)可扩展性差好,模块化结构
UEFI 的主要功能
- 启动操作系统:支持从 GPT 分区表启动。
- Secure Boot 安全启动:防止恶意软件在操作系统加载前运行。
- 支持更大硬盘:突破 MBR 的 2TB 限制。
- 图形化设置界面:比 BIOS 更人性化。
如何判断系统是否使用 UEFI
- 在 Windows 上:
- 显示为 “UEFI” 就是使用了 UEFI。
- 显示为 “Legacy” 就是传统 BIOS。
- 运行 msinfo32 → 查看 BIOS 模式:
- 查看磁盘分区:
- 若使用 GPT 分区表,系统多半采用 UEFI 启动。
UEFI 启动常见场景
- 安装 Windows 10/11 时,如果使用 GPT 分区格式,则必须以 UEFI 模式启动安装盘。
- 在主板 BIOS 设置中切换启动模式时,需注意系统兼容性及已有数据。
常见问题
Q:UEFI 和 GPT 一定要配合使用吗?
A:不是强制,但一般建议配合使用。UEFI 模式最适合 GPT 分区表,Legacy BIOS 则偏向 MBR。
Q:可以从 Legacy 转 UEFI 吗?
A:可以。Windows 10/11 支持用 Microsoft 的 MBR2GPT 工具转换,不过需要确保硬盘布局和主板支持。
一、MBR
MBR 是 Master Boot Record(主引导记录) 的缩写,是一种老式的磁盘分区结构格式,也是早期计算机与传统 BIOS 启动的基础。它与 UEFI 相关的 GPT 分区格式相对。
MBR 是什么?
MBR 是硬盘的第一个扇区(通常是第 0 扇区),总共 512 字节,结构如下:
- 主引导代码(446 字节):用于引导操作系统。
- 分区表(64 字节):最多定义 4 个主分区。
- 结束标志(2 字节):固定为 0x55AA,表示这是一个有效的 MBR。
MBR 的主要特点
项目MBR最大支持磁盘容量2TB分区限制最多 4 个主分区(或 3 主 + 1 扩展)启动兼容模式传统 BIOS 启动数据结构位置固定在磁盘起始扇区兼容性老主板普遍支持
MBR 与 GPT 对比
特性MBRGPT最大支持容量2TB理论最大 18EB+(远超现实需求)分区数限制4 个主分区(或逻辑分区方案)多达 128 个分区(Windows)引导方式BIOSUEFI可靠性无备份,容易损坏有主副 GUID 分区表备份校验机制无有 CRC32 校验更安全
何时使用 MBR?
- 系统是老式 BIOS(非 UEFI)时,只能用 MBR。
- 安装旧版操作系统(如 Windows 7 32 位)时推荐 MBR。
- 部分老硬件和 U盘格式化可能默认是 MBR。
如何查看磁盘是否是 MBR?
在 Windows 上:
- 打开“磁盘管理”(Win+X → 磁盘管理)。
- 右键点击左侧的“磁盘 0/1…” → 属性 → 卷 → 分区样式:
- 显示“主引导记录(MBR)”说明就是 MBR;
- 显示“GUID 分区表(GPT)”则是 GPT。
常见工具
- 转换 MBR <-> GPT:
- diskpart:传统命令行工具(会清除数据)。
- mbr2gpt:Windows 10 自带的无损转换工具。
- 制作 MBR 启动盘:
- 使用工具如 Rufus,选择“MBR 分区方案用于 BIOS 或 UEFI-CSM”。
技术提醒
如果你在给硬盘装系统或迁移系统,BIOS 模式 + MBR,UEFI 模式 + GPT 是最稳定的搭配。
二、GPT
GPT 是 GUID Partition Table(全局唯一标识分区表) 的缩写,是现代磁盘分区标准,专为替代传统的 MBR 而设计,配合 UEFI 固件使用效果最佳。
GPT 是什么?
GPT 是一种更先进、更可靠的磁盘分区格式,解决了 MBR 的诸多限制:
- 支持更大的磁盘容量(> 2TB)
- 支持更多分区(> 4个)
- 具有分区表冗余备份(首尾各一份)
- 使用 CRC32 校验,增强数据完整性
GPT 的结构图(简化版)
css
[保护 MBR] [主 GPT 表头] [主分区表] [...数据区...] [备份分区表] [备份 GPT 表头]
- 保护 MBR:为了兼容旧系统,GPT 仍在最前保留一个伪造的 MBR。
- 主 GPT 表头 & 分区表:记录磁盘结构。
- 备份 GPT 表头 & 分区表:防止主表损坏时丢失结构信息。
GPT 的主要优势
特性GPT最大支持容量超过 18EB(EB = 百万 TB)最大主分区数128(Windows)启动方式UEFI(非 BIOS)数据完整性CRC 校验 + 分区表冗余备份多操作系统支持Windows、Linux、macOS 都支持分区名称支持支持自定义分区名称
GPT 与 MBR 的对比(重点区别)
对比项目GPTMBR最大磁盘容量>18 EB(非常大)最多 2TB主分区数多达 128 个(Windows)最多 4 个(或3主+扩展+逻辑分区)校验机制CRC32 校验(更安全)无分区表冗余有主副 GPT 表头无启动兼容性需配合 UEFI 固件可用传统 BIOS 启动
如何查看磁盘是否是 GPT?
在 Windows:
- 打开 磁盘管理(Win+X → 磁盘管理)
- 右键点击左侧“磁盘 0” → 属性 → “卷” → 查看“分区样式”
- 如果是 GUID 分区表(GPT),就是 GPT 格式
转换 MBR <-> GPT 的方法
Windows 自带工具:
MBR → GPT(不丢数据):使用 mbr2gpt(Windows 10 1703+)
bash
mbr2gpt /convert /allowFullOS
- GPT → MBR(会清除数据):用 diskpart:
- bash
diskpart list diskselect disk X clean convert mbr
注意:转换会影响系统启动方式,可能需要进入 BIOS 设置切换 UEFI/Legacy。
安装系统时选择 GPT 的提示
场景建议使用分区类型启动方式安装 Windows 10/11 新系统GPTUEFI旧电脑 + 传统 BIOSMBRLegacy BIOS移动硬盘/U盘作系统盘GPT(现代主板)UEFI
制作 GPT 启动盘
- 使用 Rufus 选择:
- 分区类型:GPT
- 目标系统:UEFI(非 CSM)
- ISO 镜像选择 Windows 10/11 安装镜像
04 UEFI 优点与不足
Number
优点
- 支持大容量硬盘(>2TB)
- 启动速度快
- 模块化、可扩展
- Secure Boot 提高安全性
- 图形化界面,操作友好
不足
- 配置复杂,尤其是在多系统环境下
- Secure Boot 可能导致 Linux 无法启动(除非关闭或签名 GRUB)
- 某些主板厂商实现存在兼容问题
05
Number
UEFI 与 BIOS 并存的问题
- 为兼容旧设备或旧系统,很多主板提供 CSM(Compatibility Support Module)。
- 开启 CSM 后可使用 Legacy BIOS 模式启动。
- 安装新系统时建议关闭 CSM,纯 UEFI 模式更为稳定和安全。
06
Number
总结
UEFI 是一个强大而现代的启动系统,不仅替代了传统BIOS,还带来了更强的安全性、可扩展性、性能优化等优点。对于操作系统安装、硬件兼容、安全启动机制等方面都有极大的提升。理解 UEFI 是深入学习计算机系统和运维的基础。