× Error: Grub-UEFI error... "file `/grub/x86_64-efi/normal.mod` not found"


在这里插入图片描述

原因分析

出现上面的问题,是因为 /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 (一款修复启动项软件)方法。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