关于error file: /boot/grub/i386-pc/normal.mod not found. Grub Rescue的修复问题

这篇博客详细介绍了如何解决Ubuntu系统启动时遇到的error: /boot/grub/i386-pc/normal.mod not found. Grub Rescue问题。通过查看分区、寻找Ubuntu所在分区、修改启动分区、尝试不同解决方案,最终使用Boot-Repair工具成功修复了Grub。
摘要由CSDN通过智能技术生成
关于error file: /boot/grub/i386-pc/normal.mod not found. Grub Rescue的修复问题 博客分类: 操作系统

造成该问题可能的原因是我update之后对系统造成了修改,结果导致了/boot/grub/i386-pc/normal.mod的丢失,normal.mod是ubuntu开机引导的必加载项,因而报出

/boot/grub/i386-pc/normal.mod not found. Grub Rescue>的问题。

关于基本知识,孙斌斌的个人blog 做了部分总结:

 

在救援模式下,只有很少的命令可是使用:
  1. set 设置环境变量
  2. ls 查看设备
  3. insmod 加载模块
  4. root 指定用于启动系统的分区
  5. prefix 设定grub启动路径
在救援模式下,先ls查看下设备,一般都有好多分区。这时候要手动找到linux分区,因为我们要加载正确的模块,先找到分区就是。
方法:ls (hd0,X)/
X为显示的号码,如果是msdos11可以直接用11代替。该命令为查看分区下的文件,如果root单独分区了,就找到grub目录,然后ls (hd0,x)/gurb会发现还有个i386-pc目录,normal.mod文件就在该目录下。

另外ChinaUnix社区有篇帖子做了更详细的说明:http://bbs.chinaunix.net/thread-3634395-1-1.html

 

 

在救援模式下只有很少的命令可以用:
set  ,  ls , insmod , root , prefix
 
(1)set  查看环境变量,这里可以查看启动路径和分区。
(2)ls   查看设备
(3)insmod  加载模块
(4)root  指定用于启动系统的分区,在救援模式下设置grub启动分区
(5)prefix 设定grub启动路径
 
二、设置grub的启动分区和路径
set root=(hd0,msdos1)  #设置grub启动分区
set prefix=(hd0,msdos1)/boot/grub/  #设置grub启动路径
查看一下设置情况:
grub rescue> set
prefix=(hd0,msdos1)/boot/grub
root=hd0,msdos1
 
三、加载基本模块
insmod /boot/grub/normal.mod  #加载基本模块
 
四、进入正常模式
normal  #进入正常模式,出现菜单,如果加载grub.cfg(错误的)可能出现问题,按shift可以出现菜单,之后按c键进入控制台
进入正常模式后就会出现grub>这样的提示符,在这里支持的命令就非常多了。
 
五、引导系统
set root=(hd0,msdos1)  #设置正常启动分区
linux /boot/vmlinuz ....  ro text root=/dev/sda1  #加载内核,进入控制台模式
initrd  /boot/initrd ....  #加载initrd.img
boot #引导
 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值