grub rescue救援模式的处理

来源: https://www.cnblogs.com/itcomputer/articles/4182344.html

我的linux在调整分区后,出现了grub rescue>
这表示grub2的配置文件坏了,由于分区调整或分区UUID改变造成GRUB2不能正常启动,从而进入修复模式(grub rescue)也称救援模式。

在救援模式下只有很少的命令可以用:
set , ls , insmod , root , prefix

(1)set 查看环境变量,这里可以查看启动路径和分区。
(2)ls 查看设备
(3)insmod 加载模块
(4)root 指定用于启动系统的分区,在救援模式下设置grub启动分区
(5)prefix 设定grub启动路径

一、分区乱了,我不知道boot目录在什么地方了
ls #查看一下设备状态
如图:
grub rescue救援模式的处理 - 汉斯的遗忘 - 汉斯的遗忘
grub rescue> ls (hd0,msdos3)
error: bad filename.
提示:错误的文件名,我在测试时发现必须是后面加一个/

grub rescue> ls (hd0,msdos3)/
./ …/ lost+found/

通过查看发现在(hd0,msdos1)/下有一个boot目录

二、设置grub的启动分区和路径
set root=(hd0,msdos1) #设置grub启动分区
set prefix=(hd0,msdos1)/boot/grub/ #设置grub启动路径
查看一下设置情况:
grub rescue> set
prefix=(hd0,msdos1)/boot/grub
root=hd0,msdos1

三、加载基本模块
insmod /boot/grub/normal.mod #加载基本模块

四、进入正常模式
normal #进入正常模式,出现菜单,如果加载grub.cfg(错误的)可能出现问题,按shift可以出现菜单,之后按c键进入控制台
进入正常模式后就会出现grub>这样的提示符,在这里支持的命令就非常多了。

五、引导系统
set root=(hd0,msdos1) #设置正常启动分区
linux /boot/vmlinuz … ro text root=/dev/sda1 #加载内核,进入控制台模式
initrd /boot/initrd … #加载initrd.img
boot #引导

六、更新grub
安装:grub-install /dev/sda
更新:update-grub

虚拟机实验:
经过上面的经历,我在虚拟机里进行了一下实验,加深巩固。
一、把boot目录移到别的分区
mv /boot/ /home/
这样重启之后就出现了
grub rescue>救援模式。
二、手动启动过程记录
ls (hd0,msdos6)/ #找到了boot所在的分区
set root=(hd0,msdos6) #设置grub启动分区
set prefix=(hd0,msdos6)/boot/grub/ #设置grub启动路径
insmod /boot/grub/normal.mod #加载基本的模块
normal #从救援模式进入正常模式

set root=(hd0,msdos6) #设置系统启动分区,在这里指向内核所在的分区
linux /boot/vmlinuz-2.6.35-22-generic ro text root=/dev/sda1 #加载内核
initrd /boot/initr … #加载initrd.img
boot #启动

测试中正常启动并出现登录对话框。

双系统,win7下一键Ghost,进入grub rescue的解决方法

本人安装的是win7+ubuntu10.10,硬盘直接安装。因为win7下装了几个大软件,所以决定一键Ghost备份一下,结果重启之后,就进入了grub rescue界面:

error:unknown filesystem

grub rescue>

研究了半天,才解决这个问题。先说说是怎么回事。

安装ubuntu时,启动是用grub2进行启动。我的win7在C盘,Ubuntu空间是从D盘里分出来的。我们知道,每次系统启动时都是先进入grub,也就是先在ubuntu的启动目录里选择进入哪个系统,如果按分区来讲,grub2在(hd0,msdos7)也就是我的ubuntu所在的分区。那么启动时root应该设在(hd0,msdos7),可一键ghost会修改启动,它把root改在(hd0,msdos9),这是个windows分区,也就是NTFS分区,ubuntu是不能识别这种文件系统的,所以就有了error:unknown filesystem,这种情况下自然不能启动,那么grub2就会启动grub rescue模式,就是修复模式。那么我们要做的就是把grub重新指向(hd0,msdos7)。

下面是具体步骤:

①查看分区

因为每个人的分区不一样,所以我们要查看分区,用ls指令

