当我的主板运行 UEFI 时,Linux 显示我正在使用 BIOS

当我的主板运行 UEFI 时,Linux 显示我正在使用 BIOS

我遇到了一些启动问题ubuntu 服务器安装

Linux 版本 5.4.0-81-generic(buildd@lgw01-amd64-052)(gcc 版本 9.3.0(Ubuntu 9.3.0-17ubuntu1~20.04))

[GPT 分区未显示在 BIOS/UEFI 中]

我现在意识到我的ASUS Maximus VII Impact 在 UEFI 上运行,而不是 BIOS,因此 GPT 分区应该显示在选择中。但是当我检查我是否运行 BIOS 或 UEFI 时:ls /sys/firmware/efi 我得到:ls: cannot access '/sys/firmware/efi': No such file or directory并且dmesg | grep "EFI v"没有返回任何内容,表明我没有运行 UEFI。

那么,当我的 BIOS/UEFI(无论我在看什么)屏幕具有现代的鼠标可操作界面时,我怎么会从 BIOS 启动呢?我应该如何操作才能让 Linux 从 UEFI 启动?

答案1

那么我怎么能从 BIOS 启动呢

大多数 UEFI 系统(除了一些非常新的系统)都有一个“兼容性支持模块”(又名“CSM 模式”,又名“传统启动”),允许它们模拟传统的 BIOS 启动过程。当操作系统在此模式下启动时,不会使用 EFI 系统分区(而是启动磁盘的引导扇区),并且操作系统无法访问特定于 UEFI 的接口(因此没有 /sys/firmware/efi)。

固件设置屏幕将有一个选项,用于禁用兼容模式并强制仅使用原生 UEFI 启动。(该选项可能有几种不同的命名方式,但其存在,因为 Microsoft 需要它作为安全启动支持的一部分。

但是,启用 CSM并不妨碍操作系统无法在原生 UEFI 模式下启动——它只会让两个都模式可用。通常在这样的系统中,当启用 CSM 时,F8启动菜单将同时显示“传统”BIOS 模式和“本机”UEFI 模式项。

  • 例如,如果同一个 Ubuntu 安装 U 盘兼容 BIOS 模式启动和 UEFI,那么它将出现两次。这通常会导致人们出于习惯选择错误的选项——以 BIOS 模式启动 U 盘,因此操作系统安装程序也会准备以 BIOS 模式启动系统磁盘,尽管固件支持 UEFI。

  • 这不是在支持 UEFI 的计算机上安装 BIOS 风格的操作系统的唯一原因,但这种情况相当常见。另一个常见原因是用于将 .iso 映像写入 USB 棒的程序——其中一些程序坚持以自己的方式重新安排映像的启动过程,这通常会导致 USB 棒仅与 BIOS 兼容,即使原始映像具有 UEFI 支持。由于启用了 CSM,USB 棒仍将工作用户不会意识到缺少了任何东西。

因此,您以 BIOS 模式启动是因为 1) 固件能够这样做,并且 2) 此特定磁盘上的操作系统是通过这种方式安装的。

我的 BIOS/UEFI(无论我正在看什么)屏幕,有一个现代化的、可用鼠标操作的界面吗?

界面与固件类型关系不大。(或者“相关​​性并不意味着因果关系”?)是的,现代的鼠标操作界面如今很常见,UEFI 固件也是如此,但实际上两者都不意味着对方——文本模式设置屏幕在 UEFI 系统中同样常见,而一些制造商在 30 年前就有鼠标操作的 BIOS 界面。

我该如何操作才能让 Linux 从 UEFI 启动?

如果尚未安装操作系统,或者您可以重新安装它:

  1. 转到您的固件设置并确保禁用“CSM”或将启动模式设置为“本机”或“仅 UEFI”(或华硕固件中的任何其他名称)。

    (使用 Ubuntu,您甚至可以启用安全启动——这将导致 UEFI 启动作为副作用而成为强制性的。)

  2. 重新安装操作系统。

如果操作系统已安装并且您想要保留它:

  1. 手动创建 EFI 系统分区。将其挂载在 /boot/efi(与 Ubuntu 的操作一致)。

    如果您没有更多未分配的空间,请缩小根分区。EFI 系统分区不必位于开头,但至少需要 100 MB(因此现有的 1 MB“BIOS 启动”分区不行)。

  2. 安装正确的 GRUB2 包(例如grub-efi-amd64)并再次 grub-install 引导加载程序。这次您不需要指定“/dev/sda”。

    grub-install --target=x86_64-efi
    

    update-grub此后您可能需要重新运行。

答案2

你现在误会了。

您的分区显示一个单独的 /boot 分区,类型为 BIOS。根据建筑维基我之前链接的页面,这表明安装是使用 GPT 分区表为具有旧版 BIOS 的系统进行的。由于是以这种方式进行的,所以 /sys/firmware/efi 不存在,dmesg 也找不到有关 EFI 的任何信息。


误会被消除


由于这是新安装,我建议您不要再尝试修复此问题,只需从头开始重新安装即可。我能想象发生这种情况的唯一原因是第一次出现问题。每个人都遇到过这种情况。

确认您的 BIOS 设置为 UEFI 模式,而不是 Legacy 模式,并且已禁用安全启动。阅读并遵循 Ubuntu Server 安装说明。

这应该可以让您以最少的麻烦开始运行。

相关内容