如果你用过Linux桌面,你一定见过这个画面。这称为GRUB屏幕。是的,它的字母都是大写的。还记得这个画面吗?这就是GRUB在“LinuxJargonBuster中解释LinuxJargonBuster”系列的这一期中,我将告诉您GRUB是什么以及它的用途。此外,我将简要介绍配置和定制。什么是GRUB?GRUB是一个用于加载和管理系统启动的完整程序。它是Linux发行版中最常见的引导加载程序。引导加载程序是计算机启动时运行的第一个软件。它加载操作系统的内核,进而初始化操作系统的其余部分(包括shell、显示管理器、桌面环境等)。Bootloader和BootManager我现在不想混淆你,但我认为这个话题是不可避免的。引导加载程序和引导管理器之间有一条模糊的界线。您已经知道引导加载程序是什么。它首先启动,然后将内核加载到内存中并执行它。引导管理器允许您在不同的操作系统之间进行选择(如果您的计算机上有多个操作系统)。引导管理器不直接加载系统。随着Linux内核版本3.3的发布,Linux内核包含了一个内置的EFI引导加载程序。事实上,任何支持EFI的系统都包含一个EFI引导加载程序。在支持EFI的系统中,固件读取EFI系统分区(ESP)中的EFI文件以获取引导信息。在此处插入一张显示ESP分区的分区表的图片:GRUB既是引导装载程序又是引导管理器。稍后我会回到GRUB。让我们先看看其他类似GRUB的程序。琐事:GRUB是GRandUnifiedBootloader的首字母缩写词。GRUB屏幕上的这些行是什么意思?您将在GRUB屏幕上看到几行。这些行对于不同的设置、不同的分布会有所不同。通常,第一行是您的Linux发行版。如果你看到类似高级选项的东西,你可以进入它并找到一些以“linux-generic-x-y-z”等开头的行。当您的Linux发行版更新内核版本时,它至少会保留一个旧版本。如果您的系统遇到新更新的Linux内核的任何问题,您可以选择启动到旧的Linux内核。在基于Ubuntu的发行版中,您可能还会看到一个恢复选项。在高级选项下,通常有较旧的内核版本和恢复选项,最后您可能会看到系统设置或UEFI设置之类的条目以访问系统的BIOS设置。除了GRUB,还有哪些其他引导管理器?GRUB是Linux中最流行的引导管理器。但它不是唯一的。有一个高度可定制的引导管理器,称为rEFIndBootManager,它也受到一些Linux用户的喜爱。自定义rEFInd启动管理器屏幕|图片来源:kofler.info/pop_os还有一个基于文本的启动管理器,称为systemd-boot。您可以猜到这是针对基于systemd的Linux发行版的。一些发行版正在使用systemd-boot,例如PopOS。PopOS中的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定制器可以在Ubuntu20.04中从Universe存储库安装,在Ubuntu18.04中通过PPA安装。它可以通过AUR在基于ArchLinux的发行版上使用。至此,本文几乎涵盖了所有与GRUB相关的简单内容。至于EFI、引导加载程序和GRUB本身,这些都是详细而复杂的主题,因此超出了本文的范围。本文旨在为您提供GRUB引导加载程序的总体概述。也许我将来会写一篇GRUB的详细指南,解释它的一些底层细节。目前,如果您想了解更多关于GRUB的信息,可以在Linux终端中使用infogrub命令访问GRUB文档。您可以在终端中访问GRUB手册我希望您现在对GRUB是什么有一点了解。这是供您欣赏的动画GIF。什么是GRUB?UEFI不能再伤害我了:)
