kk Blog —— 通用基础

date [-d @int|str] [+%s|"+%F %T"]

grubby edit centos grub args

In Debian/Ubuntu, grub.cfg is fully generated by scripts and any manual changes made to it will be clobbered. In RHEL/CentOS however, grub.cfg is modified by scripts but manual changes are persisted, and is actually the canonical location for certain settings.

The tool which manages grub.cfg is grubby, which is called by /sbin/new-kernel-pkg when kernels are installed or removed. The –copy-default parameter is passed to grubby when a new kernel is installed, which causes it to copy the kernel parameters from the current default kernel. Setting the default kernel parameters for future-installed kernels is therefore done by editing the entry for the default kernel in grub.cfg.

If you weren’t automating this you could simply edit grub.cfg manually and change all the current kernel entries. However, you can use grubby to modify grub.cfg in order to avoid parsing it or writing regular expressions. For example, this will remove the rhgb and quiet parameters from the specified kernel version.

$ grubby --update-kernel=/boot/vmlinuz-2.6.32-220.13.1.el6.x86_64 --remove-args="rhgb quiet"

There doesn’t seem to be an option to list the currently configured kernels however, so you’ll have to discover these another way. One option is to just look for vmlinuz files in /boot/:

for KERNEL in /boot/vmlinuz-*; do
	grubby --update-kernel="$KERNEL" --remove-args="rhgb quiet"