- 正確識別分割區和磁碟後,就可以從 LiveUSB 重新安裝 GRUB,而無需重新安裝系統。
- Boot-Repair、Syslinux 或 LILO 等工具提供了恢復 MBR 和啟動管理器的替代方法。
- BCDBoot 和 bootrec 可讓您在多 Windows 環境中修復 Windows 啟動管理器和 BCD 儲存。
- 將 Linux 和 Windows 實用程式結合起來,可以更安全地恢復任何損壞的雙啟動系統。
配置計算機時 Windows 與 Linux 發行版雙啟動 在Ubuntu、Arch、Debian等作業系統中,啟動管理器成為關鍵元件。它決定啟動哪個系統以及如何啟動。問題在於,簡單的Windows更新、分割區變更或重新安裝都可能導致這種情況發生。 GRUB 或 Windows 啟動管理器損壞 球隊的開局也變得不正常了。
在這些情況下,通常會遇到以下症狀: 啟動錯誤畫面,GRUB 救援模式出現你要只啟動 Windows 系統,忽略 Linux 系統,或者反過來,讓 Windows 系統從啟動選單中消失。好消息是,只要使用合適的工具,這是可以實現的。 幾乎在任何情況下都可以修復引導程式(GRUB 或 Windows 啟動管理器)無論是在 Windows/Linux 雙重啟動系統中,或是在具有多個 Windows 版本的設定中。
雙啟動系統中通常是什麼原因導致 GRUB 或 Windows 啟動管理器故障
在嘗試任何維修之前,最好先了解動機故障的原因。這將有助於你更清楚地了解問題所在。 每個案例應該使用哪種工具 這樣你就能避免反覆出現同樣的問題。
最常見的原因之一是: Windows 會覆蓋 MBR 或 EFI 分割區 如果是在 Linux 之後安裝的 Windows 系統,或是在系統重大升級之後安裝的 Windows 系統,它會假定自己是電腦上唯一的作業系統,並重寫開機磁區,因此 GRUB 消失,只啟動 Windows 系統。.
另一個非常典型的場景是當 分區大小調整或移動 使用分割工具時,如果觸及 GRUB 安裝所在的分割區或修改分割區表,很容易導致開機管理員發生故障。 失去對 Linux 系統根目錄或核心本身的引用 結果會顯示「啟動系統錯誤」之類的訊息,或是不顯示作業系統選擇選單。
經理也可能在一段時間後變得腐敗。 系統更新雖然這種情況並不常見,但核心更新、新的 GRUB 軟體包或對以下內容的更改都可能導致這種情況: UEFI 韌體 保持啟動選單未配置狀態,則會直接出現救援控制台(著名的提示符號)。 搶救>).
在存在多個 Windows 版本共存的電腦上(例如, Windows 10和Windows 11 (在不同的磁碟或不同的分割區上),有時問題不在於 GRUB,而在於系統本身。 Windows BCD 存儲如果設定錯誤,可能會導致其中一個系統不會出現在 Windows 啟動管理員啟動功能表中。
使用 Linux Live 媒體啟動以修復 GRUB
當啟動管理器發生故障且系統無法正常載入時,最靈活的應對措施是使用 來自 Linux 發行版的 LiveCD 或 LiveUSB (Ubuntu 通常是最方便的選擇)「進入」已安裝的系統,然後從那裡重新安裝 GRUB。
第一步是建立啟動磁碟。您需要下載一個 GRUB2 發行版的 ISO 鏡像 與受損系統架構相符的作業系統(例如 Ubuntu、Debian、Linux Mint 等): 如果您的系統是 64 位,則選擇 amd64;如果您的系統是 32 位,則選擇 i386。這個巧合很重要,因為它以後會被用到。 chroot環境 而且,如果架構不同,執行 GRUB 二進位時可能會發生錯誤。
拿到 ISO 檔後,把它刻錄到光碟上。 可啟動USB您可以使用 Rufus、balenaEtcher 或任何其他您用得順手的工具。將 USB 插入啟動載入程式損壞的計算機,然後在 BIOS 或 UEFI 中, 您選擇從 USB 隨身碟啟動.
第一步是建立啟動磁碟。您需要下載一個 GRUB2 發行版的 ISO 鏡像 與受損系統架構相符的作業系統(例如 Ubuntu、Debian、Linux Mint 等): 如果您的系統是 64 位,則選擇 amd64;如果您的系統是 32 位,則選擇 i386。這個巧合很重要,因為它以後會被用到。 chroot環境 而且,如果架構不同,執行 GRUB 二進位時可能會發生錯誤。
從 USB 啟動時,發行版選單會提供類似這樣的選項。 “試試 Ubuntu” (或英文中的“Try…”)。此選項會將整個系統載入到記憶體中,而無需存取硬碟驅動器,之後您就可以從記憶體中… 打開終端並運行必要的命令來恢復 GRUB。.
在 Live 桌面上,只需打開應用程式選單並搜尋即可。 “終奌站”從現在開始,整個過程都會透過命令列完成,但如果您仔細按照步驟操作,其實並不複雜。
確定根分割區、/boot 分割區和磁碟
要重新安裝啟動管理器,首先要知道的是: 你的Linux系統安裝在哪些分割區? MBR 或 EFI 分割區所在的磁碟名稱是什麼(例如, / dev / sda上).
在即時系統終端機中,您可以使用以下命令 fdisk -l 具有管理員權限: 須藤的fdisk-L此命令將列出所有已連接的磁碟機和分割區,並顯示檔案系統類型、大小和標籤(如有)。
在所有輸出結果中,您必須找到包含該結果的分割區。 Linux 系統的根目錄你通常會看到類似這樣的內容。 /開發/ sda2的 或類似文件,大小合理,文件系統類型為 Linux 文件系統(ext4 或同等格式)。如果您之前創建過一個。 單獨的 /boot 分割區您還需要識別它;它通常是一個較小的分區,其中包含諸如以下文件: grub、vmlinuz、initrd、系統映射等等。
如果您有疑問,一個簡單的策略是 手動掛載可疑分割區 並查看其內容。例如,您可以使用 sudo mount /dev/sda2 /mnt 然後列出內容 ls /mnt如果您看到類似這樣的目錄 bin、boot、root 等您將看到的是根分割區。如果您掛載另一個分割區並在其中找到一個資料夾,您就會看到它。 蠐螬 您將查看分割區以及其他啟動檔案。 /啟動.
在出口頂部 FDISK 主專輯的名稱也會顯示出來,例如“磁碟 /dev/sda這個識別碼至關重要,因為它是重新在 MBR 中安裝 GRUB 時的最終目標,或者因為它可以指向在 UEFI 系統中充當 EFI 的分割區。
掛載分割區並使用 chroot 重新安裝 GRUB
確定了你感興趣的分區之後,你需要… 將它們安裝在 Live 系統中 能夠像從安裝程式啟動一樣「進入」您的安裝環境,而不是像從 USB 啟動一樣。
首先,你要組裝… /mnt 中的根分區 使用類似如下的命令: sudo mount /dev/sda2 /mnt (將 /dev/sda2 調整為與您的情況對應的分割區)。如果您有一個分區 /啟動 您可以獨立地將其安裝到該根目錄下的樹中,例如使用 須藤掛載 /dev/sda7 /mnt/boot.
然後您需要使用以下選項掛載一些特殊目錄 –綁定 這樣,chroot 環境就能存取電腦的裝置、流程和檔案系統。通常使用以下命令來完成此操作: sudo mount –bind /dev /mnt/dev, sudo mount –bind /dev/pts /mnt/dev/pts, sudo mount –bind /proc /mnt/proc y sudo mount –bind /sys /mnt/sys.
完成所有設定後,您現在可以使用了。 chroot環境 要將檔案系統的根目錄變更為已安裝的 Linux 系統的根目錄,通常使用的命令是: 須藤chroot /mnt從那一刻起,你執行的所有命令都會產生影響。 您實際安裝在磁碟上的系統不是從 USB 運行的 Live 環境。
下一步驟是 重新安裝 GRUB 在正確的磁碟上。在 BIOS/MBR 系統中,通常會使用類似這樣的指令: grub-install --boot-directory=/boot/ --recheck /dev/sda (將 /dev/sda 替換為 MBR 所在的磁碟)。此指令會將 GRUB 開機載入程式寫入磁碟的開機磁區,並確保設定指向正確的檔案。
管理器重新安裝後,建議… 重新產生 GRUB 配置 這樣它就能偵測到所有可用的作業系統。這是透過以下方式實現的: grub-mkconfig -o /boot/grub/grub.cfgGRUB 將掃描分割區以尋找 Linux 核心、Windows 安裝和其他系統,並產生啟動選單。
完成後,你只需要… 退出 chroot 環境 用命令 出口 然後重新啟動計算機 sudo重啟移除啟動磁碟後,系統應該會再次顯示。 功能齊全的 GRUB 選單允許您同時啟動 Linux 和 Windows 系統。
使用 Boot-Repair 自動復原 GRUB
對於那些不想費力處理那麼多手動命令的人來說,有一個非常實用的工具叫做 引導修復專為 修復Ubuntu及其衍生版本中常見的啟動問題.
Boot-Repair 是一個可以安裝在 Ubuntu 環境(作業系統本身或 Live 環境)的實用程式。它的主要功能是: 自動重新安裝 GRUB 並恢復對所有已安裝系統的存取:無論是由於 Windows 覆蓋了 MBR,還是由於更新停止顯示 GRUB 選單,又或是因為您修改了分割區導致組態損壞。
除了標準維修功能外,該工具還具有以下特點 進階選項 備份分區表、備份引導磁區、產生詳細報告(引導資訊)以及根據需要調整修復參數。
要在 Ubuntu Live 環境中使用它,首先需要… 加入 Boot-Repair PPA 倉庫 使用類似這樣的指令: sudo add-apt-repository ppa:yannubuntu / boot-repair然後對這些軟體包進行更新 sudo apt update 最後,應用程式安裝完成。 sudo apt install boot-repair如果系統提示,請確認下載和安裝。
安裝完成後,可以透過在 Ubuntu 應用程式搜尋引擎中輸入以下命令來啟動該實用程式。 “靴子修理”啟動時,該工具通常會顯示一個選項。 “推薦維修”對大多數用戶來說,這是最方便的,因為它能解決以下問題: 重新安裝 GRUB,更新其配置,並修復大多數常見錯誤,而無需手動配置任何內容。.
在進階選項中有一個複選框,用於 “恢復MBR”此選項可讓您將磁碟目前的啟動方式替換為通用或特定的 MBR,這在某些情況下非常有用。選擇相應的選項並點擊後, “應用”啟動修復程序會啟動修復程序並顯示進度直到完成。完成後,它通常會指示所做的更改,並在重新啟動後顯示相關資訊。 雙系統啟動應該可以恢復正常了。.
其他底層工具:Syslinux、MBR 和 LILO
在一些高階案例中,尤其是在與…合作時 特定配置、舊硬體或特定檔案系統使用 Syslinux 或 LILO 等工具可以更直接地操作 MBR 和啟動過程,這可能很有用。
系統Linux 這是一套輕巧的入門級充電器,適用於不同的場景:經典款 SYSLINUX 對於 MS-DOS FAT 檔案系統, PXELINUX 操作系統 用於網路啟動, ISOLINUX 用於可啟動光碟,以及 EXTLINUX 適用於 ext2/3/4 或 btrfs 檔案系統。它還包括 記憶體磁碟這使得從非傳統媒體啟動 DOS 等舊作業系統成為可能。
在像 Ubuntu 這樣的發行版上,它可以透過以下命令安裝: sudo apt install syslinux安裝完成後,即可進行以下操作: 恢復MBR 例如,在磁碟開頭寫入對應的程式碼。 sudo dd if=/usr/lib/syslinux/mbr.bin of=/dev/sda或者,也可以使用其他軟體包和工具,例如: sudo apt-get install mbr 接下來 sudo install-mbr -in -p D -t 0 /dev/sda這也有助於恢復MBR的功能。
另一個經典選擇是 LILO(Linux Loader)儘管 GRUB2 現在是大多數發行版的預設開機載入程序,但 LILO 仍然是… 針對特定類型的硬體或特定配置,這是一個簡單而穩健的解決方案。 GRUB 在某些方面問題較多。例如,在 Ubuntu 系統中,它可以透過以下方式安裝: sudo apt-get install lilo安裝過程中,螢幕上會出現一則通知,您必須接受該通知才能繼續。
安裝 LILO 後,即可用於 寫入新的MBR 使用以下類型的命令 sudo lilo -M /dev/sda mbr這會將 MBR 代碼替換為 LILO 代碼,這有助於在啟動管理器損壞或與硬體不相容的電腦上恢復正常工作的啟動。
在 Arch Linux 中出現救援模式時修復 GRUB
在像 Arch Linux 遇到這種模式比較常見。 搶救 Windows 更新系統、變更啟動設定或修改分割區後,電腦啟動,但不會顯示 GRUB 選單,而是顯示一個極簡提示符,其中只能執行幾個指令。
你可以嘗試用這種方法。 手動啟動 Arch Linux 向管理器指示核心及其配置的位置。一個典型的例子是使用類似這樣的指令來設定 GRUB 根目錄和前綴。 set root=(hd0,gpt8) y 設定前綴=(hd0,gpt8)/boot/grub加載普通模組 正常insmod 最後,執行 正常 這樣它就指向了常用選單。
這可以讓你暫時擺脫困境,但並不能解決根本問題。正確的方法是,在 Arch 啟動後運行… grub安裝 指向正確的磁碟(例如, sudo grub-install /dev/sda),然後 grub-mkconfig然而,有時此命令會失敗,並顯示如下訊息: “無法在主機磁碟中識別檔案系統” 或者說它無法對磁碟執行安全檢查。
當這種情況發生時,最明智的做法是 從相容的 Live 媒體啟動 (例如 Arch 安裝程式本身或來自其他發行版的 Live),掛載分割區並按照前面所述使用 chroot。這樣可以確保 設備可用,分割表偵測正確,GRUB 可以順利重新安裝。請務必確認您正在安裝 GRUB。 整個磁碟設備 (例如 /dev/sda)而不是特定分割區(/dev/sda6),除非你有非常具體的理由這樣做。
在雙啟動系統上恢復 Windows 啟動管理器和 BCD
在它們共存的環境中 兩個版本的Windows (例如,Windows 10 和 Windows 11)或在與 Linux 雙重啟動的系統中只有 Windows 啟動出現問題時,也可能需要這樣做。 修復 Windows 啟動管理器及其 BCD 存儲.
Windows 包含一個名為「Windows」的實用程式 BCD啟動 用來 建立或修復基於 Windows 系統的啟動項當您在另一個分割區或磁碟上安裝了第二個 Windows 系統,並且在啟動時它不會出現在選單中時,或者當啟動選單被刪除並且它只能進入一個系統時,這將非常有用。
一般步驟包括啟動電腦 Windows 安裝媒體 (或恢復驅動器)並存取修復選項。在安裝畫面上,不要繼續執行通常的安裝過程,而是單擊 “修理設備”從那裡進入 “解決問題” 然後在 “高級選項”您可以在此處選擇 “系統的符號” 或直接 “啟動修復”根據需要。
如果您選擇自動維修,則該選項 “啟動修復” 將自動嘗試修正 啟動管理器和 BCD 配置中的錯誤在許多情況下,這是一種無需手動輸入命令即可快速還原 Windows 啟動管理器的方法。
如果需要更多控制,您可以使用控制台。 重新編譯 BCD 存儲典型的操作流程是,首先使用類似工具複製目前商店。 ren BCD BCD.old (導航到正確的資料夾後),然後運行 bcdboot D:\Windows (將 D:\Windows 替換為您要新增的 Windows 安裝的實際路徑)。如果您不知道每個分區對應的字母,可以使用以下方法: DISKPART 和之後 清單量 查看分配的字母。
也可以使用更完整的語法來指定語言和啟動卷,例如: bcdboot c:\Windows /l en-us /s X: /f ALL,代替 X: 透過啟動分割區(或要建立引導程式的隨身碟)的磁碟機)的磁碟機。這將使用所選 Windows 版本的全新條目重寫 BCD,以便在重新啟動時… 兩個系統都應該出現在選單中。 如果其餘配置正確的話。
使用 bootrec 修復 Windows MBR
在問題直接出在…的情況下 MBR(主啟動記錄) 您也可以從用作 Windows 啟動磁碟的磁碟中使用該工具。 BOOTREC可在 Windows 復原環境中使用。
這個過程通常從以下方面開始: Windows 安裝媒體例如,在許多戴爾電腦上,您可以按下 主螢幕上的 F12 鍵 開啟啟動選單並選擇安裝 USB 隨身碟或 DVD。進入後,像之前一樣,按下「開」按鈕。 “修理設備”進入 “解決問題”然後在 “高級選項” 最後選定它。 “系統的符號”.
透過控制台,您可以執行一系列命令 bootrec 指令 修復MBR和BCD記憶體的順序如下:首先 BOOTREC / FIXMBR它會將一個乾淨的、與 Windows 相容的 MBR 寫入磁碟;然後 BOOTREC / FIXBOOT這會將一個新的引導磁區建立在系統分割區中;最後 BOOTREC / REBUILDBCD它會分析現有的 Windows 安裝,並提供將其新增至啟動儲存區的選項。
如果這些命令運行無誤,則移除安裝媒體重新啟動計算機,以檢查是否成功。 Windows 系統啟動正常,並且(如果適用)是否仍可透過 GRUB 或啟動管理器存取與 Linux 的雙重啟動。取決於系統的配置方式。
了解所有這些工具和步驟(Linux LiveUSB、chroot 和 GRUB 重裝、使用 Boot-Repair、Syslinux、LILO、BCDBoot 和 bootrec)會讓事情變得容易得多。 診斷雙啟動系統中哪個啟動組件故障,並套用對應的解決方案。 無論哪種情況,都無需重新安裝整個系統,只需幾個步驟即可在 Windows 和您喜愛的 Linux 發行版之間恢復穩定的雙啟動。