zfsjlll

zfsjlll

趁着年轻,好好犯病

ESP和MSR分区是什么,如何建立ESP和MSR分区

问题#

我们在使用 DiskGenius 对一块新硬盘建立新分区时会看到这个选项:建立 ESP\MSR 分区。
image
这是什么意思呢,首先我们来先了解必要的基础知识。

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

UEFI 论坛于 2007 年 1 月 7 日公布 2.1 版本,所以近十来年的新配电脑标配是 UEFI 启动,只有十来年前的电脑才是传统的 BIOS 启动。

image

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

在平台固件和 OS 加载器之间使用高级 C 语言接口成为了一个必然选择,这样操作系统可以尽可能少地去了解平台的硬件细节,为启动过程定义一个在固件和操作系统间和 CPU 架构无关的 API 就由此诞生了。

UEFI 是用模块化 C 语言风格的参数堆栈传递方式,动态链接的形式构成的,较 BIOS 更易于实现,容错和纠错特性更强,缩短了系统研发的时间。UEFI 的启动时间要比传统的 BIOS 启动要快,可支持鼠标图形化操作。

MBR 和 GPT 分区表的区别

在使用新硬盘之前必须对它进行分区,这些分区包含了分区从哪里开始的信息,这样操作系统才知道那个扇区是属于哪个分区的,以及哪个分区是可以启动的。

image

MBR 即主引导记录,最早在 1983 年由 IBM PC DOS 2.0 中提出。

之所以叫主引导记录,是由于它存在于驱动器开始部分的一个特殊的启动扇区,包含了已安装的操作系统的启动加载器和驱动器的逻辑分区信息。

image

MBR 支持最大 2TB 的硬盘,而无法处理大于 2TB 容量的硬盘,它只能创建最多 4 个主分区,如果还要建立更多的分区,就需要创建所谓的 “扩展分区”,并在其中创建逻辑分区。严格意义上将扩展分区并不是一个实际意义的分区,仅仅只是一个指向下一个分区的指针

GPT 即全局唯一标识符(GUID)分区表

顾名思义驱动器上每一个分区都有一个全局的唯一的标识符,这串随机生成的字符串可以保证为地球上的每一个 GPT 分区都分配完全唯一的标识符。

image

GPT 没有 MBR 那么多限制,容量可以达到操作系统和文件系统都没法支持,并且还支持无限个分区数量,而不需要创建扩展分区。目前限制仅在操作系统上,Windows 最多支持 128 个 GPT 分区。

GPT 和 EFI 相辅相成

UEFI 用于取代老旧的 BIOS,而 GPT 用于取代老旧的 MBR。UEFI 虽然可以引导 MBR,但它似乎与 GPT 更配,值得注意的是传统的 BIOS 是没法引导 GPT 分区内的系统,会黑屏提示无法引导系统磁盘。

image

在 GPT 分区中,ESP 是一个独立于操作系统之外的分区

ESP(EFI system partition)在 Windows 操作系统下不可见,支持 UEFI 启动的电脑都需要从 ESP 启动系统,操作系统被引导之后,就不会再使用它。虽然 ESP 是一个 FAT16 或 FAT32 的格式的物理分区,但它的分区标识是 EF(十六进制)而不是常规的 0E 或 0C。

image

MSR(Microsoft Reserved Partition)分区则是为了调整分区结构而保留的分区

MSR 分区本质就是写在分区表上的未分配的空间,Windows 系统并不会想 MSR 分区建立文件系统或者写数据,但在 Windows8 以上系统更新时,就会检测 MSR 分区,所以 MSR 分区对于 Windows 是必须保留的,不可删除,而对于 Linux、MacOS 则不受影响。

image

至于 HD 和 RD,很明显是用来区分存储设备的类型,比如下图:HD 表示硬盘,而 RD 表示 U 盘,而后面阿拉伯数字 0、1、2…… 则表示系统自检后挂着的顺序。

image

步骤#

接下来回到正题,我们使用 DiskGenius 硬盘分区工具进行演示如何建立 ESP/MSR 分区:

1、打开 “DiskGenius” 软件,然后展开左侧列表找到要创建 ESP/MSR 分区的磁盘。如下图:
v2-a1da4a4321056025e2b5a7b816859709_1440w
2、点击磁盘前 + 号展开后,可以看到磁盘,右键点击它选择 “建立 ESP/MSR 分区”。如下图:
picture 2
3、分别勾选 “建立 ESP 分区、建立 MSR 分区”,接着按照需求设置 ESP 分区大小,然后点击 “确定” 选项。在 Windows 中只要求 EFI 分区最小不应低于 100MB 这也是 Windows 安装时的默认配置,所以如果没有特殊需求保持 100MB 就可以了。

对于第一代高级格式(每扇区 4 KB)驱动器,此分区的最小大小为 260 MB。

对于较早的每扇区 512 字节驱动器,此分区的最小大小为 100MB。如下图:

image
4、最后根据下图箭头所指,成功建立“ESP/MSR”分区,如下图:

Alt text#

参考文献#

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。