Ubuntu引导出问题grub rescu模式下:“error : unknown filesystem”或者 找不到normal.mod 的解决办法

时间:2021-01-22 15:38:37

感谢http://www.linuxidc.com/Linux/2012-06/61983.htm,因为参考了其中的内容。

下面是修改和完善。

问题原因:

  (win7,ubuntu双系统下)

  强制关机;

  ubuntu升级;

  装机后重启-强制关机(我昨天是这一种,多次装机,每次都重启卡在那里,要按ctrl C; 然后,然后就没有然后了,见标题描述,两种情况都有。  );

  硬件组合等原因;

  其它未预料原因。

 描述:

  “error : unknown filesystem”

  找不到normal.mod

解决办法:

  解决办法有多种,以应对各种情况的各种问题。包括:boot repair 工具等。

  这里仅叙述其中的一种,只对部分问题有效。

 
写在前面:
记得是自己第三次碰到 “error:unknown filesystem”这种问题了,前两次也曾尝试着去解决,可最后总是没有成功,于是选择重新安装ubuntu,虽然问题是解决了,可这新的ubuntu意味着自己又要花很多时间去配置ubuntu下的操作环境,而这个过程是非常浪费时间的。于是当第三次碰到时,决心好好花时间去解决下。
 
解决方法如下:

1:首先使用ls命令显示出ubuntu分区的安装信息:

1 grub rescue>ls

一般会罗列出所有磁盘的分区信息,比如(hd0,msdos1)(hd0,msdos2)(hd0,msdos4)(hd0,msdos7)(hd0,msdos10)等等

2:之后输入:

1 grub rescue>set

会列出当前grub的设置,比如prefix=(hd0,msdos7)/boot/grub,root=hd0,msdos7,或者prefix=(hd0,msdos7)/grub,root=hd0,msdos7,正是因为这些设置错误,才导致grub无法找到Ubuntu分区,之后是重新进行grub设置

3:如果你知道ubuntu是安装在哪一个分区的,比如(hd0,msdos7),则分别输入:

1 grub rescue >set root=hd0,msdos1
2 grub rescue> set prefix=(hd0,msdos1)/boot/grub
3 (有些情况下会是set prefix=(hd0,msdos1)/grub,以set之后显示的grub设置为依据)

4:之后输入:

1 insmod normal 回车

我尝试过的有 insmod /boot/grub/normal.mod  (不记得了,大概成功过一次。)
insmod /grub/normal.mod
insmod /boot/grub/i386-pc/normal.mod (成功过一次。)
实际上,可以查看 /boot/grub/下是否有normal.mod文件,有时候没有,但是仔细看,发现grub下面有i386-pc,
其中有很多的模式文件和镜像文件,其中很可能就有我们需要的normal.mod 。

如果仍然出现 error:unknown filesystem 则重新回到步骤2进行grub设置;如果出现一个高亮的grub rescue>,表示分区设置正确了,之后再输入normal,回车,就又会看到我们那个熟悉的紫色界面了:),不过到这里还没有结束,因为如果你再次重启系统的话,依然会碰到error:unknown filesystem这个问题,然后你又要重复上诉步骤才能看到系统的选择界面,因此还有一步需要完成,

5:选择ubuntu,进入之后启动终端,输入如下命令

1 sudo  update-grub
2 sudo grub-install /dev/sda (这里一定要注意是sda, 不是sda8,sda7 等分区名称。否则必然会出问题。)

修复grub分区信息,这样后就不会出现如步骤5中所诉的问题了

之所以会出现该问题,一般都是因为用户在window下进行了分区操作(很多用户都会选择安装window和ubuntu双系统),比如磁盘的划分和合并等,影响了原来的分区信息。

下面是自己的结果图:)

Ubuntu引导出问题grub rescu模式下:“error : unknown filesystem”或者 找不到normal.mod 的解决办法
Ubuntu引导出问题grub rescu模式下:“error : unknown filesystem”或者 找不到normal.mod 的解决办法