我的标题是从这个问题中借用的,它描述了一个非常接近我的情况,包括我和 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 笔记本电脑的,但它也失败了。有没有人有办法解决吗?
(注意:我遗漏了一些引导修复输出,以防止这个问题过长。)
事实证明,这个对较早问题的答案确实有效。我没有明确测试答案的前提,即惠普笔记本电脑附带的固件会在每次加载设备时在 UEFI 启动顺序中首先设置 Windows 条目。但是,efibootmgr 确实显示 Windows 在引导顺序中的位置比 Ubuntu 更早,即使在重新安装之后也是如此。运行
efibootmgr
后发现 BootCurrent 对我来说是 0000(可能会有所不同),我创建了一个新的启动脚本 (/etc/systemd/system/boot-linux-next.service
),其内容如下:跑了
sudo systemctl enable --now boot-linux-next.service
。您应该注意此命令的输出以确保没有错误 - Ubuntu 18.04.4 和更高版本的 Ubuntu 之间似乎存在差异,后者可以使用可执行文件的相对路径 (efibootmgr
),但前者需要绝对路径 (/bin/efibootmgr
)。我能够通过运行检查 BootNext 变量是否设置正确efibootmgr
;显然,运行的行为systemctl
会导致启动脚本运行一次。从那时起启动一直很正常,尽管我仍然担心下次尝试启动 Windows 时会发生什么。