“使用 BIOS 启动”和“使用 UEFI 启动”有什么区别

avi*_*irk 124 bios uefi

现在 Windows 8 支持 UEFI 引导加载程序,我已经读到它与 BIOS 不同,但在谷歌上进行了多次搜索后,我不清楚。

一些要点如下:-

  • 众所周知,BIOS 是访问引导选项的重要部分。那么 UEFI 现在会这样做吗?如何?

  • 我怎么知道我是用 UEFI 而不是 BIOS 启动的?

  • 那么“使用 BIOS 引导”和“使用 UEFI 引导”的真正区别是什么?

Rod*_*ith 142

  • 众所周知,BIOS 是访问引导选项的重要部分。那么现在 UEFI 会这样做吗?如何?

BIOS 通过读取硬盘上的第一个扇区并执行它来启动;该引导扇区依次定位并运行附加代码。由于空间限制和 BIOS 运行 16 位代码,BIOS 系统非常有限,而现代计算机使用 32 位或 64 位 CPU。相比之下,EFI(或 UEFI,即 EFI 2.x)通过.efi从硬盘分区(称为 EFI 系统分区 (ESP))加载 EFI 程序文件(带有文件扩展名)来启动。这些 EFI 引导加载程序可以利用 EFI 引导服务进行诸如从硬盘读取文件之类的事情。

实际上,如果您使用像 Linux 这样具有复杂 BIOS 模式引导加载程序的操作系统,则 EFI 模式引导可能类似于 BIOS 模式引导,因为 GRUB 2(最流行的 BIOS 模式引导加载程序)用于 Linux)已被移植到 EFI 下工作,并且许多 Linux 发行版在 EFI 系统上默认安装 GRUB 2。OTOH,您可以用其他 EFI 引导加载程序替换或补充 GRUB 2。事实上,Linux 内核本身可以是一个 EFI 引导加载程序;添加了代码以使用 3.3.0 内核执行此操作。以这种方式使用时,EFI 本身会加载并运行 Linux 内核,或者您可以使用第三方引导管理器(如rEFIndgummiboot)让您选择要引导的操作系统或内核。

  • 我怎么知道我是用 UEFI 而不是 BIOS 启动的?

正如 Root 所说,固件的用户界面中有一些线索;然而,这些并不可靠,并且因一台计算机而异。唯一确定的方法是检查计算机是如何启动的。例如,在 Linux 中,存在一个称为/sys/firmware/efi诊断的目录。如果它存在,则您已在 EFI 模式下启动;如果它不存在,则您可能已在 BIOS 模式下启动。(不过,在某些情况下,此目录在 EFI 模式引导中可能不存在。)dmesg引用 EFI 的输出也是 EFI 模式引导的诊断信息。在 Windows 中,引导盘的分区表是诊断性的;如果是 GPT,则以 EFI 模式启动,如果是 MBR,则以 BIOS 模式启动。

  • 那么“使用 BIOS 引导”和“使用 UEFI 引导”的真正区别是什么?

EFI可以更快,但这并不确定。最大的速度差异在于过程早期的硬件初始化。在我的系统,这是总的开机时间的一小部分,所以在硬件初始化时间减少了,而好,不会使全部太大的差别。毕竟,我不是每十分钟重新启动一次。

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在大盘上启动一些非微软操作系统(如Linux和FreeBSD)。

实际上,如果您关心或对 UEFI 感兴趣,那么最大的问题只是 UEFI 足够新,以至于对它的支持有点参差不齐,尤其是在一些较旧且更具异国情调的操作系统中。UEFI 本身足够新,以至于它的大多数实现都有缺陷,而且那些实现之间的差异不够大,以至于很难对事物进行一般性描述。因此,使用 UEFI 可能是一个挑战。OTOH,UEFI未来。它有一些适度的优势,其中一些优势会随着时间的推移变得更加重要(例如 Windows 的 2TiB 启动盘限制)。切换到 UEFI 引导会改变引导过程的一些细节,但是一旦您克服了可能遇到的任何引导问题,您的整体计算体验不会发生太大变化。


编辑:

您能否扩展 OpRom 设置(Option Rom)。它们似乎允许您在 UEFI 启动或“传统”启动之间进行选择,它们适用于显卡、网卡和各种其他 PCI 设备。

许多插件卡提供与主板上的固件接口的固件。如果卡的固件要发挥作用,这两种类型的固件必须能够“对话”。这是在操作系统启动前使用卡所必需的——例如,在视频卡上显示固件选项或启动管理器菜单,通过网卡执行网络启动,或从连接到的硬盘启动磁盘控制器卡。

就像引导加载程序一样,插件设备固件中的代码被写入与 BIOS 或 EFI 的接口(尽管插件卡可以同时支持两者,如果我没记错的话)。正如您所观察到的,某些 EFI 提供了在细粒度基础上启用或禁用此支持的选项。在某些情况下,EFI 可以使用卡的 BIOS 模式支持,通过“转换”调用使其能够在 EFI 模式下工作。(例如,这在视频卡中很常见;您通常可以插入旧视频卡,其固件中只有 BIOS 支持,并且仍然使用它在 EFI 模式下启动。)

我不知道你记下的每个设置都做了什么。例如,我不知道这些选项之一的“仅 BIOS”是否会使卡仅在 BIOS 模式下工作,“转换”以便 EFI 可以在 EFI 模式下使用 BIOS 模式调用,或其他方式。事实上,鉴于其他 EFI 用户界面领域缺乏标准,我希望每个 EFI 的详细信息有所不同,因此如果您需要了解详细信息,可能需要查阅计算机的文档或进行实验。我见过一些计算机在两个不同的菜单中具有非常相似的选项,这使问题进一步复杂化。


Elm*_*lmo 21

  • 众所周知,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 模式不同的固件/硬件功能。

查看有关 UEFI 的更多信息


Rob*_*mer 11

问:众所周知,BIOS 是访问引导选项的重要部分。那么现在 UEFI 会这样做吗?如何?

答:这是对术语的混淆。例如“进入 BIOS 更改 blabla”。政治正确的术语是您输入的那个东西的“固件设置实用程序”。如果您将“BIOS”与“UEFI”进行对比,则它指的是其他东西,即:启动执行环境。

因此,如果您的意思是设置实用程序,那么 a) 不要将其称为 UEFI,并且 b) 它与以前基本相同。

设置实用程序如何与硬件通信以及它的永久存储是固件私有的。所以那里也没有任何改变。

问:那么“使用 BIOS 引导”和“使用 UEFI 引导”之间的真正区别是什么?

答:引导加载程序所处的环境不同。使用 UEFI,该环境更明确、更现代、功能更丰富。