grub rescue>ls

回车后,就会出现

(hd0) (hd0,msdos9) (hd0,msdos8) (hd0,msdos7) (hd0,msdos6) (hd0,msdos5) (hd0,msdos1)

grub rescue>

注:我用的是grub2,对于grub用户,分区前没有msdos字样

上面是我的分区,每个人的不一样。

grub rescue>set回车

prefix=(hd0,msdos9)/boot/grub

root=hd0,msdos9

从上面可以看出来现在我的系统是从(hd0,msdos9)里启动的。

那么怎么知道ubuntu在哪个分区呢?进入第二步

②寻找ubuntu所在分区

这一步我们要一个一个的试,

还是用ls指令

先试下在不在(hd0,msdos8)里边

grub rescue>ls (hd0,msdos8)

回车会发现,不是,还是unknown filesystem

接着来

。。。。。。。。。

当我试到

(hd0,msdos7)的时候,可以看到一下子多了很多字,这些就是我ubuntu主文件夹下的文件夹和文件的名字。OK,找到分区了!

③修改启动分区

grub rescue>root=(hd0,msdos7) grub rescue>prefix=/boot/grub //grub路径设置 grub rescue>set root=(hd0,msdos7) grub rescue>set prefix=(hd0,msdos7)/boot/grub grub rescue>insmod normal //启动normal启动

grub rescue>normal

依次敲入上面的指令,是不是看到熟悉的启动菜单了?选win7后,一键Ghost就开始备份系统了。别高兴太早,一切还都没开始呢。如果你不是因为一键Ghost问题进入grub rescue,可以直接跳到第⑤步

④再来一遍

当你等着一键Ghost备份完系统,重启后,你发现还是

error:unknown filesystem

grub rescue>

别着急,再把前三步进行一遍就可以了

⑤进入命令行 启动Ubuntu

进入系统启动选项界面后,你发现,无论点那个还是进不去,这是因为你还没有真正的修改grub,这个要到ubuntu里修改

进入系统启动项界面后,按C进入命令行模式

grub> set root=hd0,msdos7

grub> set prefix=(hd0,msdos7)/boot/grub

grub> linux /vmlinuz-xxx-xxx root=/dev/sda7 //里边的xxxx可以按Tab键,如果有acpi问题,在最后加一句acpi=off grub> initrd /initrd.img-xxx-xxx grub >boot

Ubuntu正常启动了吧?

⑥进入ubuntu修复grub

大功就要高成了

进入Ubuntu后,修复grub

在终端里运行

sudo update-grub

重建grub到第一硬盘mbr sudo grub-install /dev/sda

好啦,重启,一切搞定!

