grub rescue救援模式的处理

来源:互联网 发布:手机淘宝怎么设置促销 编辑:程序博客网 时间:2024/05/16 05:34

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

error:unknown filesystem

grub rescue>

 

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

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

 

下面是具体步骤:

 

查看分区

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

grubrescue>ls

回车后,就会出现

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

grubrescue>

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

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

grubrescue>set回车

prefix=(hd0,msdos9)/boot/grub

root=hd0,msdos9

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

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

 

寻找ubuntu所在分区

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

还是用ls指令

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

grubrescue>ls (hd0,msdos8)

回车会发现,不是,还是unknownfilesystem

接着来

。。。。。。。。。

当我试到

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

修改启动分区

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

grubrescue>normal

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

 

再来一遍

当你等着一键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

在终端里运行

sudoupdate-grub

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

好啦,重启,一切搞定!



原创粉丝点击