补充说明
grubby 是 RHEL/CentOS/Fedora 提供的引导配置工具,用于查看默认启动内核、增删内核条目、修改内核命令行参数。它直接操作 GRUB 配置(BIOS 下为 /boot/grub2/grub.cfg,UEFI 下为 /boot/efi/EFI/<发行版>/grub.cfg),无需手工编辑文件。
相比 grub-mkconfig,grubby 的修改更“增量”:它只改动目标内核条目,不会重建整个菜单,适合脚本化运维,例如内核升级后自动追加 audit=1、修改 crashkernel=、切换默认内核。
注意:不同版本参数略有差异,新版本(RHEL 9 起)用 --set-default 等更明确的选项,旧版本依赖 --default。修改前先 --info=ALL 备份当前状态,避免把系统引导改坏。
语法
grubby [选项]
选项
--info=ALL:显示所有内核条目及其参数--default=路径:把指定内核设为默认(旧式写法)--set-default=路径:把指定内核设为默认(新式写法)--default-index=编号:按索引设置默认条目--default-title=标题:按菜单标题设置默认条目--add-kernel=路径:新增一个内核条目--remove-kernel=路径:删除内核条目--update-kernel=ALL|路径:更新指定内核条目的参数--args=参数:配合--update-kernel追加内核参数--remove-args=参数:配合--update-kernel删除内核参数--copy-default:新增条目时复制当前默认条目的参数--boot-dir=目录:指定/boot位置
实例
# 查看所有内核条目与启动参数
sudo grubby --info=ALL
# 查看当前默认内核
sudo grubby --default-kernel
sudo grubby --default-index
# 把指定内核设为默认
sudo grubby --set-default=/boot/vmlinuz-5.14.0-362.el9.x86_64
# 为所有内核追加参数
sudo grubby --update-kernel=ALL --args="audit=1"
# 删除某个参数
sudo grubby --update-kernel=ALL --remove-args="rhgb quiet"
# 仅为指定内核添加参数
sudo grubby --update-kernel=/boot/vmlinuz-$(uname -r) --args="nohz=off"
修改后可用 cat /proc/cmdline 确认当前启动参数,重启后再核对一次。Debian/Ubuntu 没有 grubby,应改用 /etc/default/grub 配合 update-grub。