商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 系统应用 > 如何检查 Linux 中 GRUB 设置是否已应用

如何检查 Linux 中 GRUB 设置是否已应用

  发布于2026-08-19 阅读(0)

扫一扫,手机访问

介绍

在这个实验中,你将学习如何验证对 Linux 中 GRUB 引导加载程序配置所做的更改是否已成功应用。你将查看位于 CODE_0 的主要 GRUB 配置文件,以了解其设置。

接下来,你将检查位于 CODE0 的生成的 GRUB 菜单配置文件,以了解默认文件中的设置是如何转换的。最后,你将使用 CODE1 命令检查内核引导参数,以确认 GRUB 设置已反映在运行的系统中。

使用 cat /etc/default/grub 检查 GRUB 配置

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

GRUB 的主要配置文件位于 CODE_0。该文件包含决定 GRUB 行为的设置,例如默认启动的操作系统、启动前的超时时间以及内核参数。

让我们使用 CODE0 命令查看这个文件的内容。CODE1 命令用于显示文件的内容。

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

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

cat /etc/default/grub

你将在终端中看到 CODE_0 文件的内容。它看起来会像这样:

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

GRUBDEFAULT=0
GRUB
TIMEOUTSTYLE=hidden
GRUB
TIMEOUT=0
GRUBDISTRIBUTOR=CODE0
GRUBCMDLINELINUXDEFAULT="quiet splash"
GRUB
CMDLINE_LINUX=""

## Uncomment to enable graphical terminal (grub-gfxpayload is needed)
#GRUB_TERMINAL=gfxterm

## The resolution used on graphical terminal
## settings below may not work on your chipset but may be useful for EFI panel
## sizes
#GRUB_GFXMODE=640x480

## Uncomment to disable graphical terminal on boot problems
#GRUBTERMINALINPUT=console

## Uncomment to disable menu scrolling
#GRUBMENUSCROLL_STYLE=menu

## Uncomment to enable hidden menu by default
#GRUBHIDDENTIMEOUT=0
#GRUBHIDDENTIMEOUT_QUIET=true

## Uncomment to enable BadRAM filtering, modify to suit your needs
## This works only with Linux 2.6.25 or later using pcifilterenable=1
## and needs BadRAM filtering support in the kernel
#GRUB_BADRAM="0x0123456789abcdef,0xghijkllmnopqrstuvwxyz"

## Uncomment to disable graphical boot (use text mode)
#GRUBDISABLEGRAPHICS_OVERRIDE=true

## If you want to enable the GRUB boot menu at boot time, uncomment the following line:
#GRUBENABLECRYPTODISK=y

## The following lines are for the default grub menu entry
#GRUBINITTUNE="480 440 1"

## Uncomment to set a custom theme
#GRUB_THEME=/path/to/grub/theme

## Uncomment to enable os-prober, which detects other operating systems
#GRUBDISABLEOS_PROBER=false
```

这个文件包含各种设置。例如:

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

理解这个文件对于高级 Linux 配置和解决启动问题至关重要。

点击 继续 进入下一步。

使用 cat /boot/grub/grub.cfg 验证 GRUB 菜单

在上一步中,你查看了 CODE0,它是 GRUB 的主要配置文件。然而,在启动过程中,GRUB 并不直接使用这个文件。相反,CODE1 中的设置用于生成实际的 GRUB 菜单配置文件,该文件位于 CODE_2

CODE0 文件由 CODE1 命令(或 CODE_2)自动生成。它包含计算机启动时你看到的菜单项,让你可以选择要启动的操作系统或内核。

重要提示:你绝不能手动编辑 CODE0 文件。你所做的任何更改在下一次运行 CODE1 时都会被覆盖。始终修改 CODE2,然后运行 CODE3 来应用你的更改。

让我们使用 CODE0 命令查看 CODE1 文件的内容。

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

cat /boot/grub/grub.cfg

CODE_0 相比,你将看到一个长得多且更复杂的输出。这个文件包含每个启动菜单项的详细配置,包括内核路径、initrd 路径和内核命令行参数。

```plaintext
#
## 请勿编辑此文件
#
## 它由grub-mkconfig使用模板自动生成
## 模板来自/etc/grub.d,设置来自/etc/default/grub
#

