在 HP ProBook 上安装 Ubuntu 22.04 LTS 后重置系统启动循环

在 HP ProBook 上安装 Ubuntu 22.04 LTS 后重置系统启动循环

我的一个朋友给了我他们的旧 HP 笔记本电脑,并帮我在上面安装了 Ubuntu 22.04。遗憾的是,我无法提供有关安装的具体信息,因为我不知道它是如何执行的。安装似乎基本成功,因为如果从启动菜单中选择以下选项,则可以成功启动到 Ubuntu:

  1. 从 EFI 文件启动
  2. 选择文件系统Acpi(PNP0A03...(唯一可用的选项)
  3. 电喷
  4. Ubuntu
  5. 启动grub2.efi

但是,如果机器自行启动,它会进入启动循环,其中文本Reset System在每个循环中短暂闪烁: 小错误截图

我读过关于类似问题的帖子,大多数都指向

  • 关闭安全启动(已经尝试打开和关闭,因为有人说应该启用而其他人说不应该启用 - 但无论如何都会出现相同的错误)。
  • 关闭快速启动
  • 启动模式 =UEFI Native (Without CSM)
  • UEFI 启动顺序Customized Boot优先

我已按上述方法进行了设置,但启动循环仍然存在。我猜是启动顺序错误,因为它可以手动成功启动,但我不确定,因为这是第一次尝试设置 Ubuntu。

当前 UEFI 启动顺序

启动选项 pt 1

启动选项第 2 部分

类似的问题,但无法在这些线程上找到成功的解决方案。

https://www.reddit.com/r/linux4noobs/comments/ppas7l/linux_stuck_on_infinite_reset_system_loop_when/ https://www.reddit.com/r/Ubuntu/comments/8p4h4f/continuous_loop_of_not_booting/ Ubuntu 22.04 重置系统引导循环

谢谢

答案1

TLDR 摘要:检查 BIOS 启动顺序是否设置为\EFI\Ubuntu\shimx64.efi首先运行已安装的启动加载程序,而不是从设备启动(将使用默认\EFI\Boot\bootx64.efi路径)。启动循环是由于 HP BIOS 和 Grub shim fallback EFIfbx64.efi都更改了 EFI 启动顺序,然后运行另一个而导致的。

您可能还考虑删除,\EFI\Boot\fbx64.efi以防止在启动 Ubuntu 时通过选择设备而不是明确的 EFI 启动管理器路径自动且静默地更改 EFI 启动顺序。


更长的解释:

我在启动一台安装了 Ubuntu 的 HP 笔记本电脑时遇到了这个“重置系统”启动循环。在启动时手动选择 Ubuntu 引导加载程序(通过 ESC-F9 启动菜单)有效,但默认启动失败并出现启动循环。还有一个奇怪的问题,即启动 Ubuntu 会更改 EFI 启动项。我将在下文中引用 USB 驱动器,因为这是我使用的,但我相信这个问题也会以同样的方式影响内部驱动器。

启动循环的前提条件:

  • 在 HP BIOS 设置中,USB 驱动器的优先级高于任何操作系统安装的启动管理器。这可以在 中看到Boot Options > UEFI Boot Order,其中USB Flash Drive出现在 上方OS Boot Manager。请注意,此顺序似乎不是默认顺序 - 如果您选择Exit > Load Setup Defaults它将放在第一位OS Boot Manager

实际循环是由于以下原因引起的:

  1. 笔记本电脑启动。USB 驱动器在 BIOS 中具有更高的启动优先级,因此 BIOS 会更改 EFI 启动顺序,将驱动器设置为第一个条目,然后运行默认的引导加载程序,\EFI\Boot\bootx64.efi这是一个安全启动垫片,它又运行EFI\Boot\fbx64.efifbx64.efi(又名fallback.efi)是一个后备启动管理器被形容为

在任何文件名下,fallback.efi 都是一种启动管理器 - 但它不会显示启动选项菜单,而是扫描其自身磁盘上的 EFI 子目录,查找名为 BOOT.CSV、BOOTX64.CSV 或该文件名的其他特定于体系结构的变体的文件。找到此文件后,会读取并处理该文件以生成新的 NVRAM 条目。然后,该程序启动它创建的第一个新 NVRAM 条目。

  1. 后备启动管理器检测到 Ubuntu 已安装,并将 EFI 启动顺序更改为设置\EFI\ubuntu\shimx64.efi为第一个启动项并重新启动。

  2. 转到 1。


虽然在这种情况下,启动循环发生在外部 USB 驱动器上,但我相信如果将 Ubuntu 安装到任何驱动器上,并且将 HP BIOS 设置为从驱动器设备启动(而不是 Ubuntu EFI 引导加载程序),也会发生同样的事情。安装 Ubuntu 后,EFI 启动项将如下所示:

# efibootmgr
Boot0002* Internal Hard Disk    PciRoot(0x0)/Pci(0x2,0x4)/Pci(0x0,0x0)/NVMe(0x1,00-00-00-00-00-00-00-00)/HD(1,GPT,...,0x800,0x82000)..BO
Boot0003* ubuntu    HD(1,GPT,...)/File(\EFI\ubuntu\shimx64.efi)

请注意,驱动器本身和驱动器上的 Ubuntu 引导加载程序都有单独的条目。如果 BIOS 设置为首先从硬盘启动,则每次启动时它都会更改 EFI 启动顺序以将驱动器设置为第一个条目,然后运行\EFI\Boot​​fallback shim,后者又会更改 EFI 启动顺序以将\EFI\Ubuntu条目设置为第一个并重新启动。重新启动时,BIOS 会将启动顺序改回,从而启动启动循环。


调试

不幸的是,除了 之外,shim 没有显示任何输出Reset System。您可以运行mokutil --set-verbosity truemokutil --set-fallback-verbosity true打开输出,并mokutil --set-fallback-noreboot true跳过重启并运行 Ubuntu。

相关非 HP 错误报告针对可移动媒体上的启动循环,建议将其移除\EFI\Boot\fbx64.efi作为解决方法,以防止类似的启动循环。

相关内容