问题描述:
开机显示:error:unknowfilesystem
grub rescue>
造成该问题的原因:
1.直接在window下格式化ubuntu的分区
2.调整磁盘 利用工具合并 修改 删除分区 是磁盘分区数目发生变化
3.重装系统选择不同分区 格式化之前分区
4.恢复到老版本系统
总之,是由于操作者不知道grub2分为两个部分。一个部分一般写在mbr上,另外一部分写在某个分区的boot/grub目录下。由于上述操作使mbr的那部分找不到grub目录中的那部分。
在此情况下,可以如下解决,并不用重新安装系统
第一步,找出你的Linux盘在那个分区以及grub目录在什么位置。
如果你还记得最好,忘了也无所谓,使用下面命令逐个试探即可:
grubrescue>ls
回车后,ls命令会列出所有磁盘分区信息,如:
(hd0,4),(hd0,7),(hd0,8),(hd0,9)
循环使用如下命令,直至显示该分区所包含文件内容而不是unknownfilesystem以及其他一些不正常信息
grubrescue>ls (hd0,0)/boot/grub
(网上有写ls(hd0,0)/grub的,可能根据不同linux发行版本不同吧,Ubuntu10.04是grub是放在/boot下面的。或者可以ls其他文件也一样)
假设我们试到(hd0,8)时,成功显示了文件内容,则表示。
第二步:
grubrescue>set root=(hd0,8)
//括号里分区为上一步尝试成功的分区,即linuxgrub 所在分区
grubrescue>set prefix=(hd0,8)/boot/grub
第三步:
grubrescue>insmod normal
网上有些insmod/grub/normal.mod的,我的Ubuntu 10.04并不成功
至此,应该退出了grubrescue模式,进入了熟悉的grub模式
第四步:
grub>normal
不过不要高兴,如果这时重启,问题依旧存在,我们需要进入Linux中,对grub进行修复。
启动起来,进入ubuntu之后,在终端执行:
sudoupdate-grub
sudo grub-install/dev/sda
法2:在执行insmodnormal后