解决centos7操作系统开机提示error:file“/boot/grub/i386-pc/normal.mod“not found问题

 更新时间:2024年12月17日 17:22:07   作者:忍冬行者  
公司重要业务虚拟机启动失败,提示找不到normal.mod文件,通过救援模式下手动设置grub启动分区和路径,加载基本模块,最终成功进入正常模式并引导系统

一.问题现象

公司重要业务虚拟机突然业务访问不了,重启操作系统之后发现操作系统启动不了,直接进入救援模式,

提示:

error:file “/boot/grub/i386-pc/normal.mod“ not found

报错截图:

二.处理思路

在救援模式下,只有很少的命令可是使用:

  1. set 设置环境变量
  2. ls 查看设备
  3. insmod 加载模块
  4. root 指定用于启动系统的分区
  5. prefix 设定grub启动路径

在救援模式下,先ls查看下设备,一般都有好多分区。

这时候要手动找到linux分区,因为我们要加载正确的模块,先找到分区就是。

通过ls命令查看/boot在哪个盘内

1.方法:ls (hd0,X)/

X为显示的号码,如果是msdos11可以直接用11代替。

该命令为查看分区下的文件,如果root单独分区了,就找到grub目录,然后ls (hd0,x)/gurb会发现还有个i386-pc目录,normal.mod文件就在该目录下。

2.设置grub的启动分区和路径

set root=(hd0,msdos1) #设置grub启动分区
set prefix=(hd0,msdos1)/boot/grub/ #设置grub启动路径

查看一下设置情况:

grub rescue> set

prefix=(hd0,msdos1)/boot/grub

root=hd0,msdos1

grub rescue> set root=(hd0,msdos2)
grub rescue> set prefix=(hd0,msdos2)/boot/grub

grub rescue>insmod normal
grub rescue>normal

输入insmod normal还是提示找不到normal.mod

后来想了想现在用的centos7是使用grub2的。

grub2使用指令:

grub rescue> set prefix=(hd0,msdos2)/boot/grub2

3.加载基本模块

insmod /boot/grub/normal.mod #加载基本模块
insmod /boot/grub2/normal.mod #grub2使用指令
grub rescue>insmod normal

4.进入正常模式

grub rescue>normal

5.引导系统

set root=(hd0,msdos1) #设置正常启动分区
linux /boot/vmlinuz .... ro text root=/dev/sda1 #加载内核,进入控制台模式
initrd /boot/initrd .... #加载initrd.img
boot #引导

三.处理步骤

1.在救援模式下执行命令确认/boot在那个盘

  ls
  ls (hd0) 
  ls (hd0,msdos2)
  ls (hd0,msdos1)
  ls (hd0,msdos2)/
  ls (hd0,msdos2)/boot
  ls (hd0,msdos2)/root

操作界面

  set root=(hd0,msdos2)
  set prefix=(hd0,msdos2)/boot/grub
  insmod normal
  normal

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Linux服务器上安装Python3的两种方式

    Linux服务器上安装Python3的两种方式

    这篇文章主要介绍了Linux服务器上安装Python3,本文通过两种方式给大家详解,需要的朋友可以参考下
    2019-11-11
  • 详解Linux获取线程的PID(TID、LWP)的几种方式

    详解Linux获取线程的PID(TID、LWP)的几种方式

    这篇文章主要介绍了详解Linux获取线程的PID(TID、LWP)的几种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • linux 驱动编写之虚拟字符设备的编写实例详解

    linux 驱动编写之虚拟字符设备的编写实例详解

    这篇文章主要介绍了linux 驱动编写之虚拟字符设备的编写实例详解的相关资料,需要的朋友可以参考下
    2017-01-01
  • Linux通过配置静态IP解决无法访问网络问题的教程详解

    Linux通过配置静态IP解决无法访问网络问题的教程详解

    Linux系统安装成功之后只是单机无网络状态,我们需要配置Linux静态IP来确保服务器可以正常连接互联网,下面就跟随小编一起学习一下如何配置静态IP来解决无法访问网络的问题吧
    2023-11-11
  • Linux下设置防火墙白名单(RHEL 6和CentOS 7)的步骤

    Linux下设置防火墙白名单(RHEL 6和CentOS 7)的步骤

    下面小编就为大家带来一篇Linux下设置防火墙白名单(RHEL 6和CentOS 7)的步骤。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • Linux目录结构及其功能的使用解读

    Linux目录结构及其功能的使用解读

    Linux的目录结构包括根目录/、bin、sbin、usr、var、etc、home、boot、lib、mnt、media、tmp、dev、proc、sys、opt和srv等,每个目录都有其特定的用途和存放内容,了解这些目录的作用和内容有助于更好地管理和维护系统
    2025-03-03
  • Ubuntu下安装nvidia显卡驱动(安装方式简单)

    Ubuntu下安装nvidia显卡驱动(安装方式简单)

    这篇文章主要介绍了Ubuntu下安装nvidia显卡驱动,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • YUM软件包管理工具与yum命令的详细介绍

    YUM软件包管理工具与yum命令的详细介绍

    yum是基于RPM包管理器、为了提高RPM软件包安装性而开发的一种软件包管理器。它能够从指定的服务器自动下载.rpm包并自动安装,可以自动处理依赖性关系,并一次性安装所有依赖的软体包。本文就详细介绍了YUM软件包管理工具与yum命令。有需要的朋友们下面来一起看看吧。
    2017-01-01
  • linux防火墙如何查看状态firewall

    linux防火墙如何查看状态firewall

    这篇文章主要介绍了linux防火墙如何查看状态firewall问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • yum安装本地rpm软件方案详解

    yum安装本地rpm软件方案详解

    这篇文章主要介绍了yum安装本地rpm软件方案详解,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01

最新评论