Linux中國

Linux 黑話解釋:Linux 中的 GRUB 是什麼?

如果你曾經使用過 Linux 桌面,你一定見過這個屏幕。這就是所謂的 GRUB 屏幕。是的,它的字母全部都是大寫的。

Remember this screen? This is GRUB

在 「 Linux 黑話解釋 Linux Jargon Buster 」系列的這一個章節中,我將告訴你 GRUB 是什麼,以及它有什麼用處。此外,我還會簡要地介紹一下配置和定製的部分。

GRUB 是什麼?

GRUB 是一個用於載入和管理系統啟動的完整程序。它是 Linux 發行版中最常見的 引導程序 bootloader 。引導程序是計算機啟動時運行的第一個軟體。它載入 操作系統的內核,然後再由內核初始化操作系統的其他部分(包括 Shell、顯示管理器桌面環境 等等)。

引導程序和引導管理器

我不想現在就把你搞糊塗,但是我認為這個話題是不可避免的。 引導程序 boot loader 引導管理器 boot manager 之間有著一條模糊的界限。

你已經知道了引導程序是什麼。它會首先啟動,然後將內核載入到內存中並執行它。引導管理器則允許你在不同的操作系統之間進行選擇(如果你的電腦上不止一個操作系統的話)。引導管理器並不會直接載入系統。

隨著 Linux 內核 3.3 版本的推出,Linux 內核包括了一個內置的 EFI 引導程序。事實上,任何一個支持 EFI 的系統都包括一個 EFI 引導程序。在支持 EFI 的系統中,固件會讀取 EFI 系統分區 EFI System Partition (ESP)中的 EFI 文件,從而獲得啟動信息。

這裡插入一張圖片,圖中顯示了帶有 ESP 分區的分區表:

GRUB 既是一個引導程序,也是一個引導管理器。一會兒我再來談 GRUB。讓我們先看看其他類似 GRUB 的程序。

小知識:GRUB 是 GRand Unified Bootloader(大一統引導程序) 的首字母縮寫。

GRUB 屏幕上的那些行是什麼意思?

你會在 GRUB 屏幕上看到幾行字。這些行對於不同的設置、不同的發行版會有所不同。

通常情況下,第一行是你的 Linux 發行版。如果你看到類似高級選項的東西,你可以進入其中,找到一些以 「linux-generic-x-y-z」 等開頭的行。

當你的 Linux 發行版更新內核版本時,它至少會保留一個舊版本。你可以選擇啟動到舊的 Linux 內核,以防你的系統遇到新更新的 Linux 內核的任何問題。

在基於 Ubuntu 的發行版中,你也可以看到一個恢複選項。

在高級選項下,通常有一個舊的內核版本和恢複選項

在最後,你可能會看到一個條目,如系統設置或 UEFI 設置,以訪問系統的 BIOS 設置。

還有哪些類似 GRUB 的引導管理器?

GRUB 是 Linux 中最流行的引導管理器。但它並不是唯一的一個。有一個高度可定製的引導管理器,名字叫做 rEFInd 引導管理器,它同樣受到了一些 Linux 用戶的喜愛。

定製化的 rEFInd 引導管理器屏幕 | 圖片來源:kofler.info/pop_os

還有一個基於文本的引導管理器,名字叫做 systemd-boot。你可以猜到這是專為基於 systemd 的 Linux 發行版準備的。有一些發行版正在使用 systemd-boot,比如 Pop OS。

Pop OS 中的 systemd-boot | 圖片來源:kofler.info/pop_os

訪問或編輯 GRUB

通常你看到的 GRUB 屏幕是它的菜單界面。如果你安裝了一個以上的操作系統,它會允許你在其中選擇一個來啟動。如果你的 Linux 發行版安裝了不止一個內核,你也可以選擇載入不同的內核。

根據不同的 Linux 發行版的配置,你的 GRUB 菜單上可能會有一些其他選項。

你可以在 GRUB 菜單界面按 e 鍵來編輯菜單項。這樣你就可以在內核載入前修改它的參數。例如,在某些情況下,禁用內核提供的圖形驅動可以幫助你解決 Linux 系統在啟動時卡住的問題

你也可以在 GRUB 菜單界面上按 c 鍵來進入 GRUB 的命令行菜單。

GRUB 配置文件

你在菜單界面里對 GRUB 所做的任何改變都是暫時的。如果你想對 GRUB 做一些永久性的改變,比如改變默認的超時時間,你可以在 Linux 系統啟動後修改 GRUB 配置文件。

默認的 GRUB 配置文件是 /etc/default/grub。還有一個 /etc/default/grub.d 目錄,裡面也存放一些配置。你可以直接編輯 /etc/default/grub 文件,但是我還是建議通過在這個目錄中添加配置文件(.cfg 文件)進行額外的修改。

默認的 GRUB 配置文件

你必須 更新 GRUB 才能使這些修改生效

使用 GRUB 定製器來定製 GRUB

如果你不太習慣 在終端里使用文本編輯器編輯文件,你可以 使用一個叫做 GRUB 定製器的圖形工具

它允許你改變啟動順序、默認超時時間等等。你還可以用它來把 GRUB 的背景設置成一張自定義的牆紙。

GRUB 定製器可以在 Ubuntu 20.04 中從 Universe 倉庫安裝,在 Ubuntu 18.04 中 通過 PPA 安裝。它可以 通過 AUR 在基於 Arch Linux 的發行版中使用。

總結

至此,本文幾乎涉及到了所有與 GRUB 相關的簡單內容。至於 EFI、引導載入和 GRUB 本身,它們都是詳細而複雜的話題,因此不在本文的討論範圍之內。這篇文章旨在給你一個關於 GRUB 引導程序的總體概述。

或許我以後會寫一篇關於 GRUB 的詳細指南,解釋它底層的一些細節。目前,如果你想了解更多關於 GRUB 的信息,你可以在你的 Linux 終端里使用 info grub 命令訪問到 GRUB 文檔。

你可以在終端中訪問 GRUB 手冊

我希望你現在對什麼是 GRUB 有了一點點的了解。這裡有一個 GIF 動圖供你一樂。

什麼是 GRUB? UEFI 再也傷害不到我了 :)

或許我沒有回答你關於 GRUB 的所有疑問,但請隨時在評論區告訴我。我可能會根據你的問題或建議來更新這篇文章。

via: https://itsfoss.com/what-is-grub/

作者:Abhishek Prakash 選題:lujun9972 譯者:lkxed 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國

    Linux中國

    DevOps 將去向何方?

    微軟、谷歌、亞馬遜、IBM 和甲骨文如今都在關注云上的 DevOps。這些大公司正在給企業提供 IT 自動化的服務。然而,DevOps 仍然在持續的演進中。DevSecOps、AIOps 和 NoOps 正在成為下一個流行詞。