在grub的rescue模式修復linux引導


今天在windows 10系統收到系統更新通知,沒看清楚就手賤點了馬上更新。以為只是像那些普通更新一樣重啟一下更新就完了,萬萬沒想到這個是覆蓋更新,也就是說這是一個全新的系統更新而不是系統補丁。在安裝的過程中我就在心中默念 “完了,這安裝完成linux的系統的引導肯定是要手動修復了。”,果然安裝完之后默認是用windows啟動引導,F2設置切換到deepin linux的引導后依然沒法正常啟動linux。要修復這個問題並不復雜,下面這篇文章記錄了修復引導的全過程。

 

錯誤信息

error: file '/boot/grub/x86_64-efi/normal.mod' not found.
Entering rescue mode...
grub rescue> _

 

進入系統

從錯誤信息上可以看出,問題出現在grub找不到文件normal.mod,我們現在要做的就通過grub的rescue終端設置linux的引導分區和grub文件路徑並重新引導系統。

  • 查找系統引導所在的分區:

用ls命令列出所有的分區

grub rescue> ls
(hd0) (hd1) (hd1,gpt8)....

根據你自己的記憶大概定位系統引導所在的分區(如果不記得那就只能逐個去試了)並用ls定位引導所在的分區(輸出包含boot/

如下圖可以看出(hd1,gpt7)就是我們要找的分區:

grub rescue> ls (hd1,gpt6)/
./ ../ lost+found/
grub rescue> ls (hd1,gpt7)/
./ ../ lost+found/ bin/ boot/ dev/...
  • 配置grub引導
grub rescue> set root=(hd1,gpt7)
grub rescue> set prefix=(hd1,gpt7)/boot/grub
  • 切換到normal模式
grub rescue> insmod normal
grub rescue> normal

如果上面設置沒有錯的話,就可以正常進入系統的grub菜單了。

 

安裝grub到efi分區

正常進入系統后,如果不先修復grub的引導的話,重啟電腦之后還是會進入剛剛那個rescue模式。

  • 找出你的efi分區掛載點

運行df命令:

df

如下圖可看出efi掛載點是:/dev/sdb2

  •  重新安裝grub

用grub-install命令安裝grub:

如果提示找不到某個命令,嘗試把你的/usr/sbin添加到環境變量PATH中:

打開:vim /etc/profile

添加: export PATH=$PATH:/usr/sbin

應用配置: source /etc/profile

sudo grub-install /dev/sdb2

如果得到如下輸出,恭喜你grub成功安裝了!

 

轉載請注明出處:http://www.cnblogs.com/keitsi/p/6229005.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM