修復引導問題的 Grub Rescue 命令

GRUB 代表 G蘭德 引導程序。 它是您的計算機啟動時運行的第一個軟件程序。 引導加載程序負責加載和引導操作系統內核。 GRUB 是基於 Linux 內核的操作系統的默認引導加載程序。

在某些情況下,您必須在同一台機器(筆記本電腦或 PC)上同時運行 Linux 和 Windows,您可能會遇到 GRUB 的一些問題。 為了 example, 如果在 Linux 安裝後安裝 Windows,Windows 會在 MBR(主引導記錄)上啟動自己的引導加載程序。 因此,GRUB 不再可用,您無法啟動到 Linux 操作系統。

本教程將介紹一些使 GRUB 無法啟動的場景,以及如何使用 GRUB 命令來從啟動中拯救您的 Linux 操作系統。

什麼時候會使用 grub 救援命令?

現在大部分的Linux系統都在使用GRUB2(grub version 2)。 GRUB2 是 GRUB 引導加載程序的替代品。

如果 GRUB 找不到 grub 文件夾或裡面的內容已損壞,則 GRUB 提示如下:

error: no such partition.
grub rescue > _

或者

error: unknown filesystem.
grub rescue > _

或者

grub > _

此錯誤會阻止您啟動到操作系統。 以下部分將解釋解決此問題的方法。

General Node: Getting into grub mode is general a very common issue when you do a dual boot. Most of the time the fix is to boot using Live USB and chroot into your installed system, then use os-prober and grub install

Grub 救援命令

每個 GRUB 失敗模式都可以通過 grub 終端或 live CD 安裝程序修復。

在 grub 命令提示符下,輸入“ls”以查看磁盤驅動器和可用分區:

grub > ls
(hd0) (hd0,msdos2) (hd0,msdos1)
grub > _

在哪裡:

高清0: 硬盤

msdos: 分區類型

通常,操作系統從硬盤的第一個分區啟動。 在這種情況下,要驗證可引導分區是否為“msdos1”,讓我們運行以下命令:

grub > ls (hd0,msdos1)/

接下來,讓我們通過運行來探索 grub2 目錄:

grub > ls (hd0,msdos1)/grub2

輸出:

device.map  fonts  grub.cfg  grub.cfg.1590068449.rpmsave  grubenv  i386-pc  locale

如您所見,Linux 中的 grub 有自己的配置文件:’grub.cfg’。

如果你沒有看到這個文件,你可以通過運行以下命令來創建它:

grub2-mkconfig

為了引導您的系統,讓我們輸入:

grub > set root=(hd0,msdos1)

輸出:

linux (hd0,msdos1)/vmlinuz-3.10.0-1127.13.1.el7.x86_64 root=/dev/sda1

運行“set root”將定義可引導分區。 默認內核是 linux v3.10。

現在,我們必須定義 grub2 目錄的路徑:

grub > set prefix=(hd0,msdos1)/grub2
grub > insmod normal

然後:

initrd (hd0,msdos1)/initramfs-3.10.0-1127.13.1.el7.x86_64.img

在這裡,您還需要將分區更改為引導分區。

如果您無法引導您的系統(這可能是由於文件系統錯誤,或者由於缺少 GRUB 配置文件),您將需要從其他介質引導。 如果可用,您可以使用一些可啟動的應急 CD 或發行版的 Live CD。

引導到系統後,您可能需要創建 GRUB 配置文件(如果丟失或配置錯誤)。 要創建這些配置文件,請運行:

$ update-grub

此命令需要超級用戶權限。 因此,以 root 身份運行此命令(以及本文中的以下命令)。

下一步是在 MBR 上安裝 GRUB。 這將解決由 Windows 引起的問題,即在通過 Linux 安裝 Windows 之後,Windows 將其引導加載程序安裝在 MBR 上。 這裡我假設您已經從 Live 或救援 CD 啟動。

現在,在我們詳細介紹在 MBR 上安裝 GRUB 之前,我們需要掛載 Linux 的根分區。

$ sudo mount /dev/sda1 /mnt

這裡,假設根分區為“/dev/sda1”。 該分區掛載在 /mnt 目錄中。 您可以選擇自己的掛載點,您的根文件系統分區可能會有所不同。

現在,我們準備安裝 GRUB。 運行以下命令:

$ sudo grub-install --root-directory=/mnt/ /dev/sda

這將在主引導記錄上安裝 GRUB。 如果您希望將其安裝在某個分區上,請將上述命令的最後一個參數替換為正確的分區。

通過引導修復來拯救 Grub

另一種在 Ubuntu 和幾乎所有 Linux 發行版上拯救 grub 的方法是使用引導修復工具。 這是一個圖形實用程序,可以通過單擊幾下來修復 Grub2 引導加載程序。

您需要準備 Live USB/DVD 安裝程序並啟動到 live Linux 環境。 然後,讓我們將您的實時操作系統連接到 Internet,通過運行以下命令安裝引導修復:

$ sudo add-apt-repository -y ppa:yannubuntu/boot-repair
$ sudo apt-get update
$ sudo apt-get install -y boot-repair && boot-repair

啟動修復工具將啟動,您可以選擇“推薦修復”按鈕,然後按照一些後續步驟修復您的引導加載程序。

結論

在本教程中,我們學習瞭如何使用 grub 救援命令修復操作系統啟動錯誤。 感謝您的閱讀,請在下面的評論部分留下您的建議。