grub rescue救援模式的处理相关推荐

  1. linux下救援模式,CentOS下的rescue救援模式

    CentOS下的rescue救援模式 [MBR故障] 用命令来把MBR的前446字节覆盖 Dd if=/dev/zero of=/dev/sda bs=446 count=1 结果:无法登录系统 1. ...

  2. Ironic 的 Rescue 救援模式实现流程

    目录 文章目录 目录 救援模式 实现 UML 图 救援模式 以往只有虚拟机支持救援模式,裸机是不支持的.直到 Queen 版本 Ironic 实现了这个功能.救援模式下,用户可以完成修复.Troubl ...

  3. Ubuntu 开机出现 grub rescue 终端模式修复方法

    1.  先使用ls命令,找到 Ubuntu 的安装在哪个分区: grub rescue>ls 会罗列所有的磁盘分区信息,比方说: (hd0),(hd0,msdos3),(hd0,msdos2), ...

  4. Linux rescue救援(光盘修复)模式详解

    http://c.biancheng.net/view/5856.html 如果系统错误已经导致单用户模式不能进入了,那么是否需要重新安装 Linux 系统?不用着急,为了应对单用户模式也无法修复的错 ...

  5. linux下grub故障(使用光盘进入救援模式)

    1.这里使用的是vmware  vsphere虚拟主机 救援模式有什么作用: ◆可以更改root密码: ◆恢复硬盘.文件系统操作: ◆系统启动不来的时候,只能通过救援模式来启动: 首先设置启动选项,我 ...

  6. linux光盘补救,Linux_忘记root密码时使用Linux系统光盘进行补救的方法,救援模式即rescue ,这个模式主 - phpStudy...

    忘记root密码时使用Linux系统光盘进行补救的方法 救援模式即rescue ,这个模式主要是应用于,系统无法进入的情况.如,grub损坏或者某一个配置文件修改出错.如何使用rescue模式呢? 光 ...

  7. 进入Linux救援(rescue)模式的四大法门

    适用场景: 当误操作修改系统启动文件/etc/fstab, /etc/rc.d/rc.sysinit时,就会造成系统启动时读取磁盘或初始化环境失败,导致linux无法正常启动,此时就可以借助Linux ...

  8. CentOS通过 liveCD 进入救援模式-重装 grub 修复损坏的

    实戓:使用系统光盘进入救援模式拯救坏掉的系统. 实戓场景:当系统坏了,进不去了,还需要把里面的数据复制出来,怎么办? 可以进入救援模式拷贝数据. 基亍 6 版本系统进入救援模式 1.修改 BIOS 吭 ...

  9. 使用rufus工具U盘安装DotAsterisk(点星PBX)呼叫中心并进入救援模式修复grub引导

    之前有过一篇介绍采用UltraISO制作点星pbx启动光盘U盘安装点星pbx呼叫系统的文章教程--<U盘安装DotAsterisk(点星PBX)企业呼叫中心或IPPBX系统>,下面介绍另一 ...

  10. 救援模式(Rescue Mode)、单用户模式(Single-User Mode)、紧急模式(Emergency Mode)的区别与联系

    链接:https://www.cnblogs.com/xuanbjut/p/13100511.html 1.相关概念:runlevel: 一句话:运行级别指的是Linux等类Unix操作系统下不同的运 ...

最新文章

  1. 1.解决python中导入包不成功的问题(出现CondaHTTPError: HTTP 000 CONNECTION FAILED for url问题)
  2. linux go语言运行环境,安装Go语言运行环境
  3. boost::mp11::mp_compose相关用法的测试程序
  4. CentOS crontab定时任务不执行的解决
  5. linux各种查看端口号
  6. 对象并不一定都是在堆上分配内存的
  7. MaskRCNN路标:TensorFlow版本用于抠图
  8. newman执行测试_postman+newman+Jenkins之API全自动化测试(MAC)
  9. oracle传输表空间功能测试(含详细过程)
  10. STM32CubeMX使用(七)之通用定时器和系统定时器
  11. 这些大学,推迟返校!
  12. Linux系统管理---linux计划任务和日志的管理
  13. springboot redis: xxx as a subtype of [simple type, class java.lang.Object]: no such class found
  14. 多个mysql共存_双mysql共存(MySQL8.0与MySQL5.7)
  15. Win10 系统一天蓝屏好多次,怎么解决?
  16. 计算机科学与技术论文选题怎么选,比较好写的计算机科学与技术专业论文选题 计算机科学与技术专业论文题目如何取...
  17. 备忘 Linux 快速分区
  18. nacos项目启动失败[NA] failed to request
  19. stm8L051低功耗采集电池电量ADC例程
  20. matlab 端点检测 能零比法_基于短时能量与过零率的端点检测的matlab分析

热门文章

  1. MSDN 我告诉你(资源库)
  2. 计算机动画题目,3DMax2014计算机动画作业练习题
  3. psd转html的素材,Ai转PSD格式完美保留图层脚本插件
  4. [个人tricks].chm格式电子书无法正常显示的两种解决办法(亲测有用)
  5. 关于“ VMware Workstation 16 此平台不支持虚拟化的Intel VT-x/EPT. 不使用虚拟化的Intel VT-x/EPT,是否继续?”的有关问题的总结解答
  6. 360企业版 修改服务器ip,360企业版快速安装部署图文教程
  7. Activity跳转并传递
  8. 灵剑问道服务器维护到几点,问道手游2020年12月31日维护公告_问道手游12月31日更新了什么_玩游戏网...
  9. Java代理(静态代理、JDK动态代理、CGLIB动态代理)
  10. 支付宝支付流程 及简单实现