首頁 > 軟體

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

2020-06-16 17:52:03

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

重新啟動後. 就正常登入了. 

本文永久更新連結地址http://www.linuxidc.com/Linux/2015-10/123782.htm


IT145.com E-mail:sddin#qq.com