跳到主要內容

雙系統升級 Windows 10 後造成 ubuntu 開機進入 grub rescue

雙系統升級 Windows 10 後造成 ubuntu 開機進入 grub rescue

7/29 是免費升級 Windows 10 的最後期限,雖然現在幾乎都使用 ubuntu 做為平時工作或一般使用的環境,鮮少使用 Windows 了,但是現在使用雙系統的方式,仍保有原本購買筆電附送的 Windows 8.1 。微軟這免費的升級的活動還是很吸引人,經過將近一年時間的改善,現在的 Windows 10 好像也沒有什麼災情,決定在這個截止日前升級。

升級完 Windows 10 重新開機後,系統就直接進入 grub rescue 模式,估計是原來磁區的位置號碼改變所致。只要找回之前開機的磁區修改正確就好了。

查詢原本的開機磁區

以 ls 指令查詢磁區情形

grub rescue> ls

(hd0,gpt1) (hd0,gpt2) (hd0,gpt3) (hd0,gpt4) (hd0,gpt5) (hd0,gpt6)

逐步以 ls 看能不能查詢目錄情形,找出開機磁區

grub rescue> ls (hd0,gpt1)/
grub rescue> ls (hd0,gpt1)/boot
grub rescue> ls (hd0,gpt2)/
grub rescue> ls (hd0,gpt2)/boot
...

以此類推。記錄下查詢到的磁區位置(我的是(hd0,gpt6)),後面會使用上。

離開 rescue 進入 normal 模式

在 rescue 提示符號(grub rescue>)輸入 set 查詢現在的 prefix 和 root 設定值。

grub rescue> set

prefix=(hd0,gpt5)/boot/grub
root=hd0,gpt5

使用 set 指令將 prefix 和 root 更換成正確的磁區號碼,我的是將 (hd0,gpt5) 更改為 (hd0,gpt6)。

grub rescue> set prefix=(hd0,gpt6)/boot/grub
grub rescue> set root=(hd0,gpt6)

再次檢查 prefix 和 root

grub rescue> set

prefix=(hd0,gpt6)/boot/grub
root=hd0,gpt6

切換至 normal 模式

grub rescue> insmod normal
grub rescue> normal

在進入 Normal 模式後,編輯 /boot/grub/grub.cfg 檔案,將 (hd0,gpt5) 取代為 (hd0,gpt6)。取代後執行:

$ sudo grub-install

結束後重新開機。

留言