Linux 黑话解释:Linux 中的 GRUB 是什么?
创始人
2024-03-02 10:26:33
0

如果你曾经使用过 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 的所有疑问,但请随时在评论区告诉我。我可能会根据你的问题或建议来更新这篇文章。


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

作者:Abhishek Prakash 选题:lujun9972 译者:lkxed 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

笔记本安装centos7出...
首先,GRUB是一个开源的引导加载程序,通常用于控制和启动计算机的...
2024-12-15 19:00:40
安完ubuntugrub
安装Ubuntu和GRUB是在Linux系统中非常常见的任务。Ub...
2024-11-08 13:01:16
Ansible:在GRUB...
要在GRUB命令行中插入单词,可以使用GRUB自带的命令set来实...
2024-11-07 01:00:56
Linux 黑话解释:Li...
在本次 Linux 黑话解释系列的这一篇,我们会一起来探索 Lin...
2024-03-02 18:00:03
如何使用 grubby 更...
通常 Linux 系统会默认引导系统进入最新安装的内核,并保留最新...
2024-03-02 17:01:34
Linux 黑话解释:什么...
LUKS 是 Linux 用户中流行的磁盘加密机制。在这篇术语解析...
2024-03-02 16:41:35

热门资讯

使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
Bazzite:专为 Stea... 为 Linux 桌面或者 Steam Deck 做好游戏准备,听起来都很刺激!对于一个专为 Linu...
Motrix:一个漂亮的跨平台... 一个开源的下载管理器,提供了一个简洁的用户界面,同时提供了跨平台操作的所有基本功能。在这里了解关于它...
Bash 脚本中如何使用 he... here 文档 here document (LCTT 译注:here 文档又称作 heredoc ...
使用 dialog 和 jq ... 为何选择文字用户界面(TUI)?许多人每日都在使用终端,因此, 文字用户界面 Text User I...