修改了win8.1的启动项导致Ubuntu引导出错:
GRUB loading error:unknow filesystem
grub rescue>
【造成该问题的原因】
1.直接在window下格式化ubuntu的分区
2.调整磁盘 利用工具合并 修改 删除分区 是磁盘分区数目发生变化
3.重装系统选择不同分区 格式化之前分区
4.恢复到老版本系统
【解决办法】
1. 先使用ls命令,找到Ubuntu的安装在哪个分区:
在 grub rescue>下输入以下命令:先输入ls,会罗列所有的磁盘分区信息,eg:
(hd0,1),(hd0,5),(hd0,3),(hd0,2)或(hd0,msdos1) like this~
2. 然后依次调用如下命令: (X表示分区编号)
如果/boot没有单独分区,用以下命令:ls (hd0,X)/boot/grub
如果/boot单独分区,则用下列命令:ls (hd0,X)/grub
如果你记得Ubuntu在哪个区选择即可,忘了的话可以进老毛桃PE看一下,也可以一个一个的试,反正也不多,如果不是会提示没找到,找到的话会显示文件夹中的内容,一般扩展名是.mod和.lst和.img。假设找到(hd0,5)时,显示了文件夹中的文件,则表示Linux安装在这个分区。
3. 如果找到了正确的grub目录,则设法临时性将grub的两部分关联起来,方法如下:以下是/boot没有单独分区的命令:
grub rescue>set root=(hd0,5)
grub rescue>set prefix=(hd0,5)/boot/grub
grub rescue>insmod /boot/grub/normal.mod
以下是/boot 单独分区的命令:
(如果/boot单独分区去掉代码中的/boot即可):
grub rescue>set root=(hd0,5)
grub rescue>set prefix=(hd0,5)/grub
grub rescue>insmod /grub/normal.mod(这如果出错可以尝试insmod normal即可)
然后调用如下命令,就可以显示出丢失的grub菜单了。
grub rescue>normal
这时已经成功进入了Ubuntu的grub引导,不过不要高兴,如果这时重启,问题依旧存在,我们需要进入Ubuntu中,对grub进行修复。进入ubuntu之后,在终端执行:
sudo update-grub
sudo grub-install /dev/sda
(sda是你的硬盘号,千万不要指定分区号码,例如sda1,sda5等都不对),现在重启会发现Ubuntu的引导已经回来,大功告成了。