Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7173046
  • 博文数量: 3857
  • 博客积分: 6409
  • 博客等级: 准将
  • 技术积分: 15948
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-02 16:48
个人简介

迷彩 潜伏 隐蔽 伪装

文章分类

全部博文(3857)

文章存档

2017年(5)

2016年(63)

2015年(927)

2014年(677)

2013年(807)

2012年(1241)

2011年(67)

2010年(7)

2009年(36)

2008年(28)

分类: 系统运维

2015-10-07 23:15:40

Debian Stable (Jessie 8.1) 的normal.mod not found

[日期:2015-10-03] 来源:Linux社区  作者:rainysia [字体:  ]

打算重置下default-brower, 输入了dpkg-reconfigure 结果按了个g,又按了tab,最后还输了回车.就变成了

dpkg-reconfigure grub-pc

进入dpkg配置grub-pc的界面后, 里面让握输入linux-command-line, 按了下Esc没想到没退出反而按到了` , 就是数字1上的那个符号. 接下来就进入了下一个选项. 这个只有个OK的可以移动到. 然后敲了下回车. 就没管它了. 没想到重启后. 就直接报错了. 
** 
提示

error: file '/boot/grub/i386-pc/normal.mod' not found
grub rescue>

绝大多数命令都不能获得, 只有简单的几个ls,set可以

这是说normal模块找不到了. 我手里也没有liveCD的U盘.

下面是完整的恢复grub的流程, 仅供debian下的朋友参考:

grub rescue>ls
(hd0, msdos), (hd0, msdos1), (hd0, msdos5)
  • 1

因为我的机器只有一个硬盘, 没有分区, 所以msdos1是我的主目录.

grub rescue>set root=(hd0,msdos1)
grub rescue> ls /usr/lib/grub/i386-pc/ normal.mod, xxx.mod search.mod ......
grub rescue>set prefix=(hd0,msdos1)/usr/lib/grub
grub rescue>insmod normal grub rescue>normal

这样就加载上了normal.mod 

但是这里还没完. 
进入到了grub

grub>vmlinuz vmlinuz-linux-headers-3.16.0.4-xxxx grub>initrd initrd-linux-headers-3.16.0.4-xxxx grub>boot

这里会卡一会儿然后进入到initramdisk 
实际上这里就是因为没找到相关的其它mod,导致了错误. 


重新强制关机, 重复上面的操作. 
然后换了一个内核,报了如下错误 

这就好办了. 说明这些mod都不在/boot/grub/i386-pc下. 
于是我们回到最开始加载normal.mod的时候, 把这些缺失的mod都加载一次

grub rescue>set prefix=(hd0,msdos1)/usr/lib/grub
grub rescue>insmod normal
grub rescue>insmod search
grub rescue>insmod echo
grub rescue>insmod linux
grub rescue>insmod initrd
grub rescue>normal

这些就有了正常的大部分模块, 进入了一个不是完好的grub menu.list 

然后随便选一个就可以进tty了, 进了tty就好说多了. 
直接修复一下grub就好.

root> fdisk -l 这里查看下你的硬盘, 我只有一块, 分了几个区. /dev/sda1, /dev/sda2, /dev/sda5, 说明挂载的是/dev/sda
root> grub-install /dev/sda
root> update-grub root> shutdown -r now

重启后. 就正常登录了. 

本文永久更新链接地址

阅读(1740) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~