grubby管理linux引导配置

grubby 是一个用于管理 GRUBLILOELILOyaboot 等引导加载程序配置文件的命令行工具。它主要用于更新内核命令行参数、添加或删除内核条目、设置默认启动内核等操作。

grubbyRHEL(Red Hat Enterprise Linux)、FedoraCentOS 等基于 Red Hat 的发行版中广泛使用。


1.grubby常用选项:

  • --info=ALL:显示所有内核条目的信息。
  • --update-kernel=ALL:更新所有内核的配置。
  • --args="参数":添加内核启动参数。
  • --remove-args="参数":删除内核启动参数。
  • --set-default=内核路径:设置默认启动内核。
  • --add-kernel=内核路径:添加一个新的内核条目。
  • --remove-kernel=内核路径:删除一个内核条目。
  • --default-kernel:显示默认内核路径。
  • --default-index:显示默认内核的索引号。

2.grubby命令示例:

2.1 查看所有内核条目的信息

1
grubby --info=ALL
  • 显示所有内核条目的详细信息,包括内核路径、initrd 路径和启动参数。

2.2 更新所有内核的命令行参数

1
grubby --update-kernel=ALL --args="systemd.unified_cgroup_hierarchy=0"
  • 为所有内核添加 systemd.unified_cgroup_hierarchy=0 参数。

2.3 删除内核的命令行参数

1
grubby --update-kernel=ALL --remove-args="systemd.unified_cgroup_hierarchy"
  • 从所有内核中删除 systemd.unified_cgroup_hierarchy 参数。

2.4. 设置默认启动内核

1
grubby --set-default=/boot/vmlinuz-5.14.0-1.el9.x86_64
  • 将指定内核设置为默认启动项。

2.5. 添加一个新的内核条目

1
grubby --add-kernel=/boot/vmlinuz-new --initrd=/boot/initramfs-new.img --title="New Kernel"
  • 添加一个新的内核条目到引导加载程序中。

2.6. 删除一个内核条目

1
grubby --remove-kernel=/boot/vmlinuz-old
  • 从引导加载程序中删除指定的内核条目。

2.7. 查看默认内核

1
grubby --default-kernel
  • 显示当前默认启动的内核路径。

2.8. 查看默认内核的索引

1
grubby --default-index
  • 显示默认内核在引导菜单中的索引号。

2.9. 切换引导加载程序

1
grubby --set-loader=/boot/grub2/grub.cfg
  • 将引导加载程序设置为 GRUB2。

3.适用场景:

  • 系统管理员:管理多内核环境,设置默认启动内核。
  • 开发者:调试内核启动参数。
  • 兼容性调整:修改内核参数以支持特定硬件或软件需求。