如果有必要/有用,我很乐意发布更多详细信息。我尝试过一些显而易见的方法(启动修复等)。
概括
默认情况下,我目前启动机器的唯一方法是插入我创建的 Ubuntu (14.04) 棒,以便在 Windows 8.1 旁边安装双启动系统。下面介绍了几个必需的手动步骤。下面还介绍了我可以采取的步骤,以便在没有 USB 棒的情况下成功重启,但是这些设置不会保留,并且在第二次重启后会失败。问题是:如何让我的 UEFI 设置在重启后保持不变?
初始情况:启动失败及解决方法
如果没有插入记忆棒,启动将失败(在进入设置菜单后),并显示“请插入正确的媒体并重新启动”类型的消息。
插入驱动器后,我可以访问(USB)grub 命令行,然后通过以下方式获取已安装的 grub 配置:
配置文件(hd1,gpt2)/EFI/ubuntu/grub.cfg
然后第二个 grub 菜单可以启动 Ubuntu 或原始 Windows 8.1 实例。
明显的修复:grub-install 和 efibootmgr
如果我采取以下两个步骤,我可以成功重新启动到已安装的 grub 菜单(不需要 USB 记忆棒):
1)sudo grub-install --efi-directory=/boot/efi --target=x86_64-efi --uefi-secure-boot
2) sudo efibootmgr -n 0
注意,ubuntu 是 efibootmgr 输出中的条目 0000(且处于活动状态)。
完成这些步骤后,efibootmgr -v 会在一次重启之前和之后(但只有一次)产生关于 Ubuntu 安装的类似输出,即:
启动顺序:0000,0005,0004,0001,0002
Boot0000* ubuntu HD(2,96800,32000,e3ae99c8-b2d4-4941-94cf-58a12eec0c21)文件(\EFI\ubuntu\shimx64.efi)
但是,第二次重启会失败(如果未执行上述两个命令),现在需要再次插入 USB 记忆棒。第二重新启动,efibootmgr -v 产生:
Boot0000 ubuntu 供应商(99e275e7-75a0-4b37-a2e6-c5385e6c00cb,)
不再处于活动状态并且不再正确配置。
有什么建议吗?如果有帮助的话,我很乐意发布更多详细信息。
答案1
首先,从制造商处查找更新的固件。(它可能被列为“BIOS 更新”,尽管它实际上不是 BIOS。)更新后,您必须使用 重新注册 GRUB efibootmgr
。如果幸运的话,它将开始工作;但是,不要抱有太大希望,因为这些更新很少能起到什么作用。
另一个有时有效的方法是通过 Windows 设置默认启动选项。您可以打开管理员命令提示符窗口并输入以下内容来执行此操作:
bcdedit /set {bootmgr} path \EFI\ubuntu\shimx64.efi
如果固件更新或使用 Windows 将 Ubuntu 引导加载程序设置为默认设置都无济于事,并且计算机是新的,我强烈建议您将它退回商店以获得退款,理由是您看到的行为是设计缺陷。如果制造商不觉得这样做很痛苦,他们将继续提供有这种缺陷的机器,而他们唯一会感到痛苦的方式是机器被退回并且他们知道原因。
如果机器太旧,无法退回退款,你唯一的选择就是一个带有引导加载程序文件名的丑陋的外壳游戏,正如我在我的这个页面。最容易的方法是靴子修理,它提供了一个选项,可以在其高级菜单中执行此类重命名并适当地重新配置 GRUB。该选项的名称类似于“备份和重命名 EFI 启动文件”(但这是我的记忆;确切的措辞几乎肯定略有不同)。