双系统win10&manjaro(Linux),win大更新系统遇到grub rescue

1. 问题描述:开机显示:GRUB loading

error:unknow filesystem
grub rescue>

2. 原因分析

  造成该问题的可能原因有:
  1)直接在window下格式化ubuntu的分区
  2)调整磁盘 利用工具合并修改、删除分区使磁盘分区数目发生变化
  3)重装系统选择不同分区 格式化之前分区
  4)恢复到老版本系统

3. 方法/步骤

  A、先使用ls命令,找到linux安装在哪个分区:在 grub rescue>下输入ls命令,即

grub rescue>ls

  输入命令回车后会罗列所有的磁盘分区信息,比方说:

 (hd0,1),(hd0,5),(hd0,3),(hd0,2)或(hd0,msdos1)如此

  B、然后依次调用如下命令: X表示各个分区号码如果/boot没有单独分区,用ls (hd0,X)/boot/grub命令,即

grub rescue>ls (hd0,X)/boot/grub

如果/boot单独分区,则用 ls (hd0,X)/grub命令,即
grub rescue>ls (hd0,X)/grub

  如果X对应的不是Linux安装分区,则输入命令后会提示unknow filesystem字样。如果X就是Linux安装的分区,则会列出一些文件。假设找到(hd0,5)时,显示了文件夹中的文件,则表示Linux安装在这个分区。

  C、如果找到了正确的grub目录,则设法临时性将grub的两部分关联起来,方法如下:

  a) 以下是/boot没有单独分区的命令:

grub rescue>grub rescue>set root=(hd0,5)
grub rescue>grub rescue>set prefix=(hd0,5)/boot/grub
grub rescue>grub rescue>insmod normal

  b) 以下是/boot 单独分区的命令:

grub rescue>set root=(hd0,5)
grub rescue>set prefix=(hd0,5)/grub
grub rescue>insmod normal

此处很多地方说要用到什么boot/路径之类,或者要用到normal**.mod**,经过测试,不要加后缀成功运行
  D、然后调用如下命令,就可以显示出丢失的grub菜单了。

grub rescue>grub rescue>normal

  不过不要高兴,如果这时重启,问题依旧存在,我们需要进入Linux中,对grub进行修复。启动起来,进入Linux系统之后,在终端执行:

$: sudo update-grub   
$: sudo grub-install /dev/sda

(sda是你的硬盘号码,千万不要指定分区号码,例如sda1,sda5等都不对)重启测试是否已经恢复了grub的启动菜单? 恭喜你恢复成功!

4. 参考资料

  1) 双系统win8.1&ubuntu重装 14.04遇到grub rescue