![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/851441f09944251647a44ad83e9518b8.png)
原因分析
出现上面的问题,是因为 /grub/x86_64-efi/normal.mod
文件被存储在了其他的硬盘分区中,导致启动Linux 系统的时候找不到设置的启动文件。(我的电脑是由于对C盘应用进行迁移时,不小心把Linux系统的挂载文件迁移了,因此导致了此问题)
解决方案
-
1、Grub 命令
rescue模式下可使用的命令有:set,ls,insmod,root,prefix
set:设置
cmdpath、prefix、root
路径
ls:查看 gpt分区列表 -
2、使用
ls
查看 gpt 分区grub rescue> ls
执行结果,如图所示:
-
3、使用
ls
查看每个 gpt 分区中是否存在grub
文件夹grub rescue> ls (hd0,gpt11)/grub error: unknown filesystem grub rescue>ls (hd0,gpt10)/grub error: file '/grub' not found grub rescue>ls (hd0,gpt9)/grub ... grub rescue>ls (hd0,gpt8)/grub ./ ../ x86_64-efi grubeny ...
直到找到 如上所示的
x86_64-efi
为止,如图所示:
注意:1、由于本机的
x86_64-efi/normal.mod
文件是放在 gpt 分区的grub
文件夹下的,因此,查找时使用的是ls (hd0,gpt11)/grub
进行查找
2、在查找时需根据具体的文件目录进行查找,即使用的电脑中所报出的文件目录
-
4,查找到文件所在gpt分区后,重新设置启动文件根目录和预设地址
grub rescue>set root=(hd0,gpt8)/grub grub rescue>set prefix=(hd0,gpt8)/grub grub rescue>insmod normal grub rescue>normal
执行操作,如图所示:
* 5、在执行完
normal
回车后,系统就会自动重启,显示进入选择系统界面。但是,这样只是短暂的进入系统,并不能从根本上解决问题。 -
6、进入 Linux 系统,打开终端,输入以下命令:
sudo update-grub # 将GRUB(系统引导器)安装在第一块硬盘的引导区 sudo grub-install /dev/sda
/dev/sda
是指你电脑上编号第一的那块SCSI硬盘。 -
7、再次重启时,系统将不会再报出上述错误,问题得以解决。
建议
若有朋友使用此方法还是无法解决,则可以尝试其他网友所说的安装
Boot-Repair
(一款修复启动项软件)方法。