现在 Windows 8 支持 UEFI 引导加载程序,并且我了解到它与 BIOS 不同,但在 Google 上搜索多次后我仍不清楚。
以下是一些需要注意的要点:-
众所周知,BIOS 是访问启动选项的重要部分。那么 UEFI 现在会这样做吗?怎么做?
我怎么知道我是使用 UEFI 而不是 BIOS 启动的?
那么“使用 BIOS 启动”和“使用 UEFI 启动”的真正区别是什么?
答案1
- 众所周知,BIOS 是访问启动选项的重要部分。那么现在 UEFI 可以做到这一点吗?怎么做?
BIOS 通过读取硬盘上的第一个扇区并执行它来启动;该启动扇区依次定位并运行其他代码。由于空间限制以及 BIOS 运行 16 位代码(而现代计算机使用 32 位或 64 位 CPU),BIOS 系统非常有限。相比之下,EFI(或 UEFI,即 EFI 2.x)通过从硬盘上的分区(称为 EFI.efi
系统分区 (ESP))加载 EFI 程序文件(带有文件扩展名)来启动。这些 EFI 引导加载程序可以利用 EFI 引导服务来执行诸如从硬盘读取文件之类的操作。
实际上,如果您使用的是 Linux 等具有复杂 BIOS 模式引导加载程序的操作系统,则 EFI 模式引导可能与 BIOS 模式引导类似,因为 GRUB 2(Linux 最流行的 BIOS 模式引导加载程序)已移植到 EFI 下工作,并且许多 Linux 发行版在 EFI 系统上默认安装 GRUB 2。另一方面,您可以用其他 EFI 引导加载程序替换或补充 GRUB 2。实际上,Linux 内核本身可以是 EFI 引导加载程序;在 3.3.0 内核中添加了执行此操作的代码。以这种方式使用时,EFI 本身会加载并运行 Linux 内核,或者您可以使用第三方引导管理器,例如重新索引或者橡胶靴让您选择要启动的操作系统或内核。
- 我怎么知道我是使用 UEFI 而不是 BIOS 启动的?
正如 Root 所说,固件的用户界面中有一些线索;然而,这些线索并不可靠,而且每台计算机都不一样。唯一能确定的方法是检查计算机是如何启动的。例如,在 Linux 中,是否存在名为 的目录/sys/firmware/efi
是诊断性的。如果存在,则说明您已在 EFI 模式下启动;如果不存在,则说明您已大概在 BIOS 模式下启动。(但在某些情况下,此目录在 EFI 模式启动时可能不存在。)dmesg
指向 EFI 的输出也是 EFI 模式启动的诊断。在 Windows 中,引导磁盘是诊断性的;如果是 GPT,则以 EFI 模式启动,如果是 MBR,则以 BIOS 模式启动。
- 那么“使用 BIOS 启动”和“使用 UEFI 启动”的真正区别是什么?
电喷可速度会更快,但这并不确定。最大的速度差异在于过程早期的硬件初始化。在我的系统上,这只占总启动时间的一小部分,因此减少硬件初始化时间虽然很好,但并不能使所有那差别不大。毕竟我又不是每十分钟就重启一次。
UEFI 支持一项功能,称为安全启动顾名思义,该技术旨在提高安全性。它通过要求对引导加载程序进行数字“签名”来实现这一点,而这又要求对内核进行签名,依此类推。这应该会使恶意软件作者更难将其代码插入预引导过程,从而提高安全性。这听起来不错,但它也使双引导配置变得复杂,因为必须对 GRUB 和 Linux 内核等代码进行签名。主要的 Linux 发行版供应商正在研究如何减轻这些要求对普通 Linux 用户的负担,他们已经准备好了一些初步的东西。不过,目前,禁用安全启动是处理该问题最简单的方法。这主要是针对搭载 Windows 8 的全新计算机的实际问题,因为 Microsoft 要求启用安全启动才能获得 Windows 8 认证。有些人混淆了 UEFI 和安全启动(后者只是前者的一项功能),但它值得一提,因为它是 BIOS 和 UEFI 之间的区别,因为它给新的 Windows 8 计算机带来了一些问题。如果您有一个较旧的系统或对固件设置实用程序足够熟悉以禁用安全启动,那么这并不是什么大问题。
Microsoft 将启动磁盘的分区表类型与固件类型绑定在一起(MBR 到 BIOS;GPT 到 UEFI)。由于 MBR 的最大大小为 2TiB(假设标准扇区大小),这意味着 UEFI 是启动超过 2TiB 磁盘上的 Windows 的实际必需品。不过,您仍然可以在 Windows 下将这样的大磁盘用作数据磁盘,并且您可以在 BIOS 下使用 GPT 在大磁盘上启动一些非 Microsoft 操作系统(例如 Linux 和 FreeBSD)。
实际上,如果你对 UEFI 感到担忧或感兴趣,最大的问题就是 UEFI 还很新,对它的支持有点不稳定,特别是在一些较旧和较奇特的操作系统中。UEFI 本身也相当新,以至于它的大多数实现都存在缺陷,而那些缺陷的实现本身也存在很大差异,因此很难一概而论。因此,使用 UEFI 可能是一个挑战。另一方面,UEFI是未来。它有一些适度的优势,其中一些优势将随着时间的推移变得更加重要(例如 Windows 的 2TiB 启动磁盘限制)。切换到 UEFI 启动将改变启动过程的一些细节,但一旦您克服了可能遇到的任何启动问题,您的整体计算体验就不会发生太大变化。
编辑:
您能否详细介绍 OpRom 设置 (Option Rom)。它们似乎允许您在 UEFI 启动或“传统”启动之间进行选择,并且它们适用于视频卡、网卡和各种其他 PCI 设备。
许多插卡都提供与主板上的固件交互的固件。如果要使插卡的固件发挥作用,这两种类型的固件必须能够“对话”。这对于在操作系统启动之前使用该卡是必要的——例如,在视频卡上显示固件选项或启动管理器菜单、通过网卡执行网络启动或从连接到磁盘控制器卡的硬盘启动。
就像引导加载程序一样,插入式设备固件中的代码被编写为与 BIOS 或 EFI 接口(如果我没记错的话,插入式卡可以同时支持这两种接口)。正如您所观察到的,一些 EFI 提供了在细粒度的基础上启用或禁用此支持的选项。在某些情况下,EFI 可以使用卡的 BIOS 模式支持,通过“翻译”调用使其能够在 EFI 模式下工作。(例如,这在视频卡中很常见;您通常可以插入固件中只有 BIOS 支持的旧视频卡,并仍使用它在 EFI 模式下启动。)
我不知道您提到的每个设置的具体作用。例如,我不知道这些选项之一的“仅 BIOS”是否会使卡仅在 BIOS 模式下工作,“转换”以便 EFI 可以在 EFI 模式下使用 BIOS 模式调用,还是其他什么。事实上,鉴于其他 EFI 用户界面领域缺乏标准,我预计细节会因 EFI 而异,因此如果您需要了解详细信息,您可能需要查阅计算机的文档或进行实验。我见过一些计算机在两个不同的菜单中有非常相似的选项,这进一步使问题复杂化。
答案2
- 众所周知,BIOS 是访问启动选项的重要部分。那么现在 UEFI 可以做到这一点吗?怎么做?
UEFI 是一种跨平台固件接口,可取代名为 BIOS 的 x86 特定固件标准。许多 UEFI 实现还包括 BIOS 兼容性/“传统”模式,以便从 MBR 启动并向操作系统呈现类似 BIOS 的界面;但是,这不是标准所要求的。
- 我怎么知道我是使用 UEFI 而不是 BIOS 启动的?
如果您有一块兼容 UEFI 的主板,并且提供兼容性/传统 BIOS 启动功能,那么它的固件菜单将提供诸如设置默认启动模式或甚至在 UEFI 或 BIOS 模式下启动单个设备等选择: 否则,可能没有一种简单的方法来判断,例如,不使用操作系统探测固件。
- 那么“使用 BIOS 启动”和“使用 UEFI 启动”的真正区别是什么?
存在许多差异:
- UEFI 定义了与 BIOS 类似的操作系统固件接口,但并不特定于任何处理器架构。BIOS 特定于 Intel x86 处理器架构,因为它依赖于 x86 处理器支持的 16 位“实模式”接口。
- UEFI 可以配置为加快启动过程的各个部分,例如,技嘉 GA-EP45-DS3 上的 UEFI 初始化需要 11 秒,而 BIOS 则需要 19 秒。
- 对于已安装的同一操作系统,UEFI 模式可能会呈现与 BIOS 模式不同的固件/硬件特性。
答案3
问:众所周知,BIOS 是访问启动选项的重要部分。那么现在 UEFI 可以做到这一点吗?如何做到?
答:这是术语上的混淆。例如“进入 BIOS 以更改 blabla”。对于您输入的内容,政治上正确的术语是“固件设置实用程序”。如果您将“BIOS”与“UEFI”进行对比,则它指的是其他东西,即:引导执行环境。
因此,如果您指的是该安装实用程序,那么 a) 不要将其称为 UEFI,并且 b) 它基本上与以前相同。
设置实用程序如何与硬件及其永久存储进行通信是固件私有的。因此那里也没有任何变化。
问:那么“使用 BIOS 启动”和“使用 UEFI 启动”之间真正的区别是什么?
答:引导加载程序所处的环境有所不同。而使用 UEFI,该环境指定得更明确,更加现代化且功能丰富。