HP EliteBook 840 G1 在转换为 UEFI 后启动 Ubuntu 时出现问题

HP EliteBook 840 G1 在转换为 UEFI 后启动 Ubuntu 时出现问题

我最近将系统迁移到 UEFI 启动。

该系统是 HP EliteBook 840 G1,配有 SATA 硬盘。 Ubuntu 是唯一的操作系统。

我将磁盘转换为 GPT,添加了必要的分区,安装grub-efi-amd64,然后运行grub-install --target=x86_64-efi /dev/sda。 (根据我的 bash 历史记录——这是不久前完成的。)

当我重新启动系统时,它直接启动到 Ubuntu。

然而,第一次冷启动后,系统无法正常启动:首先尝试从 LAN 启动,然后显示一条消息,提示我没有安装操作系统,并提示我按 F2 进行系统诊断。我这样做了,退出了诊断工具,然后 Ubuntu 出现了。

我尝试弄乱 BIOS 设置中的启动顺序。没有从 SATA 磁盘启动的选项(但有从 M.2 SSD 启动的选项,如果已安装)。因此,我将操作系统启动管理器移至顶部,但无济于事 - 我仍然遇到相同的错误。

是什么赋予了?

答案1

在将分区表与 GParted 中的另一个系统进行比较后,我注意到我的 EFI 系统分区设置了不正确的标志:msftdata在设置时设置boot并且esp丢失。

除此之外,我取消了之前的解决方法尝试,并将操作系统引导加载程序移至引导顺序的顶部。

该系统现已经历多次停机,不再需要每次都进行人工干预。

早期的方法(如下所示)似乎曾经有效,但在下一次尝试时,旧的行为又回来了。

我通过添加具有以下路径的自定义启动条目解决了该问题:

\EFI\ubuntu\grubx64.efi

在您的系统上,情况可能会有所不同;尝试浏览/boot/efi(应该指向您的 EFI 分区)并.efi在那里查找文件。去掉首字母/boot/efi(例如/boot/efi/EFI/ubuntu/grubx64.efi变为\EFI\ubuntu\grubx64.efi)并将其配置为自定义启动项。

确保自定义启动项位于您的列表中,最好位于顶部(这样系统就不会意外地尝试从您预期之外的其他项目启动)。

现在,即使在冷启动后,系统也能直接启动到 Ubuntu。

注意:在我的系统上,还有另一个条目\EFI\BOOT\BOOTX64.EFI;不知道这是否与 grub 条目不同。

相关内容