Linux 黑话解释：Linux 中的 GRUB 是什么？
我将告诉你 GRUB 是什么，以及它有什么用处。
GRUB 黑话解释
我将告诉你 GRUB 是什么，以及它有什么用处。
![](/data/attachment/album/202204/03/111835u4rcmcf7qze8pawa.png)


如果你曾经使用过 Linux 桌面，你一定见过这个屏幕。这就是所谓的 GRUB 屏幕。是的，它的字母全部都是大写的。


![Remember this screen? This is GRUB](/data/attachment/album/202204/03/111939d8mdm43ll4n777nk.png)


在 “<ruby> Linux 黑话解释 <rt>  Linux Jargon Buster </rt></ruby>”系列的这一个章节中，我将告诉你 GRUB 是什么，以及它有什么用处。此外，我还会简要地介绍一下配置和定制的部分。


### GRUB 是什么？


[GRUB](https://www.gnu.org/software/grub/) 是一个用于加载和管理系统启动的完整程序。它是 Linux 发行版中最常见的<ruby> 引导程序 <rt>  bootloader </rt></ruby>。引导程序是计算机启动时运行的第一个软件。它加载 [操作系统的内核](https://itsfoss.com/what-is-linux/)，然后再由内核初始化操作系统的其他部分（包括 Shell、[显示管理器](/article-12773-1.html)、[桌面环境](/article-12579-1.html) 等等）。


### 引导程序和引导管理器


我不想现在就把你搞糊涂，但是我认为这个话题是不可避免的。<ruby> 引导程序 <rt>  boot loader </rt></ruby>和<ruby> 引导管理器 <rt>  boot manager </rt></ruby>之间有着一条模糊的界限。


你已经知道了引导程序是什么。它会首先启动，然后将内核加载到内存中并执行它。引导管理器则允许你在不同的操作系统之间进行选择（如果你的电脑上不止一个操作系统的话）。引导管理器并不会直接加载系统。


随着 Linux 内核 3.3 版本的推出，[Linux 内核包括了一个内置的 EFI 引导程序](https://www.rodsbooks.com/efi-bootloaders/efistub.html)。事实上，任何一个[支持 EFI 的系统都包括一个 EFI 引导程序](https://jdebp.eu/FGA/efi-boot-process.html)。在支持 EFI 的系统中，固件会读取 <ruby> EFI 系统分区 <rt>  EFI System Partition </rt></ruby>（ESP）中的 EFI 文件，从而获得启动信息。


这里插入一张图片，图中显示了带有 ESP 分区的分区表：


![](/data/attachment/album/202204/03/111939pzyy0coqn7a9c2yw.png)


GRUB 既是一个引导程序，也是一个引导管理器。一会儿我再来谈 GRUB。让我们先看看其他类似 GRUB 的程序。



> 
> 小知识：GRUB 是 **GR**and **U**nified **B**ootloader（大一统引导程序） 的首字母缩写。
> 
> 
> 


### GRUB 屏幕上的那些行是什么意思？


你会在 GRUB 屏幕上看到几行字。这些行对于不同的设置、不同的发行版会有所不同。


通常情况下，第一行是你的 Linux 发行版。如果你看到类似高级选项的东西，你可以进入其中，找到一些以 “linux-generic-x-y-z” 等开头的行。


当你的 Linux 发行版更新内核版本时，它至少会保留一个旧版本。你可以选择启动到旧的 Linux 内核，以防你的系统遇到新更新的 Linux 内核的任何问题。


在基于 Ubuntu 的发行版中，你也可以看到一个恢复选项。


![](/data/attachment/album/202204/03/111940ymuwn888m80or084.jpg)


*在高级选项下，通常有一个旧的内核版本和恢复选项*


在最后，你可能会看到一个条目，如系统设置或 UEFI 设置，以访问系统的 BIOS 设置。


### 还有哪些类似 GRUB 的引导管理器？


GRUB 是 Linux 中最流行的引导管理器。但它并不是唯一的一个。有一个高度可定制的引导管理器，名字叫做 [rEFInd 引导管理器](https://www.rodsbooks.com/refind/)，它同样受到了一些 Linux 用户的喜爱。


![定制化的 rEFInd 引导管理器屏幕 | 图片来源：kofler.info/pop_os](/data/attachment/album/202204/03/111940cxvqmqma6t3n2yox.png)


还有一个基于文本的引导管理器，名字叫做 [systemd-boot](https://wiki.gentoo.org/wiki/Systemd-boot)。你可以猜到这是专为基于 systemd 的 Linux 发行版准备的。有一些发行版正在使用 systemd-boot，比如 Pop OS。


![Pop OS 中的 systemd-boot | 图片来源：kofler.info/pop_os](/data/attachment/album/202204/03/111940iozaaaeqqdzay3v3.png)


### 访问或编辑 GRUB


通常你看到的 GRUB 屏幕是它的菜单界面。如果你安装了一个以上的操作系统，它会允许你在其中选择一个来启动。如果你的 Linux 发行版安装了不止一个内核，你也可以选择加载不同的内核。


根据不同的 Linux 发行版的配置，你的 GRUB 菜单上可能会有一些其他选项。


你可以在 GRUB 菜单界面按 `e` 键来编辑菜单项。这样你就可以在内核加载前修改它的参数。例如，在某些情况下，[禁用内核提供的图形驱动可以帮助你解决 Linux 系统在启动时卡住的问题](https://itsfoss.com/fix-ubuntu-freezing/)。


![](/data/attachment/album/202204/03/111941vwwiszmd2wyyvulb.jpg)


你也可以在 GRUB 菜单界面上按 `c` 键来进入 GRUB 的命令行菜单。


### GRUB 配置文件


你在菜单界面里对 GRUB 所做的任何改变都是暂时的。如果你想对 GRUB 做一些永久性的改变，比如改变默认的超时时间，你可以在 Linux 系统启动后修改 GRUB 配置文件。


默认的 GRUB 配置文件是 `/etc/default/grub`。还有一个 `/etc/default/grub.d` 目录，里面也存放一些配置。你可以直接编辑 `/etc/default/grub` 文件，但是我还是建议通过在这个目录中添加配置文件（`.cfg` 文件）进行额外的修改。


![默认的 GRUB 配置文件](/data/attachment/album/202204/03/111941mgg5hj88bs4hz5sq.png)


你必须 [更新 GRUB 才能使这些修改生效](https://itsfoss.com/update-grub/)。


### 使用 GRUB 定制器来定制 GRUB


如果你不太习惯 [在终端里使用文本编辑器编辑文件](https://itsfoss.com/command-line-text-editors-linux/)，你可以 [使用一个叫做 GRUB 定制器的图形工具](https://itsfoss.com/grub-customizer-ubuntu/)。


它允许你改变启动顺序、默认超时时间等等。你还可以用它来把 GRUB 的背景设置成一张自定义的墙纸。


![](/data/attachment/album/202204/03/111941axsxxmcdc7l2sxm7.jpg)


GRUB 定制器可以在 Ubuntu 20.04 中从 Universe 仓库安装，在 Ubuntu 18.04 中 [通过 PPA 安装](https://itsfoss.com/ppa-guide/)。它可以 [通过 AUR](https://itsfoss.com/aur-arch-linux/) 在基于 Arch Linux 的发行版中使用。


### 总结


至此，本文几乎涉及到了所有与 GRUB 相关的简单内容。至于 EFI、引导加载和 GRUB 本身，它们都是详细而复杂的话题，因此不在本文的讨论范围之内。这篇文章旨在给你一个关于 GRUB 引导程序的总体概述。


或许我以后会写一篇关于 GRUB 的详细指南，解释它底层的一些细节。目前，如果你想了解更多关于 GRUB 的信息，你可以在你的 Linux 终端里使用 `info grub` 命令访问到 GRUB 文档。


![你可以在终端中访问 GRUB 手册](/data/attachment/album/202204/03/111942c2pwkpaduw2uar79.png)


我希望你现在对什么是 GRUB 有了一点点的了解。这里有一个 GIF 动图供你一乐。


![什么是 GRUB? UEFI 再也伤害不到我了 :)](/data/attachment/album/202204/03/111945ly7nnt5atbaliyy5.gif)


或许我没有回答你关于 GRUB 的所有疑问，但请随时在评论区告诉我。我可能会根据你的问题或建议来更新这篇文章。




---


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


作者：[Abhishek Prakash](https://itsfoss.com/author/abhishek/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[lkxed](https://github.com/lkxed) 校对：[wxy](https://github.com/wxy)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出

