EFI 启动列表和 EFI 启动管理器超时设置不起作用

EFI 启动列表和 EFI 启动管理器超时设置不起作用

如何更改 EFI 启动管理器的“超时”设置?我正在尝试双启动 Windows 8 和 Ubuntu,并且我希望能够在机器启动时选择一个或另一个操作系统。

我已经尝试在 Ubuntu 中使用sudo efibootmgr -t 10,但这对我不起作用,因为当我的计算机加载但直接启动到grub.

以下是更多详细信息:

$ efibootmgr -v
BootCurrent: 0000
Timeout: 10 seconds
BootOrder: 0000,0002
Boot0000* debian        HD(13,GPT,007a058a-8e5e-45df-8d97-6575b66b5355,0x1afa9000,0x113000)/File(\EFI\debian\grubx64.efi)
Boot0002* Windows Boot Manager  HD(13,GPT,007a058a-8e5e-45df-8d97-6575b66b5355,0x1afa9000,0x113000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}....................

$ bootctl status
systemd-boot not installed in ESP.
System:
     Firmware: n/a (n/a)
  Secure Boot: disabled
   Setup Mode: user

Current Boot Loader:
      Product: n/a
     Features: - Boot counting
               - Menu timeout control
               - One-shot menu timeout control
               - Default entry control
               - One-shot entry control
               - Support for XBOOTLDR partition
               - Support for passing random seed to OS
               - Boot loader sets ESP partition information
          ESP: n/a
         File: `-n/a

Random Seed:
 Passed to OS: no
 System Token: not set
       Exists: no

Available Boot Loaders on ESP:
          ESP: /efi (/dev/disk/by-partuuid/007a058a-8e5e-45df-8d97-6575b66b5355)
         File: `-/EFI/BOOT/bootx64.efi

Boot Loaders Listed in EFI Variables:
        Title: debian
           ID: 0x0000
       Status: active, boot-order
    Partition: /dev/disk/by-partuuid/007a058a-8e5e-45df-8d97-6575b66b5355
         File: `-/EFI/debian/grubx64.efi

        Title: Windows Boot Manager
           ID: 0x0002
       Status: active, boot-order
    Partition: /dev/disk/by-partuuid/007a058a-8e5e-45df-8d97-6575b66b5355
         File: `-/EFI/Microsoft/Boot/bootmgfw.efi

Boot Loader Entries:
        $BOOT: /efi (/dev/disk/by-partuuid/007a058a-8e5e-45df-8d97-6575b66b5355)

0 entries, no entry could be determined as default.

是因为吗systemd-boot not installed in ESP

更新:

这是我执行彼得回答中的任务后的状态。

$ efibootmgr -v
BootCurrent: 0000
Timeout: 6 seconds
BootOrder: 0001,0000,0002
Boot0000* debian        HD(13,GPT,007a058a-8e5e-45df-8d97-6575b66b5355,0x1afa9000,0x113000)/File(\EFI\debian\grubx64.efi)
Boot0001* Linux Boot Manager    HD(13,GPT,007a058a-8e5e-45df-8d97-6575b66b5355,0x1afa9000,0x113000)/File(\EFI\systemd\systemd-bootx64.efi)
Boot0002* Windows Boot Manager  HD(13,GPT,007a058a-8e5e-45df-8d97-6575b66b5355,0x1afa9000,0x113000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}....................

$ bootctl status
System:
     Firmware: n/a (n/a)
  Secure Boot: disabled
   Setup Mode: user

Current Boot Loader:
      Product: n/a
     Features: - Boot counting
               - Menu timeout control
               - One-shot menu timeout control
               - Default entry control
               - One-shot entry control
               - Support for XBOOTLDR partition
               - Support for passing random seed to OS
               - Boot loader sets ESP partition information
          ESP: n/a
         File: `-n/a

Random Seed:
 Passed to OS: no
 System Token: set
       Exists: yes

Available Boot Loaders on ESP:
          ESP: /efi (/dev/disk/by-partuuid/007a058a-8e5e-45df-8d97-6575b66b5355)
         File: `-/EFI/systemd/systemd-bootx64.efi (systemd-boot 245.4-4ubuntu3.1)
         File: `-/EFI/BOOT/bootx64.efi (systemd-boot 245.4-4ubuntu3.1)

Boot Loaders Listed in EFI Variables:
        Title: Linux Boot Manager
           ID: 0x0001
       Status: active, boot-order
    Partition: /dev/disk/by-partuuid/007a058a-8e5e-45df-8d97-6575b66b5355
         File: `-/EFI/systemd/systemd-bootx64.efi

        Title: debian
           ID: 0x0000
       Status: active, boot-order
    Partition: /dev/disk/by-partuuid/007a058a-8e5e-45df-8d97-6575b66b5355
         File: `-/EFI/debian/grubx64.efi

        Title: Windows Boot Manager
           ID: 0x0002
       Status: active, boot-order
    Partition: /dev/disk/by-partuuid/007a058a-8e5e-45df-8d97-6575b66b5355
         File: `-/EFI/Microsoft/Boot/bootmgfw.efi

Boot Loader Entries:
        $BOOT: /efi (/dev/disk/by-partuuid/007a058a-8e5e-45df-8d97-6575b66b5355)

0 entries, no entry could be determined as default.

$ cat "$(bootctl -x)/loader/loader.conf"
#timeout 3
#console-mode keep
default f1439fc415644fedb2360e6691283080-*

timeout 5
console-mode max
editor yes
auto-entries yes
auto-firmware yes
random-seed-mode always

$ bootctl status | grep f1439fc415644fe | wc
      0       0       0