#### BEGIN /etc/grub.d/00header ###
...
#### END /etc/grub.d/00
header ###

#### BEGIN /etc/grub.d/05debiantheme ###
...
#### END /etc/grub.d/05debiantheme ###

#### BEGIN /etc/grub.d/10_linux ###
...
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' {
recordfail
...
linux /boot/vmlinuz--generic root=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ro quiet splash $vt_handoff
initrd /boot/initrd.img--generic
}
...
#### END /etc/grub.d/10_linux ###

#### BEGIN /etc/grub.d/20linuxxen ###
...
#### END /etc/grub.d/20linuxxen ###

#### BEGIN /etc/grub.d/30os-prober ###
...
#### END /etc/grub.d/30
os-prober ###

#### BEGIN /etc/grub.d/30uefi-firmware ###
...
#### END /etc/grub.d/30
uefi-firmware ###

#### BEGIN /etc/grub.d/40custom ###
...
#### END /etc/grub.d/40
custom ###

#### BEGIN /etc/grub.d/41custom ###
...
#### END /etc/grub.d/41
custom ###
```

你可以滚动输出查看不同的菜单项及其配置。查找以 CODE_0 开头的行。这些行定义了出现在 GRUB 启动菜单中的选项。

这个文件很复杂,你现在不需要理解每一行。关键要点是 CODE0 是 GRUB 实际使用的文件,它是从 CODE1CODE_2 中的脚本生成的。

点击 继续 进入下一步。

在 dmesg 中检查 GRUB 参数

在前面的步骤中,你查看了 GRUB 配置文件 CODE0CODE1。你看到 CODE2 包含 CODE3 变量,该变量指定了内核参数。这些参数在 Linux 内核启动时会被传递给它。

CODE_0 命令用于显示内核环形缓冲区消息。这些消息包含系统启动过程的信息,包括所使用的内核命令行参数。

让我们使用 CODE_0 来查看在这台虚拟机启动期间 GRUB 传递的内核命令行参数。

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

dmesg | grep "Kernel command line"

以下是对该命令的详细解释:

  • CODE_0:显示内核消息。
  • CODE0:这是管道符号。它将左边命令(CODE1)的输出作为输入传递给右边的命令(CODE_2)。
  • CODE0:该命令在接收到的输入(来自 CODE1)中搜索包含确切短语 "Kernel command line" 的行。

输出将显示用于启动系统的内核命令行。它看起来会类似于这样:

[    0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-*-generic root=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ro quiet splash vt.handoff=7

你可以看到像 CODE0CODE1 这样的参数,它们很可能是在 CODE2 中的 CODE3 变量中定义的。这些参数告诉内核在启动期间如何运行。例如,CODE4 会减少启动期间的输出,而 CODE5 会启用图形化启动界面。

使用 CODE_0 检查内核命令行是一种有用的技术,可用于验证你的 GRUB 配置更改是否正确应用,以及排查与内核参数相关的启动问题。

你现在已经成功探索了 GRUB 配置,并使用 CODE_0 验证了内核参数。

点击 继续 完成本次实验。

总结

在本次实验中,你学习了如何检查 Linux 中 GRUB 设置是否已应用。首先,你使用 CODE0 命令查看了主要的 GRUB 配置文件 CODE1,以了解其内容以及在启动过程中控制 GRUB 行为的各种参数。

通过查看 CODE_0 文件,你深入了解了诸如默认启动项、超时值和内核命令行参数等设置。这第一步对于在验证其应用之前理解预期的 GRUB 配置至关重要。

本文转载于:https://labex.io/zh/tutorials/linux-how-to-check-if-grub-settings-are-applied-in-linux-558789 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注