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"grub.confagregará automáticamente a las actualizaciones del núcleo¡Encontramos una solución para CentOS! ñam utiliza sucio mismo! (¡strace, gracias!) grubby tiene la opción "--copy-default" y creo que yum corre sucio con él. Entonces, lo único que debe hacer es agregar en grub.conf todas las opciones de kernel que necesita para actualizar el kernel predeterminado y reiniciar. ¡Después de reiniciar puedes instalar un nuevo núcleo!
fuente