:::

修復grub開機無法進入Ubuntu的問題 / Fix grub Boot Issue After Reinstall Ubuntu on the Dual System of Ubunt and Windows

10月 18, 2023 , , 0 Comments Edit Copy Download

2023-0706-012732.png

這大概是我用Linux以來遇到的第四次了。不好好記下處理方法真的是不行。


問題 / Issue

我的筆電上原本預設是Windows。後來我安裝Ubuntu,開機也由Ubuntu改為使用grub來控制。我在該電腦上使用兩個隨身碟來製作USB上的Ubuntu作業系統。USB作業系統運作很順利,但它覆蓋了原本我筆電上的開機啟動程式。儘管移除了USB隨身碟,但開機只能進入筆電預設的Windows,沒辦法回到Ubuntu。

參考來源 / Reference

https://www.bktus.com/en/archives/3293

https://www.bktus.com/en/archives/3293 

嘗試了很多做法後,最後是以下兩篇做法能夠生效:


修復grub / Fix grub

1. 用USB隨身碟進入Linux桌面 / Boot with live-USB

2023-0706-011003.png

https://cdimage.ubuntu.com/kubuntu/releases/jammy/release/ 

第一步是製作能夠進入Linux的Live USB。我選用的是Kubuntu 22.04。下載ISO後用任意工具製作即可。在Windows的話,通常是推薦使用Rufus

2023-0706-011058.png

https://linuxhint.com/install_kubuntu_1804/ 

以隨身碟開機,進入Kubuntu。進入桌面後選擇Try Kubuntu。然後就能使用各種Kubuntu的常用工具。

2. 確認分割區的路徑 / Find out the partitions' pathes

2023-0706-011316.png

接下來我們要在KDE Partition Manager確認磁碟分割區。開啟KDE Partition Manager後,我們現在左邊的Devices選擇正確的硬碟。如果你不確定硬碟代號的話,可以用容量大小來判斷。接著在對應的硬碟中,我們要找出兩個分割區:

  1. 安裝Ubuntu的硬碟分割區。通常可以用硬碟大小跟檔案系統來判斷。像上圖中只有一個分割區是ext4,它就是Ubuntu的分割區。在我的例子中,Ubuntu分割區的路徑是 /dev/nvme0n1p5
  2. EFI開機磁區。分割區的標籤通常會有EFI字樣,而且很小。在我的例子中,EFI開機磁區的路徑是 /dev/nvme0n1p1

記好這兩個路徑,待會會用到。

3. 掛載原本的磁碟與環境 / Mount devices

開啟終端機,執行以下指令:

# 切換到root
sudo su root

mount /dev/nvme0n1p5 /mnt/
mount /dev/nvme0n1p1 /mnt/boot/efi

mount --bind /dev /mnt/dev
mount --bind /dev/pts /mnt/dev/pts
mount --bind /proc /mnt/proc
mount --rbind /sys /mnt/sys

4. 安裝grub / Install grub

再來用chroot將掛載目錄作為根目錄,這樣才能在這裡安裝grub:

chroot /mnt

grub-install --target=x86_64-efi /dev/nvme0n1

如果你是32位元的作業系統,則要將「--target=x86_64-efi」改成「--target=i386-efi」。

沒有看到錯誤訊息的話,表示更新完成。重新啟動後便能看到修復後的grub,並正常進入Ubuntu。


文章最後要來問的是:遇到作業系統無法開機的狀況時,你通常是怎麼解決的呢?

  • 1. 開抖音找找看。
  • 2. 開YouTube找找看。
  • 3. 開Google找找看。
  • 4. 問ChatGPT。
  • 5. 問人。
  • 6. 其他。

歡迎在下面留言喔!