所以彼得,

  • default f1439fc415644fedb2360e6691283080-*文件中的是从哪里来的/loader/loader.conf,它的含义是什么?当你放在default Windows那里时是什么意思?
  • 最重要的是,我现在可以看到 EFI 启动列表/菜单,只是它有Windows Boot ManagerReboot into firmware提到的,但它没有我想要的 Linux / debian 菜单。我缺少什么?

答案1

好吧,对于您所遇到的行为是否是因为 ESP 中未安装 systemd-boot 的问题,答案是......“不是真的?”哈哈,这对我来说是一个艰难的过程,因为我碰巧对整个 EFI 启动过程以及管理它的各种方法了解很多,而实际上 systemd-boot 现在并没有参与其中。 GRUB 是 Ubuntu 一直用来管理引导过程的机制,无论您是否想要保留对其他操作系统的访问权限。我可以指导您通过一些方法来使其表现更符合您的期望,公平地说,这可能是回答您的问题的更专业的方式。

不过,这不是我要做的,因为我必须告诉你,GRUB 实在是太让人头疼了,我不希望它出现在希特勒身上,更不用说像你这样的陌生人了。因此,无论您认为合适,请采纳我的建议,我将向您提供几个您手头已有的选项来管理引导过程,与 GRUB 相比,我更喜欢这两个选项,即使它实际上是在运行。既然您提出了 systemd-boot(我仍然认为它是 Red Hat 之前的原始名称“Gummiboot”,因为它更有趣),那么让我们从这里开始。

软糖靴

公平的警告,虽然它真的很喜欢它,因为它疯狂的运行速度,以及有时有一个引导管理器是多么方便,它基本上只是 Linux init 进程的附加模块……全能的上帝,它是不是丑陋过?我讨厌 GRUB 的外观,但它却设法让 GRUB 看起来有点性感。不过,如果您对此感到满意,那么让我向您展示使用它可以多快地解决您遇到的问题。启动计时器,我想我可以在四分钟内让您成功重启。

  1. 首先,让我们将它与 GRUB 和 Windows 启动管理器一起安装到您的 ESP(EFI 系统分区,所有启动加载器/管理器所在的位置),最坏的情况是,您将来会像 WBM 一样忽略它当您使用您首选的解决方案时。如果您愿意的话,请打开一个终端,然后执行此命令以在 ESP 上安装 Gummiboot 并将其添加到 BootOrder:sudo bootctl install。您应该会看到一连串的活动,并且有一条消息告诉您 systemd-boot 已安装在 ESP 上并位于引导顺序的顶部。虽然我们很想在秒表上轻松获胜,因为大多数时候它在没有配置的情况下也能正常工作,但让我们做更多的事情来提高获胜的几率。首先,如果我们在尝试重新启动之前没有返回终端,请执行sudo bootctl random-seed.这是非常简单的,但它对启动时的安全性有了微小的改进,并且只花费打字所需的时间,所以我们会接受它。

  2. 无论哪种方式最适合您,启动一个文本编辑器,它允许您编辑 root 拥有的文件(我总是偏爱 ol' sudo mcedit [filename],但您这样做)并用它打开此文件:"$(bootctl -x)/loader/loader.conf"如果您要使用 GUI 编辑器并且需要知道确切的路径才能导航到该文件,只需echo在终端中在其前面敲击并点击Enter,它就会打印出实际位置。由于我不知道您使用的是哪个版本的 systemd/Gummiboot,所以我只会告诉您其中应该包含的内容,然后让您完成其余的工作。开始...

    default Windows
    timeout 15
    console-mode max
    editor yes
    auto-entries yes
    auto-firmware yes
    random-seed-mode always
    

如果在菜单超时之前没有进行任何选择,如果您想加载 Ubuntu,请随意将已经存在的随机字符串保留为默认值,我只是想让您了解如何在必要时更改它。同样,您想设置什么超时值都是您的事。其余部分应该如图所示输入,这都是好东西。

完成后,如果您想安定下来,您可以sudo bootctl status再次检查终端中的输出,或者只是关闭并重新启动,您应该可以开始了。 Gummiboot 长辈为您提供的一些快速建议:

  • 在菜单上,异教徒通常使用/键进行选择,然后使用Enter进行确认。真正的皮条客只需按键盘上与他们想要从列表中找到的条目相对应的数字键,就好像它们是从上到下编号的,并且1是最上面的条目。或者,如果只有一个适用于 Windows、MacOS 或 Linux 发行版的条目,请按字母wal将立即开始通过单次击键启动该条目。每次都让女孩们咬着下唇。
  • 文件中的该auto-firmware yes行应确保列表中的选项之一是“重新启动进入固件”...如果出现问题,请选择它,您将发现自己处于 BIOS 设置中,您可以在其中手动重新排列启动顺序并将 Windows 或“debian”放在首位以求拯救。你极不可能需要它,但万一你需要它,也许你以后就不会诅咒我的存在了。人生苦短,我不需要再坏的juju了。

结论

我的朋友,此时你应该摇滚起来。我知道我说过我会给你一些潜在的解决方案,所以如果这不能让你摆脱中立,或者你发现你正在与虚无主义调情作为一种生活方式,因为它在视觉上是多么没有吸引力,那么就没有预订,我的建议是:使用酶标仪。它位于 Ubuntu 存储库中并可以自行配置,因此它总是很sudo apt install refind方便,它是启动管理器中的 Shelby Cobra。该文档很棒,而且非常聪明,所以如果您沿着这条路走下去,我相信您会没事的。

我在这里的工作已经完成;去把他们打死吧,孩子。

相关内容