修复win10在grub2中的启动项

Heaven Zone | 2018-06-28  |  win10 / grub2

最近升级了Manjaro,关机后都没用Manjaro,而一直在用win10,后来想进入manjaro,发现进入不了,修复后,发现grub2启动项不见了win10的启动项,于是要把它修复修复,在百度上搜索了一下关键字grub2 win10,貌似没有什么是真正有用的,有些描述也不够详细,最后还是用bing搜索了一下英文网页,还是解决了。

主要用到了下面命令:

sudo os-prober
sudo update-grub

sudo os-prober有输出,说明可以自动检测到win10系统了,接着就用update-grub更新/boot/grub/grub.cfg文件。

[heaven@heaven-dell grub]$ sudo os-prober 

[sudo] password for heaven: 
/dev/sda2@/EFI/Microsoft/Boot/bootmgfw.efi:Windows Boot Manager:Windows:efi


[heaven@heaven-dell grub]$ sudo update-grub 

Generating grub configuration file ...
Found background: /usr/share/grub/background.png
Found linux image: /boot/vmlinuz-4.9-x86_64
Found initrd image: /boot/intel-ucode.img /boot/initramfs-4.9-x86_64.img
Found initrd fallback image: /boot/initramfs-4.9-x86_64-fallback.img
Found Windows Boot Manager on /dev/sda2@/EFI/Microsoft/Boot/bootmgfw.efi
Found memtest86+ image: /boot/memtest86+/memtest.bin
done

检查/boot/grub/grub.cfg文件,发现有这么一段了:

### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Windows Boot Manager (on /dev/sda2)' --class windows --class os $menuentry_id_option 'osprober-efi-CC75-8D3F' {
	savedefault
	insmod part_gpt
	insmod fat
	set root='hd0,gpt2'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2  CC75-8D3F
	else
	  search --no-floppy --fs-uuid --set=root CC75-8D3F
	fi
	chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
### END /etc/grub.d/30_os-prober ###

上面这一段是update-grub自动调用os-prober生成的,这样也不用手动修改grub.cfg文件了。

如果用update-grub命令后没有自动添加上面那一段,可能还要修改/etc/default/grub文件,看看有没有GRUB_DISABLE_OS_PROBER项,没有就添加一行并设置为true

即:

GRUB_DISABLE_OS_PROBER=false

参考资料