win10升级后grub2挂了的解决办法

昨天关机时win10提醒更新,没仔细看就选了更新关机。今天开机就发现rEFInd(一种bootloader)没了,直接进win10。微软又想强暴linux伙伴啊,不是说“Microsoft love Linux”吗?

可能是win10这次更新重新安装了bootloader,之前的设置被覆盖了。既然这样,先看看win10的Secure boot是否重新开启——即使使用得到微软认证的ubuntu,官方仍建议关掉这个功能。

关掉secure boot,然后就是重新配置refind。在win10下打开shell(系统管理员),输入命令:

bcdedit /set '{bootmgr}' path \EFI\refind\refind_x64.efi #设置refind为引导程序

本以为重启就可以使用我的manjaro了,结果出现万恶的grub rescue。面对黑底白字命令行界面,只能手机百度命令行(记不住啊。。。):
先输入ls命令查看磁盘情况,然后寻找linux的/boot安装分区:

grub rescue> ls (hd0,msdos3)/ #圆括号里为第一步ls命令查到的分区名,最后的斜杠不要忘了

如果你不能确定系统/boot安装的分区,只能一个一个试。当系统反馈里有“/boot”就说明安装在这个分区。记住这个分区,接着就是设置引导:

set root=(hd0,msdos1) #设置grub启动分区,圆括号里写刚查出的分区
set prefix=(hd0,msdos1)/boot/grub/ #设置grub启动路径,圆括号里同上
grub rescue>insmod /boot/grub/normal.mod
grub rescue>normal

如果没问题,最后一条命令就可以进入linux。最后在linux下修复下grub2,不然下次还得手动引导:

sudo update-grub
sudo grub-install /dev/sda #sda是你的硬盘号码,不要指定分区号码,如sda1、sda5

以上完成,重启电脑一切正常。

猜你喜欢

转载自blog.51cto.com/13589319/2126706