Ubuntu 18.04.4 + Windows 10 双启动无 grub 菜单

Ubuntu 18.04.4 + Windows 10 双启动无 grub 菜单

我的标题借用自这个问题这篇文章描述了一种与我非常接近的情况,其中包括 OP 和我都采取的三个步骤,但没有成功。但是,我正在使用 Ubuntu 18.04.4 live USB 来安装 Ubuntu 18.04.4。总结一下,我所做的事情(主要是按顺序)如下:

  • 通过邮件获取全新 HP Pavilion x360
  • 创建 Ubuntu 18.04.4 live USB
  • 禁用安全启动(BIOS)和快速启动(Windows)
  • 重新启动进入实时环境并安装 Ubuntu 18.04.4
  • 发现当我重新启动时没有出现 Grub 菜单 - 而是出现 Windows。

引导修复无效。它要求我运行某个命令(“bcdedit /set {bootmgr} path \EFI\ubuntu\shimx64.efi”),这也是这个 AskUbuntu 答案(尽管修改为“bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi”)但这两个命令都没有起作用。不同的 AskUbuntu 答案建议编辑/etc/systemd/system/boot-linux-next.service;我希望这会起作用,因为它特定于 HP Pavilion 笔记本电脑,但它也失败了。有人有解决方案吗?

(注意:我省略了一些启动修复输出以避免这个问题太长。)

答案1

事实证明这个答案回答之前的问题确实有效。我没有明确测试答案的前提,即 HP 笔记本电脑附带的固件在每次加载设备时都会在 UEFI 启动顺序中首先设置 Windows 条目。但是,efibootmgr 确实显示 Windows 在启动顺序中的位置比 Ubuntu 更早,即使在重新安装后也是如此。运行后efibootmgr发现 BootCurrent 对我来说是 0000(可能会有所不同),我创建了一个新的启动脚本(/etc/systemd/system/boot-linux-next.service),内容如下:

[Unit]
Description=Boot Linux next

[Service]
Type=oneshot
# Replace '0' in the next line with the appropriate code. Advice taken from https://askubuntu.com/a/1142709.
ExecStart=/bin/efibootmgr --bootnext 0

[Install]
WantedBy=multi-user.target

并运行sudo systemctl enable --now boot-linux-next.service。您应该注意此命令的输出以确保没有错误 - Ubuntu 18.04.4 和更高版本的 Ubuntu 之间似乎存在差异,后者可以使用可执行文件的相对路径(efibootmgr),但前者需要绝对路径(/bin/efibootmgr)。我能够通过运行 来检查 BootNext 变量是否设置正确efibootmgr;显然运行操作systemctl会导致启动脚本运行一次。从那时起,启动一直很正常,尽管我仍然担心下次尝试启动 Windows 时会发生什么。

相关内容