这个页面是免费的,没有烦人的广告。然而,为了维持网站的运行,我花费了时间和金钱。如果您觉得这个页面对您有帮助,请考虑捐款以支持我们。谢谢!
在过去几年中,一种名为可扩展固件接口(EFI)的新固件技术悄然兴起,但大多数普通用户对此并不了解。EFI,或者更新版本的统一可扩展固件接口(UEFI),已经开始取代传统的基本输入/输出系统(BIOS)固件技术。对于有经验的计算机用户来说,他们或多或少对BIOS有所了解。
本页面旨在为Linux用户提供关于EFI技术的快速介绍,并提供有关在此类计算机上安装Linux的建议。然而,EFI是一个复杂的主题;EFI软件本身就很复杂,许多实现都有系统特定的行为和缺陷。因此,我无法在一个页面上涵盖在EFI计算机上安装和使用Linux的所有知识。我希望您将本页面作为一个有用的起点,并通过每个部分以及参考文献部分的链接找到更多的文档。
首先,您需要确定您的计算机是否使用EFI技术。EFI是一种固件,内置于计算机中,用于处理低级任务。最重要的是,固件控制计算机的引导过程,这意味着基于EFI的计算机与基于BIOS的计算机的引导过程不同。要确定您的计算机是否支持EFI,请查看固件设置实用程序和用户手册中关于EFI、UEFI和传统引导的部分。如果您找不到相关参考,那么您的计算机可能使用传统的BIOS引导。您还可以尝试使用只支持EFI模式的引导介质,例如使用rEFInd制作的USB闪存驱动器或CD-R镜像。
在继续之前,您应该了解大多数x86和x86-64架构的计算机上的EFI都包含一个名为兼容支持模块(CSM)的组件,它允许EFI使用传统的BIOS引导机制。这是非常方便的,因为它向后兼容,但也会导致一些意外情况,因为在控制时没有统一的使用规范和用户界面。特别是,您的Linux安装介质很容易意外地以BIOS/CSM/legacy模式启动,这将导致Linux以BIOS/CSM/legacy模式安装。如果Linux是唯一的操作系统,这可能没有问题,但如果与以EFI模式启动的Windows双启动,将会变得非常复杂。以下部分将帮助您以正确的模式引导安装程序。如果您已经在BIOS模式下安装了Linux,并希望切换到EFI模式引导,请参阅后续章节“将传统模式下安装的引导转换为EFI模式下的引导”。
大多数Linux发行版多年来已经支持EFI。然而,不同的发行版对EFI的支持程度有所不同。大多数主流发行版(如Fedora、OpenSUSE、Ubuntu等)对EFI有很好的支持,包括对安全启动的支持。但是,一些自定义的发行版(如Gentoo)对EFI的支持较弱,但由于其自定义性质,很容易添加EFI支持。实际上,您可以向任何Linux发行版添加EFI支持:您需要在计算机上安装Linux(即使在BIOS模式下),然后安装EFI引导加载程序。要了解如何执行此操作的详细信息,请参阅“将传统模式下安装的引导转换为EFI模式下的引导”部分。
在准备安装Linux时,有几个步骤可以使EFI计算机上的安装更顺利:
-
升级固件:有些EFI存在问题,但硬件制造商偶尔会发布固件更新。因此,我建议您将固件升级到最新版本。如果您已经了解到您的计算机的EFI存在问题,请在安装Linux之前进行固件更新,因为在安装Linux之后更新固件可能需要额外的操作来解决问题。然而,升级固件是有风险的,所以最好按照制造商提供的方式进行升级。
-
了解如何使用固件:通常,您可以通过在引导过程的早期按下Del键或功能键来进入固件设置实用程序。尽早查看相关提示信息,或尝试每个功能键。有些制造商将这些设置隐藏得很深。在某些情况下,您可以在Windows 8中完成这些设置,如本页面所述。
-
调整固件设置:在安装Linux之前,您可能需要调整一些固件设置,例如禁用快速启动功能。请参考您的固件设置实用程序和用户手册,以了解如何进行这些调整。
-
检查分区表:使用GPT fdisk、parted或其他分区工具检查磁盘分区。最好创建一个包含每个分区确切起始和结束位置的纸质记录。这将是一个有用的参考,特别是在手动分区安装时。如果已经安装了Windows,请确保您的EFI系统分区(ESP)可以被识别,它是一个FAT分区,并设置了“启动标志”(在parted或Gparted中)或在gdisk中的类型码为EF00。
安装Linux时,以下是一些常见的问题和解决方案:
-
准备ESP分区:除了Mac,EFI使用ESP分区来存储引导加载程序。如果您的计算机已经预装了Windows,则已经存在ESP分区,可以直接在Linux上使用。否则,我建议创建一个大小为550MB的ESP分区。在此分区上创建一个FAT32文件系统。如果您使用Gparted或parted准备ESP分区,请确保为其设置“启动标志”。如果您使用GPT fdisk(gdisk,cgdisk或sgdisk)准备ESP分区,请确保为其设置类型码EF00。有些安装程序会创建一个较小的ESP分区,并将其设置为FAT16文件系统。尽管这样可以正常工作,但如果您以后需要重新安装Windows,安装程序将无法识别FAT16文件系统的ESP分区,因此您需要备份它并将其转换为FAT32文件系统。
-
使用ESP分区:不同的发行版的安装程序以不同的方式识别ESP分区。例如,Debian和Ubuntu的某些版本将ESP分区称为“EFI boot partition”,并且不会明确显示其挂载点(尽管它会在后台挂载);但是其他发行版,如Arch或Gentoo,可能需要手动挂载ESP分区。
-
设置引导程序位置:某些发行版可能会询问您要将引导程序(如GRUB)安装到何处。如果ESP分区已按上述方式正确标记,您无需担心此问题,但某些发行版仍可能会询问。请尝试使用ESP分区。
-
其他分区:除了ESP分区,您不需要任何特殊的分区。您可以像在BIOS模式下安装时一样设置根(/)分区、交换分区、/home分区或其他分区。请注意,在EFI模式下不需要设置BIOS引导分区,所以如果安装程序提示您需要它,意味着您可能意外地进入了BIOS模式。
-
解决无显示问题:在2013年,许多人在EFI模式下经常遇到无显示的问题。有时,您可以通过在内核中添加nomodeset参数来解决此问题。在GRUB界面按下e键将打开一个简单的文本编辑器。在大多数情况下,您需要搜索更多关于此问题的信息,因为此问题更多是由特定硬件引起的。
如果Linux在EFI模式下无法正常工作,但在BIOS模式下可以成功启动,那么您可以完全放弃EFI模式。这在只有Linux的计算机上非常简单;只需安装BIOS引导程序即可(如果您是在BIOS模式下安装的,引导程序应该已经安装好)。如果与以EFI模式启动的Windows组成双系统,最简单的方法是安装rEFInd引导管理器。在Windows上安装它,然后编辑refind.conf文件:取消注释scanfor一行,并确保具有hdbios选项。这样,rEFInd在引导时将重定向到BIOS模式的引导项。
最好将Linux配置为以EFI模式启动。有多种方法可以实现这一目标,但最好的方法是使用Linux的EFI引导模式(或者,可以想到的是Windows,或者一个EFI shell)注册到您首选的引导管理器。以下是实现此目标的方法:
-
下载适用于USB闪存驱动器或CD-R的rEFInd引导管理器。从下载的镜像文件生成安装介质。您可以在任何计算机上准备,无论是EFI还是BIOS的计算机(或者在其他平台上使用其他方法)。如果您尚未这样做,请执行此操作。由于rEFInd CD-R和USB镜像不支持安全启动,因此这一步很重要。您可以在以后重新启用安全启动。
-
在目标计算机上启动rEFInd。如前所述,您可能需要调整固件设置,并使用内置引导管理器选择要引导的介质。您选择的选项可能在其描述中包含UEFI等字符串。
-
在rEFInd上测试引导项。您应该至少看到一个启动Linux内核的选项(名称中包含vmlinuz等字符串)。有两种方法可以启动它:
- 选择该选项并按Enter键。
- 在某些情况下,您可能需要添加其他内核选项来替代或补充root=选项。例如,配置了LVM的Gentoo需要dolvm选项。
-
一旦Linux启动,安装您想要的引导程序。rEFInd的安装非常简单,可以通过RPM、Debian软件包、PPA或从rEFInd下载页面下载的二进制.zip文件进行安装。在Ubuntu和相关的发行版上,引导修复程序可以相对简单地修复您的GRUB设置,但您需要确保它可以正常工作。(它通常工作得很好,但有时会出现问题。)有关其他选项,请参阅我的《在Linux上管理EFI引导加载程序》页面。
-
如果您希望在激活安全启动的情况下引导,只需重新启动并启用它。但请注意,可能需要额外的安装步骤才能将引导程序设置为使用安全启动。有关详细信息,请参阅我关于此主题的页面或您的引导程序的安全启动文档。
-
重新启动后,您应该看到刚刚安装的引导程序。如果计算机进入了BIOS模式下的GRUB,请进入固件设置禁用BIOS/CSM/legacy支持,或调整引导顺序。如果计算机直接进入Windows,请参阅前面的“解决安装后的问题”部分。
-
您可能希望或需要调整您的配置。通常是为了看到额外的引导选项或隐藏某些选项。请参阅引导程序的文档资料,了解如何进行这些更改。
希望这些信息对您有所帮助。如果您有任何其他问题,请随时提问。