在 uefi 中启动:替代启动方法

很长一段时间以来,新的 PC 和笔记本电脑都配备了“uefi”而不是老式的 bios。然而,“安全”参数被错误地使用,使得从 CD 或 U 盘启动变得困难(例如,使用 GParted、恶意软件恢复或 Linux 发行版)。在本文中,您可以了解为什么会出现这种情况以及如何仍能以您想要的方式启动。

什么是uefi?

在我们真正开始之前,浏览一些术语并没有什么坏处。 Uefi 代表“统一可扩展固件接口”,可以说是它自己的计算机操作系统。经典的bios(基本输入/输出系统)是固件,而uefi则介于固件和操作系统之间。 Uefi 和 bios 可以共存于同一台计算机上。

过去还有 efi(可扩展固件接口)。这是由英特尔开发的,但自 2005 年以来,英特尔一直参与 UEFI 论坛:一个由计算机行业的公司组成的联盟,进一步开发 UEFI。 Uefi 是“统一的”,因为它完全基于软件:以前 bios 是为每个芯片单独编译的,uefi 更通用。

在本文中,我们将深入了解 uefi 的世界。今天的每台 PC 或笔记本电脑都带有 uefi。对于某些用户来说,这种变化似乎突然发生了变化。 uefi 有很多值得喜欢的地方:PC 的基本设置更易于操作,功能更多,PC 启动速度更快。

不幸的是,也有缺点:用户从其他媒体(例如从 U 盘)启动变得更加困难和复杂。许多 PC 制造商已经以这样的方式登上了他们的 uefi,这不仅是可能的。此外,由于向后兼容,情况变得更加复杂,您仍然可以在 uefi 环境中从 bios 启动。

在本文中,我们将了解从 uefi 启动如何与 USB 记忆棒配合使用,以及如何以及为何将其连接起来。我们还将在实践中应用这些知识来启动替代媒体。

01 Uefi 船

PC 启动的那一刻,uefi 启动管理器开始工作。它查看引导配置并将固件设置加载到内存中。之后,启动默认操作系统的内核。在存储在 nvram 中的固件设置中,是要启动的 efi 文件的路径。 Nvram 代表非易失性随机存取存储器,它存在于主板上。非易失性意味着即使关闭电源,数据也会保存在内存中。

引导文件位于 efi 分区,也称为 ESP(efi 系统分区)。这样的分区是一个简单的 fat32 分区,并且对于 PC 上的每个操作系统都有一个文件夹。每个文件夹包含一个由安装的操作系统创建的 efi 文件。这样的 efi 文件是用与 C 语言非常相似的 uefi 编程语言创建的,该文件启动实际的操作系统。

uefi 的优势在于它可以自动检测新的 uefi 引导目标。这样您就可以轻松地从其他媒体启动。为了启用该功能,uefi 使用默认路径来定义引导加载程序。例如,这样的路径和文件名是 /efi/boot/boot_x64.efi 对于 64 位系统和 ARM 体系结构,该文件将是 bootaa64.efi 被命名。

尤其是在引入uefi之初,有时会出现启动问题。每个引导加载程序都有自己的问题或怪癖。例如,Windows 7 创建了一个新的 fat32 ESP,即使有一个带有 fat16 的现有 ESP。然后安装失败。许多 Linux 发行版都用于创建 fat16 ESP。此外,Ubuntu 11.04 和 11.10 有一个严重的错误,即有时会意外清空 ESP。

引导时,还有一个术语很重要:CSM,它代表兼容性支持模块,它通过提供对 bios 的支持来支持传统引导。您只能在 Secure Boot 选项关闭的情况下启用 CSM,有关更多信息,请参见第 3 节。

02 Gpt

Gpt 或“guid 分区表”取代了旧的 mbr(主引导记录),这是磁盘过去的分区方式。 gpt 是 uefi 的一部分。从 Windows Vista 开始,Windows 只能从 uefi 中的 gpt 驱动器启动。 gpt 磁盘的分区头包含有关磁盘上可以使用哪些块的信息。这个头还包含磁盘的“guid”:通用唯一标识符,唯一标识号。 gpt 驱动器可以是基本的或动态的,就像 mbr 一样。 gpt 最多支持 128 个分区,并自动备份 gpt 分区表。

主引导记录的问题在于它已过时:例如,无法引导大于 2 TB 的磁盘。 Gpt 支持最大 9.4 ZB 的磁盘。那是 zetabytes,或 9.4 x 10^21。顺便说一下,出于兼容性原因,第一个块中的 gpt 仍然包含一个 mbr。这是在块 0 中。块 1 包含 gpt 标头,其余部分包含分区。

03 安全启动

安全启动是 uefi 的一部分,旨在阻止恶意软件攻击固件。此类恶意软件非常糟糕,因为它嵌入在固件中,因此可以在重新安装操作系统后存活下来。安全启动的原理非常简单:只启动受信任方签名的二进制文件(只有代码的文件)。恶意软件理论上不能被签名,因此恶意软件会被阻止。公司可以让他们的 uefi 二进制文件由微软签名。大多数 UEFI 包含 Microsoft 的公钥。如果一家公司对其二进制文件进行了签名,则这是使用 Microsoft 的私钥完成的,以便固件识别并启动该二进制文件。

Ubuntu 已经看到了这种情绪,因此它的二进制文件也得到了微软的签名。这就是为什么自 2012 年以来您可以在 uefi 系统上使用 Ubuntu。如果您想使用未签名的 Linux 发行版,您可以在 UEFI 中禁用安全启动,也可以在 UEFI 中安装您自己的密钥。归根结底,Secure Boot 只是简单地采用了公私钥架构,这样你就可以安装二进制文件的公钥,之后就可以正常启动了。

最近的帖子

$config[zx-auto] not found$config[zx-overlay] not found