截至上次 Windows 10 就地复活,在设备引导时候,属于 UEFI 引导固件默认加载 Ubuntu,而当认为按下 F12
干预时,UEFI 引导固件会列出菜单供选择。那么,有没有可能让默认引导的 Grub 在菜单中显示出 Windows 10 呢(毕竟 update-grub
可耻地失败了)?
根据有些文章(如 https://www.cnblogs.com/jpfss/p/9462792.html),应该是可以的。将其中密切相关部分摘录于此。
修复 Windows 引导
这一点是我安装 Arch Llinux 的时候发现的,Arch Linux 安装过程是手动安装的,在编写 GRUB 的时候会扫描不到 Windows Manager 所在的分区(当然可能不是所有人都会遇到),所以在 GRUB 界面可能会看不到 Windows Manager 选项,导致进不去 Windows 10,这里就需要手动编辑 GRUB 信息。打开 /boot/grub/grub.cfg
文件,发现里面确实没有 Windows 10 的启动信息,在后面加上:
1 2 3 4 5 6 7 8 |
menuentry "Microsoft Windows 10" { insmod part_gpt insmod fat insmod search_fs_uuid insmod chain search --fs-uuid --set=root $hints_string $fs_uuid chainloader /EFI/Microsoft/Boot/bootmgfw.efi } |
注意:
这里的 $hints_string
,代表的是终端执行命令:
1 |
sudo grub-probe --target=hints_string /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi |
后的输出;而 $fs_uuid
代表的是:
1 |
sudo grub-probe --target=fs_uuid /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi |
的输出。
然后保存。在终端执行命令:sudo grub-mkconfig -o /boot/grub/grub.cfg
,就 OK 了。
不过三太爷没试。
更新(2021-01-02):
后来还是试了,search
那句执行的结果有问题,自己手动 set
正确的 root
即可。