“使用BIOS引导”和“使用UEFI引导”有什么区别?


118

现在Windows 8支持UEFI引导加载程序,并且我已经读到它与BIOS有所不同,但是在Google上进行了许多搜索后,我不清楚。

请注意以下几点:-

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

  • 我怎么知道我使用UEFI引导而不是BIOS?

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

Answers:


134
  • 众所周知,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在大磁盘上引导一些非Microsoft操作系统(例如Linux和FreeBSD)。

实际上,如果您关心UEFI或对UEFI感兴趣,那么最大的问题就是UEFI足够新,以至于对其的支持有些杂乱无章,尤其是在某些较旧且更奇特的OS中。UEFI本身已经足够新,以至于它的大多数实现都是错误的,而它们之间的差异还不够大,以至于很难描述一般情况。因此,使用UEFI可能是一个挑战。OTOH,UEFI 未来。它具有一些适度的优势,其中一些优势会随着时间的推移变得越来越重要(例如Windows的2TiB引导磁盘限制)。切换到UEFI引导将改变引导过程的一些细节,但是一旦您克服了可能遇到的任何引导问题,您的总体计算体验就不会改变太多。


编辑:

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

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

就像引导加载程序一样,插件设备固件中的代码被编写为与BIOS或EFI交互(尽管如果我没记错的话,插件卡可以支持这两者)。如您所见,某些EFI提供了一些选项来启用或禁用此支持。在某些情况下,EFI可以使用卡的BIOS模式支持,通过“转换”呼叫使它在EFI模式下工作。(例如,这在视频卡中很常见;您通常可以插入旧的视频卡,但固件中仅包含BIOS支持,而仍可以使用它在EFI模式下启动。)

我不知道您记下的每个设置的确切含义。例如,我不知道这些选项之一的“仅BIOS”是否会使卡仅在BIOS模式下工作,“转换”,以便EFI可以在EFI模式下使用BIOS模式调用。实际上,由于其他EFI用户界面领域缺乏标准,我希望每个EFI的细节都不同,因此,如果您需要了解这些细节,则可能需要查阅计算机的文档或进行实验。我已经看到一些计算机在两个不同的菜单中具有非常相似的听起来的选项,这使事情变得更加复杂。


如果硬盘同时具有BIOS引导分区和EFI系统分区,这是否意味着可以在BIOS模式和EFI模式下引导该硬盘?那么硬盘是否与“启动模式”无关?我在gdisk教程上看到,它设置了BIOS引导分区和EFI系统分区。在其他情况下,也有人说您可能需要/boot在不同的分区上使用(主要是因为我正在尝试使用ZFS)。如何将RAIDED /boot与BIOS引导分区和EFI系统分区协调起来?
CMCDragonkai 2014年

磁盘可以同时具有ESP和BIOS引导分区。后者由GRUB使用,因此,即使没有后者,也可以在EFI和BIOS中引导磁盘,这取决于所使用的引导加载程序。RAID阵列外部/boot通常存在一个单独的Linux 分区。无论引导模式如何,引导加载程序都必须能够读取内核,并且大多数引导加载程序都无法处理软件RAID。(据说GRUB可以做到,但很少有人尝试。)
Rod Smith

我需要使用软RAID,/boot因为ZFS无法/boot在上面使用。我在Linux邮件列表中的ZFS上询问。
CMCDragonkai 2014年

1
BIOS甚至没有与安全启动等效的东西。
罗德·史密斯

1
在最流行的主流OS中,尤其是在Windows 7和更高版本以及最新的Linux发行版中,UEFI的支持相当不错。如果您超出该领域,则应研究特定操作系统的UEFI支持。我检查的最后一个,例如ReactOS,Haiku和FreeDOS都缺少UEFI支持。但是,自从我检查其中任何一个以来已经有一段时间了,因此其中一个或多个现在可能已获得UEFI支持。
罗德·史密斯Rod

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

UEFI是一个跨平台的固件接口,它替代了x86特定的固件标准BIOS。许多UEFI实施还包括BIOS兼容性/“旧版”模式,以允许从MBR引导并向OS呈现类似BIOS的接口;但是,这不是标准要求的。

  • 我怎么知道我使用UEFI引导而不是BIOS?

如果您的UEFI兼容主板提供兼容性/旧版BIOS引导,则其固件菜单将提供诸如设置默认引导模式甚至以UEFI或BIOS模式引导单个设备之类的选项: 否则,可能不容易无需使用操作系统探测固件即可知道的方法。

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

有很多区别:

  • UEFI定义了类似BIOS的类似OS固件的接口,但并不特定于任何处理器体系结构。BIOS特定于Intel x86处理器体系结构,因为它依赖于x86处理器支持的16位“实模式”接口。
  • 可以将UEFI配置为加快启动过程的各个部分,例如,技嘉GA-EP45-DS3上的UEFI在11秒内初始化,而BIOS在19秒内初始化
  • 与BIOS模式相比,UEFI模式向同一已安装的操作系统提供的固件/硬件功能可能有所不同。

查看有关UEFI的更多信息


1
并非总是能够仅凭固件设置来确定实际的启动模式是什么,因为大多数EFI都依赖于基于磁盘的因素以及固件设置来确定启动模式。这些基于磁盘的因素包括分区表类型,MBR中的“启动/活动”标志设置,EFI系统分区或其中的文件的存在/不存在等。唯一可以肯定的方法是检查已引导操作系统中EFI模式或BIOS模式引导的迹象,这些迹象是特定于操作系统的。
Rod Smith

1
不,UEFI从未“在传统BIOS之上实现”。UEFI是一种固件,它替代了旧版本的BIOS。它可能包括兼容性/旧版模式,该模式使其能够从BIOS样式的MBR引导,并向想要一个BIOS的OS提供与BIOS等效的接口,但这并不意味着它下方有BIOS。
underscore_d

1
P0 / P1 / P2在您的图像中代表什么?
CMCDragonkai

图片链接已损坏
Dan Dascalescu '16

1
@underscore_d,有一些在传统BIOS之上运行的EFI实现。我在这里写了一个技嘉“混合EFI”。我的经验是非常负面的。还有CloverDUET,它们在基于BIOS的标准计算机上像启动加载程序一样运行以使它们能够运行EFI模式启动加载程序和OS。不过,Clover和DUET从技术上讲不是固件,因此我不确定它们是否真的有用。
罗德·史密斯

8

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

答:这是对术语的混淆。例如,“输入BIOS更改blabla。”从政治上来说,正确的术语是您输入的“固件设置实用程序”。如果您将“ BIOS”与“ UEFI”进行对比,它指的是其他内容,即:引导执行环境。

因此,如果您指的是设置实用程序,则a)不要称其为UEFI,b)它基本上与以前一样。

设置实用程序如何与硬件及其永久存储进行通信,这对固件是私有的。因此,那里也没有任何变化。

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

答:引导加载程序所处的环境不同。借助UEFI,该环境的定义更加清晰,方式更加现代且功能丰富。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.