En Debian / Ubuntu, grub.cfg
está completamente generado por los scripts y cualquier cambio manual que se realice se bloqueará. Sin embargo, en RHEL / CentOS grub.cfg
se 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.cfg
es grubby
, que se llama /sbin/new-kernel-pkg
cuando se instalan o eliminan los núcleos. El --copy-default
parámetro se pasa grubby
cuando 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.cfg
manualmente y cambiar todas las entradas actuales del núcleo. Sin embargo, puede usar la grubby
modificación grub.cfg
para evitar analizarla o escribir expresiones regulares. Por ejemplo, esto eliminará los parámetros rhgb
y quiet
de 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 vmlinuz
archivos 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.conf
agregará 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