为Linux用户介绍UEFI固件
今天,让我们来掠夺我们计算机的固件。 具体来说,我们将专注于BIOS和UEFI。
UEFI BIOS还是UEFI?
您会在网上看到很多人将其称为UEFI BIOS。 严格来说,这是错误的,因为BIOS不是固件的通用术语。 BIOS是IBM兼容PC的特定固件,因此我们应将固件称为UEFI。
为什么我们需要BIOS?
BIOS代表基本输入/输出系统。 它负责以下任务。
- 初始化CPU和RAM。
- POST(开机自检)
- 初始化LAN,PCIe。
- 从硬盘驱动器,USB记忆棒或LAN启动引导加载程序。
一旦完成工作,BIOS便将控制权交给操作系统。
旧版BIOS是什么意思?
BIOS使用38年。 它是在1981年发明的。旧版是指旧的接口或机制,例如PS / 2键盘,软盘。 如今,很少有人使用这些旧东西,但是处理这些旧东西的代码仍在旧版BIOS中。
什么是UEFI?
UEFI来自EFI,EFI代表可扩展的固件接口。 它是由Intel在90年代后期创立的。 英特尔当时正在开发64位处理器。 旧版BIOS仅在16位模式下运行,不能使用新处理器的所有功能。 因此,他们希望摆脱旧的BIOS机制。 他们于2002年发布了EFI的第一个版本。2005年,UEFI论坛诞生了。 UEFI代表统一的可扩展固件接口。
UEFI是固件规范,而不是固件实现。 任何人都可以采用UEFI规范并编写自己的UEFI兼容固件。
BIOS和UEFI之间的差异
它们主要是我想在本文中讨论的4个差异。
程式语言
BIOS是使用汇编语言编程的,而UEFI固件是99%C语言代码。 C语言对于程序员来说更容易阅读,维护和添加新功能。 而且,删除旧功能非常容易。
OptionROM与驱动程序
OptionROM随附BIOS。 optionROM的大小限制为64KB。 无法将其加载到硬盘或USB驱动器上。 此外,OptionROM必须适合所有硬件。 因此,如果您更改硬件,则还必须更改OptionROM的代码。
使用UEFI固件,您将不再具有optionROM。 相反,程序员编写驱动程序。 驱动程序没有上述optionROM的限制。
MBR与GPT
借助BIOS,硬盘利用称为MBR的分区样式,该分区样式表示主启动记录。 您不能使用MBR分区样式访问大于2TB的硬盘。 MBR也不允许超过4个主分区。
对于UEFI固件,硬盘使用GPT分区样式,代表GUID分区表。 GPT最多允许128个主分区,并且可以访问大于2TB的硬盘。
完成硬件初始化和POST后,BIOS仍提供一些服务。 UEFI仅是预引导和引导时间。 初始化硬件后,UEFI将控制权完全传递给操作系统。
单引导程序与多引导程序
BIOS仅允许一个引导加载程序,该加载程序存储在主引导记录中。 UEFI允许您在硬盘上的EFI分区中安装多个引导程序。 这意味着您可以在UEFI模式下将Linux和Windows安装在同一硬盘上,而无需清除Grub引导加载程序或Windows引导加载程序。
UEFI Shell
UEFI Shell看起来像Linux终端窗口或DOS窗口,它使您能够运行某些UEFI应用程序。 它具有自己的语法。
引导模式
某些UEFI固件具有兼容性支持模块(CSM)。 CSM允许系统回退到旧版BIOS。 这样的系统具有三种不同的引导模式。
- BIOS模式
- BIOS和UEFI混合模式
- UEFI纯模式
请注意,混合模式不是本机UEFI模式。 如果您确实要使用UEFI,则必须仅启用UEFI而不启用BIOS。 由于不需要加载BIOS,计算机在本机UEFI模式下具有更快的启动时间。
操作系统支持
Microsoft Windows仅支持带有GPT硬盘的UEFI。 Linux可以使用GPT或MBR硬盘以UEFI模式启动。 Mac的EFI实现是EFI 1.x和UEFI 2.x的混合。 这种固件不是标准的UEFI固件。
UEFI固件处理器架构
大多数英特尔平台都支持32位和64位体系结构以及8086/80286 16位代码。 因此,这些平台上的UEFI固件可以32位或64位模式进行编译。
UEFI规范要求引导加载程序体系结构与固件体系结构相匹配,以减少问题。 换句话说,32位UEFI只能运行32位引导加载程序,而64位UEFI只能运行64位引导加载程序。 但是,您可以运行具有32位UEFI的64位OS和具有64位UEFI的32位OS。
我如何知道我的计算机具有32位或64位UEFI固件?
在Linux上,运行以下命令。
cat /sys/firmware/efi/fw_platform_size
如您所见,我的计算机具有64位UEFI固件。 大多数新PC均配备64位UEFI固件。
我如何知道Linux是否以UEFI模式安装?
在基于Debian的Linux发行版中,有两个版本的Grub引导管理器。
- grub-efi
- 平板电脑
如果您的Linux以UEFI模式安装,则附带 grub-efi
代替 grub-pc
。
Grub-efi
用于UEFI固件,而 grub-pc
用于BIOS。
我如何知道我的计算机是否以UEFI模式启动
首先,您可以禁用固件中的旧版BIOS,并将其设置为UEFI纯模式,以确保您的计算机以UEFI模式启动。
如果您使用的是Linux,则可以检查系统是否具有 /sys/firmware/efi/
目录。 如果此目录存在,则您的计算机以UEFI模式启动。
EFI系统分区
UEFI需要具有EFI系统分区(简称ESP)的硬盘。 它使用FAT32,FAT16或vFAT文件系统进行格式化,建议为ESP保留至少512MB的空间。 这是UEFI引导程序的存储位置。 ESP分区必须安装在 /boot/efi
在Linux上。 它有一个 开机 和 特别是 Gparted中的标志。 它不必是第一个分区。
安全启动
安全启动是UEFI的扩展。 尽管大多数Linux发行版(例如Debian,Ubuntu,Fedora,OpenSUSE)都支持安全启动,但我不建议启用安全启动,因为在Linux系统上安装图形驱动程序,无线卡驱动程序,Virtualbox驱动程序时,会向Linux添加一些模块内核,因此安全启动将不再能够识别您的Linux系统。
下一步
您可能还需要阅读:
- 如何使用Linux efibootmgr命令管理UEFI引导菜单
我希望本教程可以帮助您了解UEFI。 与往常一样,如果您发现此帖子有用,请订阅我们的免费新闻简报以获取更多提示和技巧。