您的位置:首页 > 产品设计 > UI/UE

Ubuntu引导修复:针对grub rescue||grub not found||unknown filesystem类型的错误

2015-07-12 15:10 661 查看

引言

  Ubuntu一般是通过grub引导。grub分为三种:grub,grub2,和grub for dos(grub4dos).

  最近在Windows下将一个较大的分区分了100G出来,准备用来装Win10,我在启动Ubuntu的时候,出现了一个问题:grub not found ===>grub rescue.

  出现这个问题的原因是grub找不到Ubuntu所在的分区(出现这种情况一般是因为你调整了分区,而grub配置没有作出相应的调整)。一般情况下,出现这种问题,有2种解决办法:

1. 使用EasyBCD软件调整;

2. 在命令行下通过命令重新指定分区;

使用EasyBCD软件进行调整

百度搜索EasyBCD 2.2,下载并安装(免费软件)。以管理员身份运行;

点击“添加新条目”,如下图所示:



在操作系统选项中选中“Linux/BSD”:



类型一栏中选中“GRUB2”,名称随便填,驱动器选择“自动定位和加载”,最后选中“添加条目”。

这样,问题就解决了,重启电脑,选择Ubuntu

最后要说明的是,这种方法有时会失效。

在命令行下通过命令重新指定分区

由于在rescue模式下,只有少量的基本命令可用,必须通过一定的操作才能加载模块,然后进入正常模式;

rescue模式下可以使用的命令有:set,ls,insmod,root,prefix(设置启动路径);

grub rescue模式下命令解释:

ls:查看系统设备状态

set:查看启动路径和分区

root:设置grub启动分区

prefix:设置grub的启动路径

insmod:加载模块

首先,就是要找到grub所在的分区。使用ls命令:grub rescue>ls ,然后就会列出你的磁盘上所有的分区,比如我的是:(hd0,msdos10),(hd0,msdos9)……;

然后,输入如下命令:ls (hd0,msdos10)/grub或者ls (hd0,msdos10)/boot/grub(一般是后一种).这里必须注意的是:这个命令只是一个模版,每个人的电脑可能是不一样的,请根据自己的电脑输入命令。如果系统返回:unknown filesystem,则继续输入列出的下一个分区,直到有某个分区显示的不是unknown filesystem,而是其它的内容的时候,grub所在的分区就找到了,继续;

grub rescue> set root=(hd0,msdos10) ;

grub rescue> set prefix=(hd0,msdos10)/boot/grub 或者可能是grub rescue> set prefix=(hd0,msdos10)/grub 这个看具体grub在哪个位置;

grub rescue> insmod normal ;

grub rescue> normal ;

此时,应该已经进入Ubuntu系统的正常模式,进入系统吧!

不过,事情还没玩。进入Linux系统后,在root终端中将grub再刷一遍:

# update-grub

# grub-install /dev/sda

搞完之后,一切就OK了,之后再怎么重启都没问题了。如果以后再遇到类似的问题,同等视之。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: