我应该使用 UEFI 还是 BIOS(传统/CSM)引导模式安装操作系统?

kFY*_*tek 24 bios boot bootloader installation uefi

我正在我的电脑上安装一个新的操作系统。我应该安装它以在 UEFI 或传统 (BIOS/CSM) 模式下启动吗?使用一种或另一种的优点或缺点是什么?

kFY*_*tek 33

我在很多地方都看到过这个问题,只有部分答案,所以我的目标是提供类似引导方案的完整指南;)

首先,您需要了解一些背景信息:

  • BIOS 引导通常需要MBR分区,尽管一些引导加载程序支持其他分区方案,如GPT
  • UEFI引导通常需要位数的操作系统相匹配的固件的位数-和广大基于UEFI的机器有64位固件。

必须使用 BIOS 的情况

  • 您正在安装不支持 UEFI 启动的旧操作系统(例如 SP1 之前的 Windows Vista 或更早版本),或者
  • 您需要安装与固件位数不同的操作系统(即在具有 64 位 UEFI 的机器上安装 32 位操作系统,反之亦然)

请注意,通常可以通过使用专门设计的引导加载程序1强制要求名义上需要 UEFI 的操作系统在基于 BIOS 的机器上引导。例如,OS X 就是这种情况——任何 Hackintosh 爱好者都会告诉你。

如果您打算双引导并正在安装第二个操作系统...

虽然很困难,但可以在 MBR 和 GPT 方案之间进行转换,并为不同的模式重新安装引导加载程序。

也可以让一个操作系统通过 UEFI 启动,另一个通过 BIOS 启动。有时您别无选择,例如,如果您已经安装了基于 UEFI 的 64 位 Windows,并且想要同时安装 32 位 Linux。或者一些不支持 UEFI 的旧的和/或奇特的操作系统。但请三思是否真的要这样做。

所以,最重要的是:坚持使用您机器上已有的引导方案,除非您没有那个选择。这几乎总是正确的方式。

我怎么知道我的机器正在使用什么引导方案?

经验法则是:

  • 如果是 Mac,则使用 UEFI;一些早期的基于 Intel 的模型使用 EFI32,自 2008 年以来的所有模型都使用标准的 64 位 UEFI。
  • 如果是 Windows 8 或更高版本的品牌 PC,则使用 UEFI;自 Windows 8 起,Microsoft 要求在所有符合 Windows 徽标规范的计算机上默认启用安全启动(需要 UEFI)。
  • 如果是装有 Windows XP 或更早版本的 PC,则它使用 BIOS。

对于装有 Windows Vista 或 7 或 Linux 的 PC,以及 DIY PC 或由当地小型企业销售的 PC,您永远无法仅凭肉眼就能确定。在这种情况下,有几种方法可以识别引导模式:

  • 您可以检查分区表。如果它是 GPT 磁盘并且具有“EFI 系统分区”(通常在主操作系统卷之前),则它会以 UEFI 模式启动。否则,它是 BIOS 模式。
  • 您可以进入 BIOS/UEFI Setup 程序并搜索引导优先级选项。如果它显示 EFI 或 UEFI 条目,和/或它们有点描述操作系统(如“Windows 启动管理器”或“Ubuntu”),它会在 UEFI 模式下启动。如果最多只显示驱动器型号,则为BIOS模式。

如果您要在新机器上安装第一个操作系统或打算清除硬盘驱动器...

首先,检查您是否有任何选择。进入 BIOS/UEFI 设置程序并寻找诸如“引导模式”之类的选项,这些选项可以在“UEFI”、“Legacy”、“UEFI+Legacy”等之间切换。它也可能被称为“启用 UEFI 引导”或“启用传统引导”之类的东西,或者提到术语 CSM。如果您的固件中没有这样的选项,那么您就不走运了,必须坚持使用现有的任何东西——在旧机器上,这将是 BIOS 模式;还有一些较新的机器(例如 Microsoft Surface 系列)仅支持 UEFI 模式。如果你仍然不确定你有什么——在设置中搜索“安全启动”——如果在任何地方提到它,那就是 UEFI。

假设您有选择...让我们看看这两种模式的优势。

