在grub的rescue模式下修复linux引导(gpt+uefi)

最近win10用dism++更新了1903的更新后,原来manjaro的linux引导失效,只能按f12,从windows manager的引导进入win10,而manjaro的grub自动进入rescue mode。以下记录了自己的修复过程。

grub rescue> _

进入系统

首先列出所有的可用分区

grub rescue> ls
(hd0) (hd1) (hd1,gpt8)....

根据你自己的记忆大概定位系统引导所在的分区(如果不记得那就只能逐个去试了)并用ls定位引导所在的分区(输出包含boot/)
如下图可以看出(hd1,gpt7)就是我们要找的分区:

grub rescue> ls (hd1,gpt6)/
./ ../ lost+found/
grub rescue> ls (hd1,gpt7)/
./ ../ lost+found/ bin/ boot/ dev/...

提示:

如果linux安装时单独分区了boot,那应该在某个分区下含有grub目录,如果没有单独分boot分区,那应该在主分区下含有/boot/grub目录。

找到了对应分区后:

  • 配置grub引导

grub rescue> set root=(hd1,gpt7)
grub rescue> set prefix=(hd1,gpt7)/boot/grub

  • 切换到normal模式

grub rescue> insmod normal
grub rescue> normal

如果上面设置没有错的话,就可以正常进入系统的grub菜单了。

安装grub到efi分区

正常进入系统后,如果不先修复grub的引导的话,重启电脑之后还是会进入刚刚那个rescue模式。

  • 找出你的efi分区挂载点

运行df命令:

df

找到boot或efi挂载点


boot

efi
  • 重新安装grub

用grub-install命令安装grub:

如果提示找不到某个命令,尝试把你的/usr/sbin添加到环境变量PATH中:
打开:vim /etc/profile
添加: export PATH=$PATH:/usr/sbin
应用配置: source /etc/profile

sudo grub-install /dev/sdb2
安装完成没有报错的话,重启就可以了。

你可能感兴趣的:(在grub的rescue模式下修复linux引导(gpt+uefi))