- 说明:
电脑之前装的是WIN7+Fedora双系统,在Win7升级到Win10的过程中,出现:
GRUB loadingerro: unknown filesystemgrub rescue>_
- 原因:升级Win10过程中,破坏了本来写到启动分区的grub文件。
- 在rescue模式下,只有少量的基本命令可用,必须通过一定的操作才能加载正常模块,然后进入正常模式。
rescue模式下可使用的命令有:set,ls,insmod,root,prefix(设置启动路径)
- 在rescue模式下,只有少量的基本命令可用,必须通过一定的操作才能加载正常模块,然后进入正常模式。
- 解决方法:
- 找到有文件系统的分区
- grub rescure > ls
- 出现:(hd0) (hd0,1) (hd0,2), (hd0,3)
- 分别ls 上面4个分区点,有3个都出现"unknown filesystem",但是有一个可能有文件,可能说其它信息,我的是:
- ls (hd0,3)
- 出现 unknown file ""
- 可能(hd0,3)中有文件系统
- 找到grub
- ls (hd0,3)/boot 果然发现一些文件和文件夹
- 然后自己手动继续搜索有名字为grub的地方,我的找到是在(hd0,3)/boot/grub2
- 寻找normal.mod
- ls (hd0,3)/boot/grub2继续在它及其子目录中寻找normal.mod,我在(hd0,3)/boot/grub2/i386-pc下找到
- 启动Linux
- grub rescue>setroot=(hd0,3) grub rescue>set prefix=(hd0,3)/boot/grub2 grub rescue>insmod (hd0,3)/boot/grub2/i386-pc/normal.mod grub rescue>normal
- 顺利启动了Linux,
- 但是如果重启Linux,仍然会出现上面的问题,因为我们没有解决根本的问题。
- 为了解决此问题,需要把grub写到启动分区里。网上有很多方法都是用LiveCD的方法,感觉不方便。我是直接用命令修复
- 修复grub到启动分区
-
- grub2-mkconfig -o /boot/grub2/grub.cfg
- grub2-install /dev/sda
-
重启,恢复正常。