同学机子上遇到的问题,他安装了双系统:win7 + ubuntu,由于他的win系统下的文件系统只有两个分区(主分区和逻辑分区),因为逻辑分区太大,所以用Adds把它分割成小的分区,分区完成后重启计算机出现了InvalidFilesystem提示,然后进入grubrescue中。
导致这个问题的原因可能是因为增加了三个逻辑分区,然而Ubuntu下的启动信息没有改变,所以导致了找不到grub了。
首先:敲命令 ls 查看系统的分区信息
grub rescue>ls
同学机子显示:(hd0,msdos0),(hd0,msdos1),....(hd0,msdos11)。
然后:通过敲下列命令找到grub所在的分区
grub rescue>ls (hd0,msdos9)/grub/
如果在所有的分区中都进入不到该目录的话,就有可能是不同的distribution的grub的路径不同所造成的,可以试一试(hd0,msdos8)/boot/grub。
接着:输入下列命令来修改grub的路径信息
grub rescue>set prefix=(hd0,msdos9)/grub
grub rescue>set root=hd0,msdos9
grub rescue>insmod normal
注意:各个distribution的root的路径模式可能不同,你可以输入grubrescue>set来查看root的书写模式
下面:使用下列命令来显示grub信息
grub rescue>normal
最后:在grub启动菜单中选择进入Ubuntu系统来更新和保存grub信息
打开终端,输入下列命令:
sudo update-grub
sudo grub-install /dev/sda (此处为你的系统所在的硬盘号,而不是分区号,例如sda1,sda2都不对)
至此,重新启动后就发现grub启动菜单出来了。
注意:上面的命令都是按照同学的硬盘分区号来填写的,请根据自己实际情况修改