1. 程式人生 > >CentOS 7在grub rescue模式中修復系統

CentOS 7在grub rescue模式中修復系統

安裝完CentOS 7後 修改硬碟分割槽後,系統重啟後,無法正常啟動,進入grub rescue模式; 

網上大多數centos grub rescue的資料應該是Centos 7之前的,其中提到的命令很多使用的目錄是grub,而在7中,這裡應該替換成grub2;

另外normal.mod的目錄也有變化。特別要注意

1)首先找到centos 的boot是裝在那個分割槽中;

1. 先使用ls命令
在 grub rescue>下輸入以下命令:

ls

會羅列所有的磁碟分割槽資訊,比方說:

引用:

(hd0,1),(hd0,5),(hd0,3),(hd0,2)   注:我的是(hd0),(hd0,msdos3),(hd0,msdos5)等

2. 然後依次呼叫如下命令: X表示各個分割槽號碼
如果/boot沒有單獨分割槽,用以下命令:

ls (hd0,X)/boot/grub2

如果/boot單獨分割槽,則用下列命令:

ls (hd0,X)/grub2
例如:

grub rescue> ls (hd0,msdos2)/grub2

會有如下的輸出:
 -grub2  grub  grub.cfg  i386-pc ...

2)

grub rescue> ls (hd0,msdos2)/grub2// 找到/boot分割槽位置
--> grub2 grub grub.cfg i386-pc ...


grub rescue> set root=hd0,msdos2// 臨時重置grub位置為當前分割槽
grub rescue> set prefix=(hd0,msdos2)/grub2
grub rescue> insmod (hd0,msdos2)/grub2/i386-pc/normal.mod// 載入normal模組
grub rescue> normal// 呼叫normal模組


3)重新安裝grub到sda
這時就出現了 grub引導選單,選擇進入CentOS系統

登入
login:root
passwd:*****

# cd /sbin
# grub2-install --boot-directory=/boot   /dev/sdb // 重新安裝grub到sdb, 根據ls /dev/sd* 的結果,替換成你自己的硬碟

--> grub2-install completed, No Error occured.


# reboot