En Debian / Ubuntu, grub.cfgestá completamente generado por los scripts y cualquier cambio manual que se realice se bloqueará. Sin embargo, en RHEL / CentOS grub.cfgse modifica mediante scripts, pero los cambios manuales persisten, y en realidad es la ubicación canónica para ciertas configuraciones.
La herramienta que administra grub.cfges grubby, que se llama /sbin/new-kernel-pkgcuando se instalan o eliminan los núcleos. El --copy-defaultparámetro se pasa grubbycuando se instala un nuevo núcleo, lo que hace que copie los parámetros del núcleo del núcleo predeterminado actual. Por lo tanto, la configuración de los parámetros predeterminados del núcleo para los núcleos instalados en el futuro se realiza editando la entrada para el núcleo predeterminado en grub.cfg.
Si no estaba automatizando esto, simplemente podría editar grub.cfgmanualmente y cambiar todas las entradas actuales del núcleo. Sin embargo, puede usar la grubbymodificación grub.cfgpara evitar analizarla o escribir expresiones regulares. Por ejemplo, esto eliminará los parámetros rhgby quietde la versión de kernel especificada.
# grubby --update-kernel=/boot/vmlinuz-2.6.32-220.13.1.el6.x86_64 --remove-args="rhgb quiet"
Sin embargo, no parece haber una opción para enumerar los núcleos configurados actualmente, por lo que tendrá que descubrirlos de otra manera. Una opción es simplemente buscar vmlinuzarchivos en /boot/:
#!/bin/sh
for KERNEL in /boot/vmlinuz-*; do
grubby --update-kernel="$KERNEL" --remove-args="rhgb quiet"
done
ALL.grubby --update-kernel=ALL --remove-args="rhgb quiet"