首先需明确的是只有UEFI启动+GPT(GUID Partiton Table)硬盘分区才会出现ESP分区和MSR分区,而传统(Legacy)启动+MBR(Master Boot Record)硬盘分区完全用不到ESP分区和MSR分区。

esp 分区结构 esp分区有什么用_运维

        UEFI前身是英特尔在1998年开始开发的Intel Boot Initiative,后来被重命名为可扩展固件接口(Extensible Firmware Interface,缩写为EFI)。2005年英特尔将其交由统一可扩展固件接口论坛(Unified EFI Forum)来推广与发展,EFI也正式更名为UEFI(Unified EFI,即统一可扩展固件接口)。

esp 分区结构 esp分区有什么用_esp 分区结构_02

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

esp 分区结构 esp分区有什么用_固件_03

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来支持基于安腾处理器芯片组的服务器,但并不顺利,最终该计划被证实不可行,英特尔最终最顶开发一套全新的机制。

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

esp 分区结构 esp分区有什么用_服务器_04

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

MBR和GPT分区表的区别

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