我在各个地方看到过这个问题的提问,但只有部分答案,所以我打算提供一个类似完整指南的引导方案;)
首先,你需要一些背景信息:
BIOS引导通常需要MBR分区,尽管一些引导加载程序支持其他分区方案,比如GPT。
UEFI引导通常要求操作系统的位数与固件的位数匹配 - 绝大多数基于UEFI的机器都有64位固件。
必须使用BIOS的情况
你正在安装一个不支持UEFI引导的旧操作系统(例如SP1之前的Windows Vista或更早版本),或者
你需要在固件位数与操作系统位数不同的机器上安装操作系统(即64位UEFI上的32位操作系统,或反之亦然)
请注意,通常需要UEFI的操作系统可以通过使用特殊设计的引导加载程序来强制在基于BIOS的机器上启动1。例如,这就是OS X的情况-任何黑苹果爱好者都可以告诉你。
如果您计划双启动并安装第二个操作系统...
虽然困难,但可以在MBR和GPT方案之间进行转换,并重新安装不同模式的引导加载程序。
也可以通过UEFI引导一个操作系统,通过BIOS引导另一个操作系统。有时您别无选择,例如,如果您已经安装了基于UEFI的64位Windows,并且想要在其旁边安装32位Linux。或者一些不支持UEFI的旧的/异国情调的操作系统。但请三思而后行,是否真的需要这样做。
因此,底线是:除非没有选择,否则坚持使用您机器上已有的引导方案。这几乎总是正确的方式。
我如何知道我的机器使用哪种引导方案?
经验法则是:
如果是Mac电脑,它使用UEFI;一些早期基于Intel的型号使用EFI32,自2008年以来的所有型号都使用标准64位UEFI。
如果是预装Windows 8或更高版本的品牌PC,它使用UEFI;微软要求所有符合Windows徽标规范的计算机默认启用Secure Boot(需要UEFI)自Windows 8以来。
如果是预装Windows XP或更早版本的PC,它使用BIOS。
对于预装Windows Vista或7、Linux的PC,以及DIY PC或由小型本地企业销售的PC,你不能仅凭外观确定。有几种方法可以在这种情况下识别引导模式:
你可以检查分区表。如果是GPT磁盘并且具有“EFI系统分区”(通常在主操作系统卷之前),它以UEFI模式启动。否则,它是BIOS模式。
你可以进入BIOS/UEFI设置程序并搜索引导优先级选项。如果显示了EFI或UEFI条目,并且/或者它们在某种程度上描述了操作系统(如“Windows Boot Manager”或“Ubuntu”),它以UEFI模式启动。如果只显示驱动器型号,最多是BIOS模式。
如果你正在在新的机器上安装第一个操作系统,或者打算清空你的硬盘...
首先,检查一下你是否有任何选择。进入BIOS/UEFI设置程序,寻找可以在"启动模式"之间切换的选项,比如"UEFI"、"传统"、"UEFI+传统"之类的。也可能被称为"启用UEFI启动"或"启用传统启动",或者提到CSM术语。如果你的固件中没有这样的选项,那就没办法了,只能按照你已经拥有的方式进行操作 - 在旧的机器上可能是BIOS模式;也有一些较新的机器(例如微软Surface系列)仅支持UEFI模式。如果你还不确定自己的情况 - 在设置中搜索"安全启动" - 如果在任何地方都提到了它,那就是UEFI。
假设你有选择的余地...让我们看一下两种模式的优点。
UEFI的优点:
更快的启动和更好的电源管理。2 这对于Windows来说尤为明显 - 根据各种因素,UEFI与快速启动相比传统引导方式甚至可以快两倍。对于Linux来说,差异会小一些,但仍然存在。这是因为基于BIOS引导的操作系统需要重新初始化一些可能已经初始化的硬件,初始操作系统代码需要以非常慢的传统模式加载等等。在Linux中,您还可以完全摒弃GRUB(或等效物),直接从固件引导内核,这也可以稍微加快进程。此外,重新启动、睡眠、休眠等操作有时可能部分或完全绕过POST,进一步提高启动和电源相关操作的整体速度。
安全启动选项。根据您的使用情况,它可能更麻烦而不是优势(但大多数硬件允许禁用它),而且其实际安全性优点有限 - 但是,在固件级别进行额外的签名检查可以提供额外的防止rootkit的保护。只是不要因为使用了安全启动就认为您的系统是安全的,它对于这样的假设来说太有缺陷了。
更好的大容量驱动器支持。MBR分区方案不支持超过2 TiB大小的磁盘。您仍然可以在BIOS下从这样的大容量磁盘启动,通过使用混合分区表和额外的引导加载程序分区(大多数操作系统默认创建),但在UEFI下支持更好。此外,GPT没有MBR的4个分区限制,使您摆脱了“扩展分区”之类的无意义限制。几乎没有什么是您不能通过补丁工作完成的 - 但是它得到了优雅和本地化的支持,而无需进行补丁工作 ;)
本地多重引导。UEFI允许在单个硬盘上本地声明存在多个操作系统安装 - 您可以从固件UI中选择它们,而无需额外的引导加载程序。虽然这并不总是处理多重引导最方便的选项,但这应该减少问题的数量,例如操作系统更新或某些防病毒软件覆盖引导加载程序等。
更好的软件控制。某些UEFI设置(特别是引导顺序)可以通过操作系统以标准方式更改。这使您能够在操作系统内部排序诸如“关闭并从CD重新启动”(或在上述情况下“引导另一个操作系统”)之类的事物,而无需进入固件UI。
BIOS的优势
更简单的启动过程。 简单,意味着设计上更简单 - 不一定对于现代硬件而言更简单(这也是为什么它更慢)。有了UEFI,只有可移动介质才能始终被一致地引导 - 存储在主板上的操作系统引导程序条目位于内部驱动器上。这就是为什么在基于UEFI的机器上,当更换硬盘或在机器之间移动驱动器时,您需要一个可移动介质上的修复环境(或者固件EFI shell,在DIY市场的某些主板上有时可用,但在品牌机器中几乎不存在)来重建新驱动器的内部引导程序配置。相比之下,BIOS只是引导驱动器的第一个扇区,可以轻松克隆和在机器之间移动硬盘(当然,前提是没有与驱动程序相关的问题)。
更灵活的操作系统选择。 早于Vista SP1的Windows版本无法通过UEFI引导。类似地,旧版Linux发行版也是如此。此外,一般情况下,不可能使用不同位数的固件引导操作系统 - 而绝大多数基于UEFI的系统都是64位的,这意味着如果不采用传统引导方式,就无法引导32位操作系统。1相比之下,几乎所有东西都可以通过BIOS引导。
更少的错误。 UEFI实现经常存在微妙但致命的缺陷和错误,可能会导致通过 移除固件配置 或 加载错误驱动程序 而使主板变砖。相比之下,BIOS自1981年以来一直存在,至少在与操作系统的接口方式上没有太大变化。在现代用法中,它只是一个在启动时使用的非常薄的层,并且基本上是单向的,操作系统几乎无法访问保留在BIOS内部的任何内容。这意味着它更难以发生严重故障。
底线
我的建议是,如果你:
正在设置虚拟机 - VM hypervisors 上的 UEFI 往往受限且实验性;BIOS 引导得到更好的支持
需要在 64 位机器上引导 32 位操作系统
拥有被知道特别存在缺陷的固件
经常在机器之间交换或移动硬盘
否则,选择 UEFI 更好。它更快速,更安全,并提供更好的功能。
脚注
甚至可以在BIOS之上安装UEFI环境。TianoCore的DUET版本就是这样做的,但这种设置通常对于实际安装来说不切实际。除非你有一台仅支持BIOS的机器,并且你正在安装一些实验性的操作系统,而这些操作系统只能通过UEFI引导程序启动 - 否则你不想这样做。
一些早期的UEFI固件可能会将UEFI引导程序“融合”到其他基于BIOS的固件之上。在这些罕见的情况下,BIOS引导可能实际上更快,但这并不代表大多数硬件的情况。