TL;DR,在编辑中添加:
问题是:
我怎样才能让BIOS在同一个UEFI启动分区上喜欢GRUB而不是Windows Boot Manager?
问题不在于Grub;当BIOS启动它时,Grub会做正确的事情。问题不在于"磁盘不能启动,"因为Windows UEFI引导程序和Grub UEFI引导程序都可以启动。问题是BIOS选择从哪个UEFI引导程序启动。
我正在设置一台新电脑,并希望它默认启动到Ubuntu,但在启动时可以选择Windows。这一点在停电后恢复时尤其重要;我甚至不会在屋里。
我开始在我的内部NVMe磁盘上安装Ubuntu 17.04,用GPT分区来使用一半的磁盘,还有一个单独的UEFI启动分区。GRUB启动得很好,而且我在启动时看到了GRUB启动菜单,我可以选择GRUB知道的任何项目。
然后我从最近下载的ISO中安装了Windows 10 Pro。 它把Windows Boot Manager安装在同一个UEFI分区上,并保留了Ubuntu(很好!),它可以很好地启动到Windows 10。
然而,它做了一个"东西",使UEFI固件在开机时立即选择Windows启动管理器而不是GRUB。现在启动Linux的唯一方法是使用BIOS启动管理器(我的BIOS上的F11),并手动选择GRUB启动加载器。 UEFI BIOS 知道 UEFI 分区上有多个可启动的安装程序,因为我可以在启动管理器中选择它们。 然而,当我在UEFI BIOS的设置菜单中,它只让我在启动优先级选择中选择"UEFI启动我的内部驱动器"--它不让我选择在该分区上使用哪个特定的启动加载器。而且,在默认情况下,它选择了Windows,而不是GRUB。
互联网(和这个网站)建议,解决这个问题的老办法是运行update-grub
(让GRUB识别Windows),然后grub-install
(把GRUB放回设备上)。我已经这样做了,但不幸的是,它仍然有上述的行为,BIOS默认选择Windows Boot Manager。(update-grub
确实找到了Windows Boot Manager的安装,并将其添加到菜单中,而且当我在UEFI启动管理器中手动选择GRUB分区时,该菜单项也能工作。)
我怎么做才能使GRUB成为我的UEFI启动分区的"默认" 启动?
使用MSI X399 Carbon主板。
第二次编辑:因为正确的答案最终在回复的评论中被提及,所以我在这里重复一下:
"BCDEDIT" in an admin shell on Windows is the working solution. The others don't work.
过去几周,我一直有这个确切的问题。我通过这些选项解决了这个问题。在做这些事情之前,我建议你进入你的BIOS/UEFI,并检查启动顺序,确保grub安装的位置在顺序的第一位。
所以我的看法是,你有两个选择。
我向你推荐的是先安装Windows 10 。然后安装ubuntu。但我知道,直接说"重新安装你的软件"是有点禁忌的,所以我也会提供一个替代方案。
以你目前的设置,我建议你启动到Ubuntu光盘/闪存驱动器,并安装和运行boot-repair
。点击""推荐修复"选项,并按照给出的指示操作。仔细阅读并在执行之前阅读所有的命令。这将用一个新的grub安装来覆盖当前的grub安装,希望能修复它。