Jon*_*tte 31 grub ubuntu uefi windows-10
TL; DR,在编辑中添加:
问题是:
如何让 BIOS 在同一个 UEFI 引导分区上更喜欢 GRUB 而不是 Windows 引导管理器?
问题不在于 Grub;Grub 在 BIOS 启动时会做正确的事情。问题不在于“磁盘不可引导”,因为 Windows UEFI 引导程序和 Grub UEFI 引导程序都是可引导的。问题在于 BIOS 选择从哪个 UEFI 引导程序引导。
我正在设置一台新计算机,并希望它默认启动到 Ubuntu,但可以选择启动时选择 Windows。如果断电又断电,这一点尤其重要;我什至不会在家里。
我首先在我的内部 NVMe 磁盘上安装 Ubuntu 17.04,使用 GPT 进行分区以使用一半的磁盘,以及一个单独的 UEFI 引导分区。GRUB 启动就好了,我会在启动时看到 GRUB 启动菜单,我可以在其中选择 GRUB 知道的任何项目。
然后我从最近下载的 ISO 安装了 Windows 10 Pro。它将 Windows 启动管理器安装到同一个 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 启动管理器。(update-grub
确实找到了 Windows 启动管理器安装,并将其添加到菜单中,当我在 UEFI 启动管理器中手动选择 GRUB 分区时,该菜单项起作用。)
我该怎么做才能使 GRUB 成为 UEFI 引导分区上的“默认”引导?
使用 MSI X399 Carbon 主板。
第二次编辑:因为正确的答案最终会在对回复的评论中被提及,我将在这里重复一遍:
"BCDEDIT" in an admin shell on Windows is the working solution. The others don't work.
Run Code Online (Sandbox Code Playgroud)
Rod*_*ith 32
有很多不同的方法可以做到这一点,包括:
ubuntu
考虑到您从该发行版安装了GRUB,因此很可能会调用 GRUB 。)bcfg
在 EFI 版本 2 shell 中使用该命令,如Arch Linux wiki 中所述。如果您的系统尚未设置易于访问的 shell,则此方法可能比其他方法更难使用,但它与操作系统无关。ubuntu
EasyUEFI 列表中的条目并将其移至顶部。bcdedit
-- Windowsbcdedit
命令可以更改基于 NVRAM 的引导顺序。具体来说,打开管理员命令提示符窗口并输入bcdedit /set "{bootmgr}" path \EFI\ubuntu\shimx64.efi
(可选地跟随bcdedit /set "{bootmgr}" description "ubuntu"
以保持描述合理)应该可以解决问题。efibootmgr
-- 这个Linux工具可以调整启动顺序。首先sudo efibootmgr
单独键入以查看选项。请注意Boot####
与ubuntu
条目关联的编号 ( )和当前引导顺序(BootOrder
在线)。然后,您可以ubuntu
使用该-o
选项输入带有顶部条目的新引导顺序。例如,如果当前的引导顺序是 0000,0003,0007,0004 和ubuntu
0007,您可以键入sudo efibootmgr -o 0007,0000,0003,0004
以调整引导顺序。refind-mkdefault
-- 此脚本随 rEFInd 一起提供,它是一种自动化上述过程的方法。如果您不使用 rEFInd,则需要在此处下载脚本并使其可执行 ( chmod a+x refind-mkdefault
)。然后,您可以将其作为sudo ./refind-mkdefault -L ubuntu
或sudo ./refind-mkdefault -L shimx64
使 GRUB 成为默认引导项来运行。这些选项中的任何一个都存在潜在的问题和并发症。最可能的复杂因素是是否有旧的或替代的ubuntu
引导条目。将正确的移动到引导顺序中的顶部位置很重要;如果您移动了错误的位置,您最终要么不会改变行为,要么无法启动某些功能,这会使启动变得更加困难。如果您使用efibootmgr
,该BootCurrent
行可能会帮助您确定应将哪个选项设置为默认值。
还有其他方法可以做到这一点是矫枉过正。例如,重新安装 GRUB(通过Boot Repair或grub-install
)应该可以解决问题。但是,这些方法存在损坏已知工作的 GRUB 配置的风险。
另请注意,某些 EFI 有问题,还有其他问题可能会使 GRUB 难以可靠地启动。如果遇到此类问题,您可能需要在 AskUbuntu 上查看这些问题和答案:
归档时间: |
|
查看次数: |
136129 次 |
最近记录: |