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
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
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
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
for KERNEL in /boot/vmlinuz-*; do
grubby --update-kernel="$KERNEL" --remove-args="rhgb quiet"