如何检查 Linux 系统是否使用特定的引导加载程序

LinuxLinuxBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在这个实验中,你将学习如何检查 Linux 系统正在使用的引导加载程序(bootloader),特别关注 GRUB。你将探索位于 /boot/grub 目录中的关键配置文件,以了解 GRUB 安装的各个组件。

然后,你将检查 /etc/default/grub 文件,以验证控制 GRUB 行为的主要配置设置。最后,你将使用 dmesg 命令检查引导加载程序的日志,以确认系统启动期间加载了哪个引导加载程序。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/TextProcessingGroup -.-> linux/grep("Pattern Searching") subgraph Lab Skills linux/ls -.-> lab-558753{{"如何检查 Linux 系统是否使用特定的引导加载程序"}} linux/cat -.-> lab-558753{{"如何检查 Linux 系统是否使用特定的引导加载程序"}} linux/grep -.-> lab-558753{{"如何检查 Linux 系统是否使用特定的引导加载程序"}} end

使用 ls /boot/grub 检查 GRUB

在这一步中,我们将探索 GRUB 引导加载程序的配置文件。GRUB(GRand Unified Bootloader,通用引导加载程序)是包括 Ubuntu 在内的大多数 Linux 发行版的默认引导加载程序。它是你启动计算机时运行的第一个软件,负责将操作系统内核加载到内存中。

主要的 GRUB 配置文件通常位于 /boot/grub 目录中。让我们列出这个目录的内容,看看里面有什么。

如果终端尚未打开,请打开它。记住,你可以在桌面左侧找到 Xfce 终端 图标。

输入以下命令并按回车键:

ls /boot/grub

ls 命令用于列出文件和目录。当你提供像 /boot/grub 这样的路径时,它会列出该特定目录的内容。

你应该会看到一个文件和目录列表,可能类似于以下内容(确切的输出可能会因系统而异):

fonts  grub.cfg  grubenv  i386-pc  locale  unicode.pf2  x86_64-efi

这个输出显示了你的 GRUB 安装的各个组件。这里最重要的文件是 grub.cfg,它包含实际的引导菜单配置。我们将在下一步查看该文件。

了解 /boot/grub 的内容是学习你的 Linux 系统如何启动的第一步。

点击 继续 进入下一步。

使用 cat /etc/default/grub 验证 GRUB 配置

在上一步中,我们列出了 /boot/grub 目录的内容,并看到了 grub.cfg 文件。虽然 grub.cfg 是活动的配置文件,但它通常是根据 /etc/default/grub 中定义的设置以及 /etc/grub.d/ 中的脚本自动生成的。

/etc/default/grub 文件包含控制 GRUB 行为的主要配置选项,例如默认启动的操作系统、启动前的超时时间以及内核参数。

让我们使用 cat 命令查看 /etc/default/grub 文件的内容。cat 命令用于显示文件的内容。

在终端中输入以下命令并按回车键:

cat /etc/default/grub

你将看到 GRUB 默认配置文件的内容。它看起来会像这样:

## If you change this file, run 'update-grub' afterwards to update
## /boot/grub/grub.cfg.

GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

## Uncomment to enable booting from a full graphics screen using grub-gfxpayload
## and grub-theme-ubuntu-mate ...
#GRUB_GFXPAYLOAD_LINUX=keep

## Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

## The resolution used on graphical terminal
## Note that you can only use resolutions specified in your gfxpayload.
## See the Graphics chapter in the Grub manual for more details.
#GRUB_GFXMODE=640x480

## Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to the Linux kernel
#GRUB_DISABLE_LINUX_UUID=true

## Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

## Uncomment to get a beep at boot start
#GRUB_INIT_TUNE="480 440 1"

此文件包含各种设置,每个设置都由以 # 开头的注释进行解释。例如:

  • GRUB_DEFAULT:指定默认启动的菜单项。0 通常表示第一个菜单项。
  • GRUB_TIMEOUT:设置在自动启动默认菜单项之前的等待时间(以秒为单位)。
  • GRUB_CMDLINE_LINUX_DEFAULT:包含传递给默认启动项的内核参数。

如果你需要修改启动选项,例如添加用于故障排除的内核参数或更改默认操作系统,那么理解这个文件至关重要。

点击 继续 进入下一步。

dmesg 中检查引导加载程序日志

在前面的步骤中,我们查看了 GRUB 配置文件。现在,让我们来检查内核在启动过程中生成的消息。这些消息存储在一个缓冲区中,可以使用 dmesg 命令查看。

dmesg(诊断消息缓冲区)是一个用于打印内核消息缓冲区内容的命令。它包含有关硬件设备、设备驱动程序以及系统启动期间生成的其他与内核相关的消息。这是排查启动问题的一个重要工具。

在终端中输入以下命令并按回车键:

dmesg

这将输出大量文本,显示自系统启动以来的所有内核消息。输出内容可能很多,因此通常会对其进行过滤,或者将其通过管道传递给像 less 这样的分页器,以便逐屏查看。

若要查看与引导加载程序或早期启动过程特别相关的消息,你通常可以查找“GRUB”、“boot”或“kernel command line”等关键字。

让我们尝试使用 grep 过滤输出,查找包含“Command line”的行:

dmesg | grep "Command line"

| 符号称为管道。它将左边命令(dmesg)的输出作为输入传递给右边的命令(grep)。grep 是一个强大的文本模式搜索工具。在这种情况下,我们正在搜索包含“Command line”短语的行。

你应该会看到类似以下的输出,显示引导加载程序传递的内核命令行参数:

[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-... root=UUID=... ro quiet splash

这一行显示了正在启动的内核映像(/boot/vmlinuz-...)和内核参数(root=UUID=... ro quiet splash)。这些参数通常是在我们上一步看到的 /etc/default/grub 文件中设置的。

探索 dmesg 对于诊断启动过程中出现的问题至关重要,因为它提供了从一开始内核所执行操作的详细信息。

点击 继续 完成此实验。

总结

在本次实验中,我们学习了如何检查 Linux 系统是否使用 GRUB 作为引导加载程序。首先,我们使用 ls 命令列出 /boot/grub 目录的内容,以确定是否存在 GRUB 配置文件,特别是 grub.cfg。这一步确认了系统中已安装 GRUB。

接着,我们使用 cat 命令查看 /etc/default/grub 文件。该文件包含 GRUB 的主要配置设置,例如默认启动选项和超时值。通过检查这个文件,我们进一步验证了 GRUB 已被配置为引导加载程序,并了解了它的工作方式。