我的标题是从这个问题借来的,它描述了一个非常接近我的情况,包括 OP 和我都采取的三个步骤,但都没有成功。但是我使用的是 Ubuntu 18.04.4 live USB 来安装 Ubuntu 18.04.4。回顾一下,我所做的事情主要是按顺序进行的:
引导修复无效。它要求我运行某个命令(“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 笔记本电脑,但也失败了。有没有人有办法解决吗?
(注意:我省略了一些引导修复输出,以防止这个问题太长。)
事实证明,这个对先前问题的回答毕竟有效。我没有明确测试答案的前提,即 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 时会发生什么。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句