打算重置下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)
因為我的機器只有一個硬盤, 沒有分區, 所以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
重啟後. 就正常登錄了.