我相信你肯定遇到過這種情況:你滿懷期待地打開電腦,突然發現螢幕一片漆黑,只剩下一條莫名其妙的訊息,告訴你GRUB 引導管理器已損壞。也許是你之前動過磁碟分割區,或是在安裝 Linux 之後又安裝了 Windows 導致開機磁區被覆蓋,又或是系統更新出了問題。
首先不要驚慌,即使你的電腦看起來像是死機了,你的資料仍然完好無損。 GRUB 只是系統的入口,即使門壞了,房子也還在。根據你手邊的資源,有幾種方法可以解決這個問題,例如如果 GRUB 控制台仍然響應,可以直接使用它;或者使用Ubuntu 或 Debian 的 Live USB啟動盤進行徹底的系統重裝。
直接從 GRUB 控制台恢復
如果你的電腦雖然無法啟動,但你仍然可以存取 GRUB 命令列(在啟動時按下「c」鍵),那麼你可以嘗試在不使用外部 USB 驅動器的情況下啟動系統。首先要做的是… 確定文件所在位置 運行命令 ls它會顯示可用的磁碟和分割區,例如: (hd0,msdos1).
找到磁碟後,您必須查找該資料夾。 boot 探索分區 ls (hd0,1)/當你找到合適的人時,你必須 配置前綴路由 使用以下命令取得系統根目錄 set prefix=(hd0,1)/boot/grub y set root=(hd0,1)接下來,找到啟動資料夾中可用的內核,並使用以下命令載入它: linux指定根分區(例如, root=/dev/sda1),最終執行 initrd 啟動引擎。
成功登入使用者會話後,別忘了… 徹底修復起動機以 root 使用者身分開啟終端機並執行 grub-install /dev/sda 接下來 update-grub2 y update-initramfs -u 這樣,重啟後問題就不會再出現。
使用 Live USB 重新安裝(手動和 Chroot 方法)
當 GRUB 完全缺失時,最可靠的解決方案是使用任何基於 Debian 的發行版(例如 Ubuntu 或 Linux Mint)的 Live USB。至關重要的是,Live USB 的架構(AMD64 或 i386)必須與已安裝系統的架構相匹配,以避免在執行root 或 chroot操作時發生錯誤。
該過程首先識別分區。 sudo fdisk -l區分根分區 (/) 以及是否存在單獨的 /boot 分區至關重要。若要繼續操作,您必須 將根分割區掛載到 /mnt 並且,如果存在的話,起始點 /mnt/boot為了使系統在生產環境中正常運行,必須執行以下操作: 連結組件 運行中的作業系統的關鍵目錄 sudo mount --bind /dev /mnt/dev以及 /dev/pts, /proc y /sys.
一切準備就緒後,我們使用指令 sudo chroot /mnt這就像變魔術一樣:我們告訴電腦 根目錄現在是我們的硬碟 而不是 USB。接下來,我們重新安裝管理器。 grub-install /dev/sda 我們更新了設定。 grub-mkconfig -o /boot/grub/grub.cfg o update-grub最後,我們離開了。 exit 於是我們重新開始。
自動化解決方案和快速替代方案
如果您不熟悉終端操作或覺得操作過於繁瑣,Boot-Repair是一款非常實用的工具。使用方法很簡單:從 Ubuntu Live USB 啟動,打開終端,然後從官方軟體來源安裝 Boot-Repair。安裝完成後,只需選擇建議的修復選項,程式就會自動完成所有工作,包括偵測作業系統並重新安裝 GRUB。
在比較簡單的情況下,如果我們只需要重新安裝 GRUB 而無需執行完整的 chroot 環境,我們可以將包含啟動目錄的分割區掛載到一個暫存資料夾中,例如: /tmp/part 並運行 sudo grub-install --root-directory=/tmp/part /dev/sda. 如果 我們正在尋找一條更直接的路線 我們確切地知道啟動充電器的位置。
要解決這個問題,無論是在 GRUB 控制台中使用手動命令,還是使用可啟動 USB 驅動器的 chroot 技術,也或是使用 Boot-Repair 等自動工具,關鍵在於正確識別磁碟分割區,並確保 MBR 或 EFI 的引導磁區正確連結到已安裝作業系統的核心。



