¿Cómo configuro los parámetros predeterminados del núcleo en CentOS para todos los núcleos existentes y futuros?

9

Me gustaría eliminar los parámetros rhgby del quietkernel que se usan por defecto cuando el kernel se inicia en CentOS 6, pero quiero que esto se aplique a todos los kernel instalados actualmente, así como a todos los kernel instalados en el futuro. Necesito hacer esto desde un script, por lo que editar archivos manualmente no es una opción y cualquier cambio de archivo debe hacerse de la manera más limpia posible.

En Debian / Ubuntu que cambiaría GRUB_CMDLINE_LINUX_DEFAULTen /etc/default/gruby vuelva a ejecutar update-grub. No puedo encontrar un ambiente tan en /etc/sysconfig/grubo /etc/sysconfig/kernelembargo, ni existe un update-grubguión.

mgorven
fuente

Respuestas:

13

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
mgorven
fuente
55
Puede hacer que se aplique a todos los núcleos actuales y futuros utilizando ALL. grubby --update-kernel=ALL --remove-args="rhgb quiet"
benjarrell
En caso de que alguien más tenga problemas para descifrar esto, lo que dice es que cualquier cambio que realice en los parámetros del núcleo se grub.confagregará automáticamente a las actualizaciones del núcleo
ub3rst4r
1

¡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!

usuario146279
fuente