我是win7和ubuntu双系统,本来win7的分区都是网管帮忙做好了的,自己从最后一个分区F盘压缩出来点空间装的ubuntu,压缩时候不知道什么原因,只能压出80多个G,还有120个G的空间呢。平时一般都在ubuntu下干活,结果开发需要,就又安装了一个虚拟机win7,毕竟切换平台又要装很多环境,我只需要一个ie的测试而已吗。这样硬盘空间就不够了,我就又进入win7把F盘给删了,好挂在到linux里。
结果重启开机就告诉你说,unknown filesystem,grub rescue>
直接懵了,不过感紧百度了一下,找了别人的经验,结合自己的实际环境给搞好了。记录个过程吧。
只剩ls这个命令还能用了,就把所有分区信息输出了,类似
(hd0,1),(hd0,5),(hd0,3),(hd0,2),我的就是(hd0,msdos1),这可能是跟做系统分区时候使用的工具有关。
直接再ls (hd0,msdos1)/ 如果是linux分区就会有内容,windows分区就会显示unknown。我们关键是要找/boot/grub/这个东东的所在,有的boot单独分区,有的不是单独分区,会挂在/下面,挨个ls (),直到找到/boot/grub/所在位置。
然后设置:
grub rescue>set root=(hd0,msdos7)/boot
grub rescue>set prefix=(hd0,msdos7)/boot/grub
然后我看的文章都是让执行这个命令:
grub rescue>insmod /boot/grub/normal.mod
而实际上,我的目录里面压根就没这个文件,我就试着找了找,执行了这个命令:
insmod normal
然后界面字体的颜色就变了,说明生效了
然后输入normal回车就重启了,再进系统,打开终端
sudo update-grub
sudo grub-install /dev/sda ->比如我的/目录实际上挂在的是/dev/sda7,但这里还是要sda。
要注意的是,在ls那一步的时候,可能需要添加/到)后面,有时不需要,看个人情况吧。