linux修复开机出现grub rescue模式

搜了点网上的资料、发现都是修复MBR分区的、我的电脑是GPT分区+UEFI、虽然不同、但也大同小异、

出现grub rescue模式一般是硬盘分区出现变动、导致旧的grub找不到启动文件而出现的、

今天开机是出现了这样的提示:

error:file'/grub/x86_64-efi/normal.mod'not found

entering rescue mode...

grub rescue>

大概意思是那个路径下normal.mod文件找不到、从而进入了grub rescue模式

那么在grub rescue 模式下应该怎么修复呢?

首先使用set 命令只看当前错误的grub变量、下面是我的电脑的信息

set

返回信息是:

cmdpath=(hd0,gpt1)/EFI/Deepin 2014.2

prefix=(hd0,gpt10)/grub

root=hd0,gpt10

那么我们开分析下这些数据、首先cmdpath指向的是UEFI的启动文件、这个应该不会错、因为硬盘第一分区一般都是EFI分区、并且目录“Deepin 2014.2”也不会出错

所以就应该是prefix和root变量出错了、并且是"gpt10"这个指向的分区出错了、这就好办了、只要找到并修改为正确的分区应该就行了

接着使用ls命令来查看当前硬盘上有哪些分区:

ls

返回信息是:

hd0,gpt1 hd0,gpt2 hd0,gpt3 hd0,gpt4 hd0,gpt* .......

接下来就该测试到底那个分区才是正确的启动分区、我的linux的boot分区是单独挂出来的

我们先网上看那个prefix变量、它指向一个分区下的grub目录、那么我们就用这个目录来测试看那个分区中包含grub目录、只要包含这个目录那么基本上就可以确定那个分区就是正确的启动分区了、也就是boot分区

使用"ls (hd0,gpt*)/grub"这个命令来逐一查看分区、注意命令中的"*"号、要用数字来代替

因为我可以确定前几个分区是windows分区、所以我就从(hd0,gpt10)附近的分区开始测试

ls (hd0,gpt11)/grub

返回信息是提示错误、找不到、或者提示unknown systemfile也就是未知的文件系统所以这个分区:gpt11并不是我们要找的分区

接着使用

ls (hd0,gpt9)/grub

返回了一些找到的文件夹和文件、其中就包含"x86_64-efi"目录、所以这个"gpt9"应该就是正确的启动分区

接着使用

set prefix=(hd0,gpt9)/grub

set root=hd0,gpt9

注意、这里我把原来错误的gpt10改为了gpt9

为什么不设置cmdpath呢?前面已经说了、这个变量一般是不会出错的

设置好了之后使用下面的命令来加载模块:

insmod  (hd0,gpt9)/grub/x86_64-efi/normal.mod

或者使用:

insmod normal

最好使用第一种方法、因为它使用的是完整的路径、可以保证不出错、前提是你找对了分区、

加载好之后grub rescue>这个提示符应该就会发生变化了

然后使用:

normal

这个命令、就出启动到正常的grub启动菜单并正常进入linux了

不过到这里并没有完全搞定、如果你进入linux后重启的话就会发现又出现grub rescue模式了

因为grub rescue模式只是应急、它并没有真正把grub修改为正确的数据

所以要在终端中手动重新修改下grub

进入终端输入:

sudo update-grub

无错误返回、那么接着:

sudo grub-install /dev/sda9

这里的sda9是你的boot分区、如果不确定可以再开一个终端使用:mount命令来查看你的boot分区挂载到了哪儿

到这里才算是真正修复了

  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
当你的Linux无法正常启动时,可能会出现GR Rescue的情况。GRUB(GRand Bootloader)是一款常用的引导加载,用于加载操作系统。GRUB Rescue是一个命令行界面,用于修复引导问题。 在Linux开机启动时,通常会先加载BIOS或UEFI,然后加载GRUB引导程序。如果GRUB引导程序出现问题,可能会导致系统无法正常启动,此时就会进入GRUB Rescue模式。 在GRUB Rescue模式下,你可以使用一些命令来尝试修复引导问题。以下是一些常用的命令: 1. ls:列出当前可用的硬盘和分区。 2. set:查看当前的GRUB环境变量。 3. insmod:加载指定模块。 4. lsmod:列出已加载的模块。 5. root:设置根文件系统。 6. prefix:设置GRUB的安装路径。 7. normal:尝试正常启动系统。 修复GRUB Rescue问题的具体步骤可能因情况而异,但通常包括以下几个步骤: 1. 确定引导分区:使用ls命令列出可用的硬盘和分区,找到包含/boot/grub目录的分区。 2. 设置根文件系统:使用set命令设置根文件系统,例如set root=(hd0,1)。 3. 设置GRUB安装路径:使用prefix命令设置GRUB的安装路径,例如prefix=(hd0,1)/boot/grub。 4. 加载正常模块:使用insmod命令加载正常模块,例如insmod normal。 5. 启动系统:使用normal命令尝试正常启动系统。 如果以上步骤无法解决问题,可能需要进一步检查引导配置文件、修复文件系统或重新安装GRUB等操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值