我的一个朋友给了我他们的旧 HP 笔记本电脑并为我安装了 Ubuntu 22.04。不幸的是,我无法提供有关安装的细节,因为我不知道它是如何执行的。安装看起来基本成功,因为如果从启动菜单中选择以下选项,则可以成功启动到 Ubuntu:
Acpi(PNP0A03...(唯一可用的选项)但是,如果机器自行启动,它将进入启动循环,其中文本Reset System在每个循环中短暂闪烁:
小错误的屏幕截图
我读过有关类似问题的帖子,大多数都指向
UEFI Native (Without CSM)Customized Boot优先我已相应地设置了上述内容,但启动循环仍然存在。我的猜测是启动顺序是错误的,因为它可以手动成功启动,但我不确定,因为这是设置 Ubuntu 的第一次尝试。
类似的问题,但无法在这些线程上找到成功的解决方案。
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 重置系统引导循环
谢谢
TLDR 摘要:检查 BIOS 引导顺序是否设置为\\EFI\\Ubuntu\\shimx64.efi首先运行已安装的引导加载程序,而不是从设备引导(这将使用默认\\EFI\\Boot\\bootx64.efi路径)。引导循环是由 HP BIOS 和 Grub shim 回退 EFIfbx64.efi更改 EFI 引导顺序然后运行另一个引起的。
您还可以考虑删除\\EFI\\Boot\\fbx64.efi以防止在通过选择设备而不是显式 EFI 引导管理器路径引导 Ubuntu 时自动且静默地更改 EFI 引导顺序。
更长的解释:
\n当启动一台安装在外部 USB 驱动器上的 Ubuntu 的 HP 笔记本电脑时,我遇到了这个“重置系统”启动循环。在启动时手动选择 Ubuntu 引导加载程序(通过 ESC-F9 启动菜单)有效,但默认启动失败并出现启动循环。还有一个奇怪的问题,启动 Ubuntu 会更改 EFI 启动项。我将在下面的文本中提到 USB 驱动器,因为这就是我所使用的,但我相信这个问题也会以同样的方式影响内部驱动器。
\n启动循环的前提条件:
\nBoot Options > UEFI Boot Order地方看到。请注意,此顺序似乎不是默认顺序 - 如果您选择,它将放在第一位。USB Flash DriveOS Boot ManagerExit > Load Setup DefaultsOS Boot Manager实际循环是由以下原因引起的:
\n\\EFI\\Boot\\bootx64.efi是一个安全启动垫片,该加载程序依次运行EFI\\Boot\\fbx64.efi。fbx64.efi(又名fallback.efi)是一个后备启动管理器,描述为:\n\n在任何文件名下,fallback.efi 都是一种启动管理器\xe2\x80\x94,但它不提供启动选项菜单,而是扫描自己磁盘上的 EFI 子目录,查找名为 BOOT.CSV、BOOTX64.CSV 或该文件名的其他特定于体系结构的变体。找到此文件后,将对其进行读取和处理以生成新的 NVRAM 条目。然后程序启动它创建的第一个新 NVRAM 条目。
\n
后备启动管理器检测到 Ubuntu 已安装,并将 EFI 启动顺序更改为\\EFI\\ubuntu\\shimx64.efi第一个启动条目并重新启动。
转到 1。
\n虽然在这种情况下,引导循环发生在外部 USB 驱动器上,但我相信如果 Ubuntu 安装到任何驱动器上,并且 HP BIOS 设置为从驱动器设备引导(而不是 Ubuntu EFI 引导加载程序),也会发生同样的情况。Ubuntu 安装后,EFI 启动项将类似于:
\n# efibootmgr\nBoot0002* 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\nBoot0003* ubuntu HD(1,GPT,...)/File(\\EFI\\ubuntu\\shimx64.efi)\nRun Code Online (Sandbox Code Playgroud)\n请注意,驱动器本身和驱动器上的 Ubuntu 引导加载程序有单独的条目。如果BIOS设置为首先从硬盘启动,那么每次启动时,它都会更改EFI启动顺序以将驱动器设置为第一个条目,然后运行后备填充程序\\EFI\\Boot,这将依次更改EFI启动顺序以设置条目\\EFI\\Ubuntu是第一个并重新启动。重新启动时,BIOS 会将启动顺序更改回来,从而启动启动循环。
调试
\n不幸的是,除了 之外,垫片没有显示任何输出Reset System。您可以运行mokutil --set-verbosity true和mokutil --set-fallback-verbosity true打开输出,并mokutil --set-fallback-noreboot true跳过重新启动并运行 Ubuntu。
针对可移动介质上的启动循环的此相关非 HP 错误报告\\EFI\\Boot\\fbx64.efi建议将其删除作为解决方法,以防止出现类似的启动循环。