歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Debian Stable (Jessie 8.1) 的normal.mod not found

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

日期:2017/2/28 13:57:25   编辑:Linux教程

打算重置下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

重啟後. 就正常登錄了.

Copyright © Linux教程網 All Rights Reserved