为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

Grub-efi 用于UEFI固件,而 grub-pc 用于BIOS。

平板电脑

我如何知道我的计算机是否以UEFI模式启动

首先,您可以禁用固件中的旧版BIOS,并将其设置为UEFI纯模式,以确保您的计算机以UEFI模式启动。

如果您使用的是Linux,则可以检查系统是否具有 /sys/firmware/efi/ 目录。 如果此目录存在,则您的计算机以UEFI模式启动。

UEFI模式

EFI系统分区

UEFI需要具有EFI系统分区(简称ESP)的硬盘。 它使用FAT32,FAT16或vFAT文件系统进行格式化,建议为ESP保留至少512MB的空间。 这是UEFI引导程序的存储位置。 ESP分区必须安装在 /boot/efi 在Linux上。 它有一个 开机特别是 Gparted中的标志。 它不必是第一个分区。

EFI系统分区

安全启动

安全启动是UEFI的扩展。 尽管大多数Linux发行版(例如Debian,Ubuntu,Fedora,OpenSUSE)都支持安全启动,但我不建议启用安全启动,因为在Linux系统上安装图形驱动程序,无线卡驱动程序,Virtualbox驱动程序时,会向Linux添加一些模块内核,因此安全启动将不再能够识别您的Linux系统。

下一步

您可能还需要阅读:

  • 如何使用Linux efibootmgr命令管理UEFI引导菜单

我希望本教程可以帮助您了解UEFI。 与往常一样,如果您发现此帖子有用,请订阅我们的免费新闻简报以获取更多提示和技巧。

Sidebar