大家在使用 Linux 系统,特别是双系统,因为调整分区或者其他原因导致开机出现 grub rescue>
界面时,不要惊慌,可能并不是系统文件损坏,大家通过一些恢复手段,能进行修复。下面就详细介绍一下。
原因分析
造成该问题的原因可能有:
- 对硬盘进行分区、修改使硬盘分区发生变化
- 重装系统时选择了不同分区
- 格式化了 Linux 分区
其中,第 1、2 点原因造成的引导丢失比较容易修复,第 3 点原因造成的引导丢失无法修复。
恢复步骤
1.列出硬盘分区
首先,使用 ls
命令列出所有分区:
grub rescue> ls
系统会显示出硬盘的所有分区,例如:
(hd0),(hd0,gpt0),(hd0,gpt1),(hd0,gpt2),(hd0,gpt3),(hd0,gpt4)
2.找到 grub 文件夹所在分区
如果系统的「/boot」文件夹没有单独分区(大多数人应该是如此),那么使用 ls (X,Y)/boot/grub
命令浏览所有分区,其中 X
代表硬盘号,Y
代表分区号,如:
grub rescue> ls (hd0,gpt3)/boot/grub
如果系统没有报错,显示出了文件夹下面的文件,那么该分区就是我们要找的分区,记下硬盘号和分区号。
同样的,如果系统的「/boot」文件夹单独为一个分区或者上一条指令没有找到需要的分区,则使用 ls (X,Y)/grub
命令,其中 X
代表硬盘号,Y
代表分区号。
3.设置 grub 启动位置
设置 grub 启动的分区和文件夹,如:
grub rescue> set root=(hd0,gpt3)
grub rescue> set prefix=(hd0,gpt3)/boot/grub
其中的硬盘号和分区号需要自行确定;grub 安装位置也需要自行确定,即第二行中,/boot/grub
根据需求替换为 /grub
。
4.设置 grub 进入正常模式
通过以下命令,进入正常模式:
grub rescue> insmod normal
grub rescue> normal
至此,grub 由恢复模式进入了正常模式,丢失的启动菜单应该能正常显示了,可以通过 grub 引导至系统。
5.更新 grub 引导
如果此时重启,问题依旧存在。所以我们进入 Linux 系统后,需要马上更新 grub 引导,对 grub 进行修复。在进入 Linux 系统后,在终端执行:
$ sudo update-grub
$ sudo grub-install /dev/sda
至此,你可以重新启动,进入正常的引导界面了,丢失的引导就修复回来了。