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