Actualización del núcleo de CentOS a la última versión
Esta guía explica cómo instalar un kernel más reciente en CentOS 7 utilizando el repositorio ELRepo.
ELRepo dejó de ofrecer soporte para el7 en julio de 2024. El procedimiento descrito en esta guía ya no funciona. Esta guía se conserva como material de archivo.
Si todavía utiliza CentOS 7, considere migrar a AlmaLinux 8 mediante la herramienta Elevate.
Elegir una variante del kernel
ELRepo proporciona dos variantes del kernel:
kernel-ml instala el kernel mainline, que sigue las versiones más recientes de Linux upstream. Recibe rápidamente nuevas funciones y mejoras, pero puede introducir problemas de compatibilidad con controladores o cargas de trabajo de producción.
kernel-lt instala un kernel con soporte a largo plazo, que prioriza la estabilidad frente a las nuevas funciones. Esta es la opción recomendada para servidores de producción.
Actualizar el sistema e instalar ELRepo
Actualice los paquetes instalados:
yum -y update
Importe la clave GPG de ELRepo e instale el repositorio:
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org rpm -Uvh https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
Compruebe que el repositorio se haya añadido correctamente:
yum repolist | grep elrepo
Limpie la caché de yum:
yum clean all
Instalar el nuevo kernel
Para instalar el kernel con soporte a largo plazo (recomendado para producción):
yum --enablerepo=elrepo-kernel install kernel-lt kernel-lt-headers kernel-lt-tools kernel-lt-tools-libs
Para instalar el kernel mainline en su lugar:
yum --enablerepo=elrepo-kernel install kernel-ml kernel-ml-headers kernel-ml-tools kernel-ml-tools-libs
Compruebe que los paquetes del kernel se hayan instalado:
rpm -qa | grep '^kernel-'
Establecer el nuevo kernel como predeterminado
Enumere todos los kernels instalados junto con su orden de arranque:
grubby --info=ALL | grep -E 'title|kernel'
Al kernel más reciente normalmente se le asigna el índice 0, pero verifique el orden antes de establecerlo como predeterminado. Establezca el kernel predeterminado mediante el índice:
grubby --set-default=0
O mediante la ruta completa del kernel para mayor fiabilidad:
grubby --set-default /boot/vmlinuz-<version>
Reemplace <version> por la cadena de versión real que aparece en la salida de grubby --info=ALL.
Verifique el kernel predeterminado:
grubby --default-kernel grub2-editenv list
Si Secure Boot está habilitado en BIOS/UEFI, es posible que los kernels de terceros de ELRepo no puedan arrancar. Deshabilite Secure Boot antes de reiniciar.
Reiniciar y verificar
Reinicie el servidor:
reboot
Una vez que el sistema vuelva a iniciarse, compruebe la versión del kernel en ejecución:
uname -r
Eliminar kernels antiguos
Una vez confirmado que el nuevo kernel funciona correctamente, elimine las versiones anteriores para liberar espacio en disco. La opción --count=2 conserva los dos kernels más recientes como respaldo:
yum install -y yum-utils package-cleanup --oldkernels --count=2
Reversión de emergencia
Si el nuevo kernel no arranca, seleccione el kernel anterior en el menú de GRUB durante el inicio. Después de arrancar con el kernel antiguo, vuelva a establecerlo como predeterminado:
grubby --set-default=1 reboot
Reemplace 1 por el índice del kernel que funciona, según la salida de grubby --info=ALL.