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

打算重置下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
Debian Stable (Jessie 8.1) 的normal.mod not found

但是这里还没完.
进入到了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,导致了错误.
Debian Stable (Jessie 8.1) 的normal.mod not found
Debian Stable (Jessie 8.1) 的normal.mod not found
Debian Stable (Jessie 8.1) 的normal.mod not found

重新强制关机, 重复上面的操作.
然后换了一个内核,报了如下错误
Debian Stable (Jessie 8.1) 的normal.mod not found
Debian Stable (Jessie 8.1) 的normal.mod not found

这就好办了. 说明这些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
Debian Stable (Jessie 8.1) 的normal.mod not found

然后随便选一个就可以进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

重启后. 就正常登录了. 

相关推荐