问题#
我们在使用 DiskGenius 对一块新硬盘建立新分区时会看到这个选项:建立 ESP\MSR 分区。
这是什么意思呢,首先我们来先了解必要的基础知识。
UEFI+GPT#
首先需明确的是只有 UEFI 启动 +GPT(GUID Partiton Table)硬盘分区才会出现 ESP 分区和 MSR 分区,而传统(Legacy)启动 +MBR(Master Boot Record)硬盘分区完全用不到 ESP 分区和 MSR 分区。
UEFI 前身是英特尔在 1998 年开始开发的 Intel Boot Initiative,后来被重命名为可扩展固件接口(Extensible Firmware Interface,缩写为 EFI)。2005 年英特尔将其交由统一可扩展固件接口论坛(Unified EFI Forum)来推广与发展,EFI 也正式更名为 UEFI(Unified EFI,即统一可扩展固件接口)。
![image](/_next/image?url=https%3A%2F%2Fcdn.jsdelivr.net%2Fgh%2Fconquer1the2world3%2Fzfsjlll-blog%40main%2FPictures%2F4b4ffde24268fd65f292bb90047bda624237081fa65b549dc45d3338ed86bfd9.png&w=640&q=75)
UEFI 论坛于 2007 年 1 月 7 日公布 2.1 版本,所以近十来年的新配电脑标配是 UEFI 启动,只有十来年前的电脑才是传统的 BIOS 启动。
![image](/_next/image?url=https%3A%2F%2Fcdn.statically.io%2Fgh%2Fconquer1the2world3%2Fzfsjlll-blog%40main%2FPictures%2Fd6ca7bcb0a46f21f943f3956064fb3670c33ae1b.4c6wh1xdcjc0.webp&w=1920&q=75)
UEFI 固件也可以支持传统 BIOS 启动环境,两者并没有功能上的本质区别,PC 的启动固件的引导过程从 IBM PC 机诞生那天起,就没有本质改变过。
在 ROM Stage 阶段没有内存,需要在 ROM 上运行汇编语言代码。临时空间 Cache 登场用作 RAM 后,C 语言才可以粉墨登场。在 RAM Stage 阶段,有了可以大展拳脚的内存,很多额外需要大内存的东西可以开始运行了,这时就需要初始化芯片组、CPU、主板模块等核心过程。在 Find Somethin to boot Stage 阶段就要枚举设备,发现启动设备,并把启动设备之前需要依赖的节点通通打通,然后才开始移交工作,这才是 Windows 或者 Linux 时代的开始。UEFI 的发明有偶然性,也有必然性。UEFI 发明之前,PC 机都还在用传承自 1979 年的传统 BIOS,一堆用汇编写的硬件初始化代码,它封闭、神秘,并且充满了各种不清不楚的预设和祖传代码。1997 年英特尔的员工基于传统 BIOS 来支持基于安腾处理器芯片组的服务器,但并不顺利,最终该计划被证实不可行,英特尔最终决定开发一套全新的机制。
![image](/_next/image?url=https%3A%2F%2Fcdn.statically.io%2Fgh%2Fconquer1the2world3%2Fzfsjlll-blog%40main%2FPictures%2FBIOS-vs-UEFI-1416318644-1611826043375.ubhn6kx9ju8.webp&w=1920&q=75)
在平台固件和 OS 加载器之间使用高级 C 语言接口成为了一个必然选择,这样操作系统可以尽可能少地去了解平台的硬件细节,为启动过程定义一个在固件和操作系统间和 CPU 架构无关的 API 就由此诞生了。
UEFI 是用模块化 C 语言风格的参数堆栈传递方式,动态链接的形式构成的,较 BIOS 更易于实现,容错和纠错特性更强,缩短了系统研发的时间。UEFI 的启动时间要比传统的 BIOS 启动要快,可支持鼠标图形化操作。
MBR 和 GPT 分区表的区别
在使用新硬盘之前必须对它进行分区,这些分区包含了分区从哪里开始的信息,这样操作系统才知道那个扇区是属于哪个分区的,以及哪个分区是可以启动的。
![image](/_next/image?url=https%3A%2F%2Fcdn.statically.io%2Fgh%2Fconquer1the2world3%2Fzfsjlll-blog%40main%2FPictures%2Fa8014c086e061d9543a613b1959fd2d660d9cace.4ypcxlxa2is0.webp&w=1920&q=75)
MBR 即主引导记录,最早在 1983 年由 IBM PC DOS 2.0 中提出。
之所以叫主引导记录,是由于它存在于驱动器开始部分的一个特殊的启动扇区,包含了已安装的操作系统的启动加载器和驱动器的逻辑分区信息。
![image](/_next/image?url=https%3A%2F%2Fcdn.statically.io%2Fgh%2Fconquer1the2world3%2Fzfsjlll-blog%40main%2FPictures%2F8cb1cb134954092314b547827d33090eb1de49e5.1wss34bx8lcw.webp&w=1920&q=75)
MBR 支持最大 2TB 的硬盘,而无法处理大于 2TB 容量的硬盘,它只能创建最多 4 个主分区,如果还要建立更多的分区,就需要创建所谓的 “扩展分区”,并在其中创建逻辑分区。严格意义上将扩展分区并不是一个实际意义的分区,仅仅只是一个指向下一个分区的指针
GPT 即全局唯一标识符(GUID)分区表
顾名思义驱动器上每一个分区都有一个全局的唯一的标识符,这串随机生成的字符串可以保证为地球上的每一个 GPT 分区都分配完全唯一的标识符。
![image](/_next/image?url=https%3A%2F%2Fcdn.statically.io%2Fgh%2Fconquer1the2world3%2Fzfsjlll-blog%40main%2FPictures%2F5bafa40f4bfbfbed4b024d23959b2f31aec31f82.38rjka4u26c0.webp&w=1080&q=75)
GPT 没有 MBR 那么多限制,容量可以达到操作系统和文件系统都没法支持,并且还支持无限个分区数量,而不需要创建扩展分区。目前限制仅在操作系统上,Windows 最多支持 128 个 GPT 分区。
GPT 和 EFI 相辅相成
UEFI 用于取代老旧的 BIOS,而 GPT 用于取代老旧的 MBR。UEFI 虽然可以引导 MBR,但它似乎与 GPT 更配,值得注意的是传统的 BIOS 是没法引导 GPT 分区内的系统,会黑屏提示无法引导系统磁盘。
![image](/_next/image?url=https%3A%2F%2Fcdn.statically.io%2Fgh%2Fconquer1the2world3%2Fzfsjlll-blog%40main%2FPictures%2F3b87e950352ac65cb64ea7d915996a1692138a41.5n0epwb6u7k0.webp&w=1200&q=75)
在 GPT 分区中,ESP 是一个独立于操作系统之外的分区
ESP(EFI system partition)在 Windows 操作系统下不可见,支持 UEFI 启动的电脑都需要从 ESP 启动系统,操作系统被引导之后,就不会再使用它。虽然 ESP 是一个 FAT16 或 FAT32 的格式的物理分区,但它的分区标识是 EF(十六进制)而不是常规的 0E 或 0C。
![image](/_next/image?url=https%3A%2F%2Fcdn.statically.io%2Fgh%2Fconquer1the2world3%2Fzfsjlll-blog%40main%2FPictures%2F7af40ad162d9f2d3c8daafcb588752146227ccbb.391vr9h3zjm0.webp&w=1920&q=75)
MSR(Microsoft Reserved Partition)分区则是为了调整分区结构而保留的分区
MSR 分区本质就是写在分区表上的未分配的空间,Windows 系统并不会想 MSR 分区建立文件系统或者写数据,但在 Windows8 以上系统更新时,就会检测 MSR 分区,所以 MSR 分区对于 Windows 是必须保留的,不可删除,而对于 Linux、MacOS 则不受影响。
![image](/_next/image?url=https%3A%2F%2Fcdn.statically.io%2Fgh%2Fconquer1the2world3%2Fzfsjlll-blog%40main%2FPictures%2F6f061d950a7b02080526d4038cb22ad4552cc8dd.o4696f9tkcw.webp&w=1920&q=75)
至于 HD 和 RD,很明显是用来区分存储设备的类型,比如下图:HD 表示硬盘,而 RD 表示 U 盘,而后面阿拉伯数字 0、1、2…… 则表示系统自检后挂着的顺序。
![image](/_next/image?url=https%3A%2F%2Fcdn.statically.io%2Fgh%2Fconquer1the2world3%2Fzfsjlll-blog%40main%2FPictures%2Fimage.2klikiuzytc0.webp&w=640&q=75)
步骤#
接下来回到正题,我们使用 DiskGenius 硬盘分区工具进行演示如何建立 ESP/MSR 分区:
1、打开 “DiskGenius” 软件,然后展开左侧列表找到要创建 ESP/MSR 分区的磁盘。如下图:
2、点击磁盘前 + 号展开后,可以看到磁盘,右键点击它选择 “建立 ESP/MSR 分区”。如下图:
3、分别勾选 “建立 ESP 分区、建立 MSR 分区”,接着按照需求设置 ESP 分区大小,然后点击 “确定” 选项。在 Windows 中只要求 EFI 分区最小不应低于 100MB 这也是 Windows 安装时的默认配置,所以如果没有特殊需求保持 100MB 就可以了。
对于第一代高级格式(每扇区 4 KB)驱动器,此分区的最小大小为 260 MB。
对于较早的每扇区 512 字节驱动器,此分区的最小大小为 100MB。如下图:
![image](/_next/image?url=https%3A%2F%2Fcdn.jsdelivr.net%2Fgh%2Fconquer1the2world3%2Fzfsjlll-blog%40main%2FPictures%2Fdb261c428bfcb25437b02b8fd8f4597ed16d57488273badf47b1586521387ca1.png&w=828&q=75)
#
参考文献#