UEFI的优势

  • 更快的启动和更好的电源管理2对于 Windows 尤其如此——根据各种因素,带快速启动的 UEFI 甚至可以是传统启动的两倍。对于 Linux,差异会更小,但仍然存在。这是因为 BIOS 引导的操作系统需要重新初始化一些可能已经初始化的硬件,初始操作系统代码需要以非常慢的传统模式加载,等等。使用 Linux,您还可以完全放弃 GRUB(或等效的)并直接从固件启动内核,这也可以加快进程。此外,重启、睡眠、休眠等有时可能会部分或完全绕过POST,进一步提高启动和电源相关操作的整体速度。
  • 安全启动选项。根据您的用例,它可能比优势更麻烦(但大多数硬件允许禁用它),而且它的实际安全优点是有限的——但仍然可以在固件级别进行额外的签名检查对rootkit 的额外保护。只是不要仅仅因为它使用安全启动就假设您的系统是安全的,对于这样的假设来说它太有缺陷了。
  • 更好地支持大型驱动器。MBR 分区方案不支持大小超过 2 TiB 的磁盘。您仍然可以通过使用混合分区表和额外的引导加载程序分区(大多数操作系统默认创建)在 BIOS 下从如此大的磁盘启动,但它在 UEFI 下得到更好的支持。此外,GPT 没有 MBR 的 4 个分区限制,让您免于像“扩展分区”这样的废话。通过拼凑,在 MBR 之上几乎没有什么是你不能做的——但它得到了优雅和原生的支持,不需要拼凑;)
  • 本机多引导。UEFI 允许本机声明在单个硬盘驱动器上安装了多个操作系统——然后您可以从固件 UI 中在它们之间进行选择,而无需额外的引导加载程序。虽然处理多重引导并不总是最方便的选择,但这应该会减少诸如操作系统更新或某些防病毒软件覆盖引导加载程序等问题的数量。
  • 更好的软件控制。操作系统可以以标准方式更改某些 UEFI 设置(特别是引导顺序)。这使您可以从操作系统内部订购诸如“关闭并从 CD 重新启动”(或在上述情况下“启动另一个操作系统”)之类的操作,而无需进入固件 UI。

BIOS的优点

  • 更简单的启动过程。更简单,就像设计更简单一样——对于现代硬件来说不一定更简单(这就是它变慢的原因)。使用 UEFI,只有可移动媒体才能始终一致地启动– 内部驱动器上操作系统的引导加载程序条目存储在主板上。这就是为什么在基于 UEFI 的机器上,当更换硬盘驱动器或在机器之间移动驱动器时,您需要在可移动媒体(或固件内 EFI 外壳,有时在 DIY 市场主板上可用,但在名牌机器中几乎不存在)来重建新驱动器的内部引导加载程序配置。相比之下,BIOS 只启动驱动器的第一个扇区,这允许在机器之间轻松克隆和移动硬盘驱动器(当然,前提是没有与驱动程序相关的问题)。
  • 更灵活的操作系统选择。早于 Vista SP1 的 Windows 版本无法通过 UEFI 启动。与较旧的 Linux 发行版类似。此外,通常不可能使用与固件不同的位数来启动操作系统——绝大多数基于 UEFI 的系统都是 64 位的,这意味着没有 32 位操作系统,除非求助于传统启动。相比之下,几乎所有东西都可以通过 BIOS 启动。1
  • 少bug。UEFI 实现通常具有微妙但致命的缺陷和错误,这可能会通过删除固件配置加载错误的驱动程序导致主板变砖。相比之下,BIOS 自 1981 年以来一直存在,至少在此期间它与操作系统的接口方式没有太大变化。在现代使用中,它是一个非常薄的层,仅在启动时使用,而且大多是单向的,操作系统几乎无法访问 BIOS 中的任何内容。这意味着要致命地破坏事物要困难得多。

底线

如果您符合以下条件,我的建议是通过旧版 BIOS 启动:

  • 实际上是在设置虚拟机——VM 管理程序上的 UEFI 往往是有限的和实验性的;BIOS 启动得到更好的支持
  • 需要在 64 位机器上启动 32 位操作系统
  • 有一个已知特别容易出错的固件
  • 经常在机器之间交换或移动硬盘驱动器

否则,最好使用 UEFI。它更快、更安全并且具有更好的功能。

脚注

  1. 甚至可以在 BIOS 之上安装 UEFI 环境。TianoCore的 DUET 构建专门做这件事——但这样的设置对于现实世界的安装通常是不切实际的。除非你有一台只有 BIOS 的机器,而且你正在安装一些实验性的操作系统,除了通过 UEFI 引导加载程序之外,这些操作系统无法以任何其他方式引导——你不想这样做。
  2. 一些早期的 UEFI 固件可能会将 UEFI 引导加载程序“固定在”其他基于 BIOS 的固件之上。在这些极少数情况下,BIOS 启动实际上可能更快,但这并不代表大多数硬件。