`

【转】grub rescue救援模式的处理

    博客分类:
  • win7
 
阅读更多

本人现在安装的是Windows 7+Ubuntu 10.10 双系统。今天想在自己的烂PC上装Mac,于是分了两个区,并且都没格式化。用leopard硬盘安装工具把dmg镜像加载到新分区后(现在应该被格式化成HFS+分区了),又安装了MacDrive,然后重启系统。

 

再然后,就悲剧了。

 

grub无法引导进入系统,大黑屏上出现:

unkown filesystem

grub rescue>

 

OK,确实悲剧了:估计Windows刚才的分区活动把Grub搞郁闷了,Grub进入Rescue模式。之后,手机google了一下,发现“love-姜红阳”的一篇blog 写得很好。现在转贴过来。

 

我的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

好啦,重启,一切搞定!

 

 

感谢姜红阳的解决方案。

分享到:
评论

相关推荐

    linux rescue救援模式详解.doc

    Linux Rescue救援模式详解 Linux Rescue救援模式是一种特殊的启动模式,用于修复无法启动的 Linux 系统。以下是 Linux Rescue 模式的详细解释和使用指导。 什么是 Linux Rescue 模式 Linux Rescue 模式是一种特殊...

    LINUX GRUB引导故障和救援模式

    LINUX 下GRUB引导故障和救援模式,讲解详细。

    linux救援模式详细描述

    在深入探讨如何进入Linux救援模式之前,我们首先需要了解什么是救援模式(Rescue Mode)。救援模式是Linux系统中的一种特殊运行状态,它允许用户在系统出现问题时进行修复操作。通常情况下,当我们遇到无法正常启动...

    centos 的救援模式

    CentOS 的救援模式详解 CentOS 的救援模式是指在 CentOS 系统中...在使用救援模式时,需要了解相关的知识点,如 bootdisk、Linux rescue 模式、kernel、grub、initrd、/etc/inittab 和 /etc/fstab 文件的配置和使用。

    centos7救援模式修复系统文件

    - 再次选择`Rescue a CentOS system`,按回车键进入救援模式。 3. **系统挂载与修复**: - 进入救援模式后,系统会自动将根文件系统挂载到`/mnt/sysimage`目录。 - 接下来,需要进入`root`模式,并对系统进行...

    Linux 内核崩溃 引导修复 rescue 救援笔记

    修复这种问题的一种方法是通过救援模式(rescue mode)。首先,需要另一台运行相同或兼容版本Linux系统的计算机,然后将故障系统的硬盘挂载到这台计算机上。使用`chroot`命令,可以将故障系统的根目录切换到挂载点,...

    linux援救模式:linux rescue使用详细图解

    ### Linux救援模式详解:深入理解Linux Rescue的使用与实践 #### 引言 在Linux操作系统中,遇到系统崩溃、配置错误、文件系统损坏等问题时,Linux救援模式(Linux Rescue)成为了一种有效的恢复手段。本文将详细...

    grub-1.98grub

    3. **修复工具**: 当GRUB遇到问题时,可以使用GRUB的恢复模式或者GRUB rescue命令行来修复引导问题。 4. **密码保护**: 这个版本的GRUB允许设置密码,以防止未经授权的用户访问或修改引导选项,增强了系统安全性。 ...

    GRUB2的使用简介

    - **丢失GRUB2**:如果GRUB2被覆盖或损坏,可以使用安装介质的救援模式或者通过其他系统恢复。 - **密码忘记**:若设置了GRUB2密码,可通过GRUB rescue模式或修改`/etc/grub.d/00_header`文件来解除密码。 - **...

    linux中修复GRUB

    4. **启动救援模式**:从救援盘启动后,选择“Boot from CD/USB”选项,然后选择“Linux Rescue”模式。 ### 三、修复GRUB #### 步骤1:查找并挂载根分区 1. 进入救援模式后,运行`sh#`命令,打开命令行界面。 2....

    Linux救援模式应用.pdf

    当系统由于严重问题无法进入单用户模式,或者GRUB引导问题无法解决时,可以使用Linux救援模式。救援模式的启动需要放入Linux安装光盘,并在引导时选择“Linux rescue”选项。进入救援模式后,系统会检测硬件,加载...

    RHEL7进入救援模式找回root帐号密码.rar_ROOT_rhel7

    首先,让我们了解什么是救援模式(Rescue Mode)。救援模式是RHEL提供的一种紧急恢复机制,它允许用户在不启动完整系统的情况下访问文件系统,以便进行故障排查、修复损坏的系统设置或更改密码等操作。 以下是进入...

    grub加密与破解及系统修复思路

    如果 GRUB 被破坏,系统无法启动,则需要用光盘的救援模式进行重装 GRUB。首先,从光盘启动,选择 Rescue Installed system 进入救援模式;然后,根据提示选择语言和键盘类型;接着,选择是否配置网络,不需要配置;...

    Linux救援模式[收集].pdf

    在RHEL 3系统中,可以在shell提示符下输入`linux rescue`命令来启动救援模式。接下来,系统会引导你完成一系列配置步骤,包括选择语言、键盘布局,以及是否配置网络。如果网络不是必需的,可以跳过网卡配置。 进入...

    GRUB4DOS教程

    1. 使用`grub rescue>`模式:当GRUB4DOS无法正常加载时,会进入救援模式。通过一系列命令,如`ls`和`set`,可以定位问题并恢复引导。 2. 更新配置:如果系统更新或添加了新的操作系统,需要及时更新`menu.lst`以保持...

    CentOS-GRUB.rar_centos_grub

    3. **故障排查**:指导用户如何通过启动救援模式,或者使用Live USB/Cdrom进入系统,以检查和修复硬盘分区表、文件系统或GRUB配置。 4. **修复GRUB**:详细说明如何使用`grub2-mkconfig`和`grub2-install`命令来...

    clearMBR.rar

    Grub rescue是GRUB2的紧急救援模式,当GRUB2不能正确识别系统分区或找不到启动项时,会自动进入此模式。要理解如何解决这个问题,我们需要了解以下几个关键概念: 1. **GRUB**: GRUB是一个多操作系统启动加载器,...

    grub如何重装

    1. **进入救援模式**:重启计算机并按住Shift键进入GRUB菜单,选择“Linux Rescue”模式启动Linux。 - 如果您的计算机无法通过GRUB进入Linux救援模式,可以尝试使用Linux安装盘或者USB启动盘来引导进入救援模式。...

    Ubuntu引导修复

    - 成功后,使用`normal`命令退出GRUB救援模式,返回正常的GRUB界面。 4. **进入Linux系统后修复GRUB** - 在命令行中运行`sudo update-grub`更新GRUB配置。 - 使用`sudo grub-install /dev/sda`重新安装GRUB到...

    GRUB相关问题解决方法

    1. 使用系统安装盘或Live USB启动计算机,进入救援模式。 2. 使用`chroot`命令挂载系统根目录,如`chroot /mnt/sysimage`。 3. 更新GRUB,例如在Ubuntu系统中运行`update-grub`或`grub-install /dev/sda`(sda替换为...

Global site tag (gtag.js) - Google Analytics