UEFI 上的 Linux - 如何像 Windows 8 一样重启到 UEFI 设置屏幕?

sou*_*edi 65 bios linux windows-7 uefi windows-8

makeuseof.com 解释说,经过 Windows 8 认证的硬件有一种进入 UEFI 设置屏幕(相当于 BIOS)的新方法。从如何在 Windows 8 计算机上访问 BIOS

我们不再在启动过程中按某个键来显示 BIOS - 相反,访问 BIOS 的选项位于 Windows 8 的启动选项菜单中...如果您只是在这里访问计算机的 UEFI BIOS,请单击疑难解答磁贴。

Linux 安全启动的主要开发人员表示,替代操作系统不能假设旧方式将继续工作。那么 Linux 是否也有进入 UEFI 设置的新方法?

我有一个华硕主板。它表明固件的升级版本包含快速启动选项。另一方面是该选项可能使“显示 BIOS”比现在更难。

我不介意修修补补。如果这被认为是一个坏主意,我不想冒固件升级的风险(并且可能不得不关闭机箱,重置设置并重新设置它们)。


或者,对于 Windows 7 用户,这是如何处理的?如果他们乐观地选择了快速启动选项,他们如何在需要时再次访问“BIOS”设置?

Lek*_*eyn 94

在使用 systemd 的现代 Linux 发行版上,您可以使用以下命令直接进入固件设置菜单:

systemctl reboot --firmware-setup
Run Code Online (Sandbox Code Playgroud)

文档:https : //www.freedesktop.org/software/systemd/man/systemctl.html#--firmware-setup

  • 这似乎重新创建了变量,但在重启后不知何故丢失了:`printf '\7\0\0\0''\0\0\0\0\0\0\0\0' > / sys/firmware/efi/efivars/OsIndications-8be4df61-93ca-11d2-aa0d-00e098032b8c`(基于 https://firmware.intel.com/blog/accessing-uefi-variables-linux 和我之前转储的内容) . 请注意,`rm ...` 需要 `chattr -i ...` 才能删除它(关于 `rm -rf /` 的安全措施)。 (2认同)

小智 6

我不确定 Windows 8 究竟是如何做到这一点的,但我猜它利用了用于引导选项的 UEFI 变量。

您可以使用efibootmgr来确定各种引导变量的含义。在我的系统上,Boot0000 是安装程序,因此使用efibootmgr -n 0应该会导致系统在下次启动时进入安装程序。


sou*_*edi 5

我尝试使用 Ubuntu 12.04 进行 EFI 引导,并找到了我自己问题的答案。

(我还没有升级我的固件。我最初误读了发行说明 - 它可能不会更快)。

从 grub-efi 启动菜单进入固件设置

efibootmgr似乎不支持我重新启动固件设置。但grub-efi可以。它能够在 GRUB 引导菜单中创建固件设置条目。

您可以通过“在引导过程的早期”按住 Shift 键进入 GRUB 引导菜单。我在键盘上的 NumLock 灯亮起后立即按下它,这对我有用。

如果您好奇,我也查看了该命令:它是“fwsetup”。即,您可以进入 GRUB 菜单,按照屏幕上的说明切换到命令行,然后输入“fwsetup”并按回车键。

如果您从头开始进行 EFI 安装,我相信该菜单项将自动创建。我没有安装为 EFI,这意味着我必须踢掉它(见下文,步骤 4)。

在不刻录 EFI 启动 CD 的情况下从 BIOS-GPT 启动转换为 UEFI-GPT 启动?

编辑:本节可能适用于某些系统。但我现在认为它依赖于不属于 UEFI 标准的额外行为。 有一天我会弄清楚这里发生了什么。

我正在将现有安装转换为 EFI,但没有启用 EFI 的启动 CD。有些人认为这是不可能的。诚然,有一些令人困惑的警告消息。我看看发生了什么事。 如果您当前可以进入固件设置,那么这还不算太糟糕。

困难的部分是您可能仍在使用 MBR 分区表,并且几乎肯定需要将其转换为 GPT。我不会介绍从 MBR 到 GPT 的转换。分区总是有点危险。 gdisk可以转换,但是有很多麻烦的地方。我没有在这里全部列出。但首先,您可能需要缩小最后一个分区,为磁盘末尾 GPT 腾出空间。如果分区已安装,则无法执行此操作,因此您需要使用启动 CD。(我还进行了转换,确保在尝试 UEFI-GPT 之前可以从 BIOS-GPT 启动,这涉及到必须创建另一种类型的启动分区。)。

假设您已设置 GPT:

  1. 安装 grub-efi。这删除了 ​​grub-pc,并使其停止工作。(grub-efi 在我删除后实际上仍然有效!)。Fedora 似乎有点不同;我只在 Ubuntu 上尝试过这个。在安装过程中,您将看到无法访问 EFI 变量的错误,这是因为您不是通过 EFI 启动的。
  2. 关闭。
  3. 打开。确保通过 EFI 启动!这是依赖于系统且令人担忧的部分。我的系统碰巧默认以 MBR 启动,因此我看到 GRUB 出现了一个可怕的错误 - 但它来自旧的 grub-pc。在我的系统上,此时很容易进入固件设置屏幕(见下文),并将启动优先级更改为“ubuntu”(这是通过 EFI 启动我的操作系统的入口)。
  4. 现在您可以重做 grub 安装(grub-install,或grub2-install在 Fedora 上),并且不会显示任何错误。现在运行update-grub(或grub2-mkconfig -o /boot/grub/grub.cfg在 Fedora 上)将创建用于进入固件设置的菜单项。

进入我的华硕系统上的固件设置/启动菜单

免责声明:这不是最新的固件/板。您的华硕系统的运行方式可能与我的不同。

我当前的华硕固件会注意到“启动配置”何时发生更改 - 例如,当我安装 grub-efi 时。有文字说,如果你查看初始的“EZ setup”屏幕,它就会发生变化。而且,当它检测到此类更改时,可以更轻松地进入设置屏幕。它的作用是显示“按 DEL 进入设置”的启动屏幕几秒钟。(如果您启用了“快速启动”选项,它通常会跳过启动屏幕)。

我认为在重新启动之前关闭系统电源并拔掉电源插头一分钟左右,也可以触发启动屏幕。

在我当前的固件上,即使没有启动屏幕,我也可以在启动时通过快速按下 DEL 键来进入固件设置。 但是,这是以在固件中启用键盘支持为条件的。

可以将固件切换为在启动过程中不探测键盘,这应该可以加快速度。我想这是下一个尝试的实验,现在我对这个 EFI 东西更有信心了!(这似乎也可能会终止 GRUB 引导菜单中的键盘支持。但我仍然应该能够使用 grub-set-default,以便 GRUB 引导 fwsetup 条目,并以这种方式恢复)。


小智 5

我已经编写了一个小工具,无需 systemd,https://github.com/adoakley/efi-boot-to-fw-ui即可完成此操作。

  • 欢迎使用超级用户!请从参考链接中引用答案的重要部分,因为如果链接页面发生更改,答案可能会失效。 (2认同)