先向大家介绍一下我遇到这个问题时的情况,我的本是:win7(C.D.E盘)+ubuntu kylin14.10双系统,当然了,当初装系统的时候因为开机引导的原因肯定是先装的win7,之后在win7下删除了F分区(128G)安装了ubuntu,好了,这样就为我今天遇到的问题埋下了伏笔.
觉得自己完全能在unbuntu下工作学习之后,我在ubuntu下删除了win7,并将C盘分区删除(之前在ubuntu下格式化过C盘一次没有问题),删除分区之后,再用ci为剩下的磁盘空间重新分区的时候,系统提示了错误,具体提示的什么错误我也不记得了,不过我已经感觉的到系统出问题了,于是重启了一下,果然,开机之后黑屏并提示:
Grub loading
error:unknown filesystem
Grub rescue>
一番百度.google之后,我了解到之所以会出现上面的问题,原来是因为unbuntu使用的是grub用的grub2,而grub2分为两部分,一部分(一般情况下)写在了mbr上,另一部分写在了某个分区的/boot/grub目录(如果/boot单独分区,则直接写在对应分区的/grub目录)里面.由于上述操作.致使grub2的mbr里面的那一部分找不到/grub目录里面的那一部分了(已被删除).
解决办法:
1.先使用ls命令,找到ubuntu安装的分区:在grub rescue>下输入
ls
会罗列系统磁盘的所有分区信息
例如(hd0) (hd0,msdos4),(hd0,msods3),(hd0,msdos2),(hd0,msdos1)
2.然后依次调用如下命令:X表示分区的号码
(1)如果/boot没有单独分区,用下面命令
ls (hd0,msdosX)/boot/grub
(2)如果/boot单独分区,则用下列命令:
ls (hd0,msdosX)/grub
假设找到(hd0,sd2)时,显示了grub.cfg文件,则表示linux安装在了这个分区.
3.找到了grub目录,则调用如下命令
(1)下面的命令是/boot没有单独分区的命令(X 是上面找到的linux安装目录分区号)
grub rescue>set root=(hd0,msdosX)
grub rescue>set prefix=(hd0,X)/boot/grub
grub rescue>insmod /boot/grub/i386-pc/normal
(2)以下是/boot单独分区的命令
grub rescue>set root=(hd0,msdosX)
grub rescue>set prefix=(hd0,X)/grub
grub rescue>insmod /grub/i386-pc/normal
然后调用如下命令 grub rescue>normal
重启,好了,现在我们已经能够看到引导界面了,不过现在我们还不能高兴的太早,如果现在再重启,问题依然存在.现在我们进入linux,对grub进行修复.
进入linux,开启终端,在终端执行
sudo update-grub
sudo grub-install /dev/sda
(sda是硬盘号,在这里不能千万不能指定分区号码)好了,现在系统已经修复完成了,现在重启应该没有问题了吧!