Cómo instalar o actualizar a Kernel 5.0 en CentOS 7


Aunque algunas personas usan la palabra Linux para representar el sistema operativo en su conjunto, es importante tener en cuenta que, estrictamente hablando, Linux es solo el núcleo. Por otro lado, una distribución es un sistema completamente funcional construido sobre el kernel con una amplia variedad de herramientas de aplicación y bibliotecas.

Durante las operaciones normales, el núcleo es responsable de realizar dos tareas importantes:

  1. Acting as an interface between the hardware and the software running on the system.
  2. Managing system resources as efficiently as possible.

Para hacer esto, el kernel se comunica con el hardware a través de los controladores que están incorporados en él o aquellos que se pueden instalar posteriormente como un módulo.

Por ejemplo, cuando una aplicación que se ejecuta en su máquina quiere conectarse a una red inalámbrica, envía esa solicitud al kernel, que a su vez utiliza el controlador correcto para conectarse a la red.

Con la publicación periódica de nuevos dispositivos y tecnologías, es importante mantener actualizado nuestro kernel si queremos aprovecharlos al máximo. Además, la actualización de nuestro kernel nos ayudará a aprovechar las nuevas funciones del kernel y a protegernos de las vulnerabilidades descubiertas en versiones anteriores.

¿Listo para actualizar su kernel en CentOS 7 o uno de sus derivados como RHEL 7 y Fedora ? Si es así, sigue leyendo!

Paso 1: Verificando la versión instalada del kernel

Cuando instalamos una distribución, incluye una cierta versión del kernel de Linux. Para mostrar la versión actual instalada en nuestro sistema podemos hacer:

# uname -sr

La siguiente imagen muestra el resultado del comando anterior en un servidor CentOS 7 :

Si ahora vamos a https://www.kernel.org/, veremos que la última versión del kernel es 5.0 en el momento de escribir este artículo (otras versiones están disponibles en el mismo sitio).

Esta nueva versión de Kernel 5.0 es una versión a largo plazo y será compatible durante 6 años; antes, todas las versiones de Linux Kernel solo se admitían durante 2 años.

Una cosa importante a considerar es el ciclo de vida de una versión del kernel: si la versión que está utilizando actualmente se acerca a su fin de vida, no se proporcionarán más correcciones de errores después de esa fecha. Para más información, consulte la página de lanzamientos del kernel.

Paso 2: Actualización del Kernel en CentOS 7

La mayoría de las distribuciones modernas proporcionan una forma de actualizar el kernel utilizando un sistema de gestión de paquetes como yum y un repositorio con soporte oficial.

rojo

Sin embargo, esto solo realizará la actualización a la versión más reciente disponible desde los repositorios de la distribución, no la última disponible en https://www.kernel.org/. Desafortunadamente, Red Hat solo permite actualizar el kernel usando la primera opción.

A diferencia de Red Hat , CentOS permite el uso de ELRepo , un repositorio de terceros que convierte la actualización a una versión reciente en un núcleo.

Para habilitar el repositorio de ELRepo en CentOS 7, haga lo siguiente:

# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm 

Una vez que se haya habilitado el repositorio, puede usar el siguiente comando para listar los paquetes kernel.related disponibles:

# yum --disablerepo="*" --enablerepo="elrepo-kernel" list available

Yum - Buscar versiones disponibles del kernel

Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * elrepo-kernel: mirror-hk.koddos.net
Available Packages
kernel-lt.x86_64                        4.4.176-1.el7.elrepo        elrepo-kernel
kernel-lt-devel.x86_64                  4.4.176-1.el7.elrepo        elrepo-kernel
kernel-lt-doc.noarch                    4.4.176-1.el7.elrepo        elrepo-kernel
kernel-lt-headers.x86_64                4.4.176-1.el7.elrepo        elrepo-kernel
kernel-lt-tools.x86_64                  4.4.176-1.el7.elrepo        elrepo-kernel
kernel-lt-tools-libs.x86_64             4.4.176-1.el7.elrepo        elrepo-kernel
kernel-lt-tools-libs-devel.x86_64       4.4.176-1.el7.elrepo        elrepo-kernel
kernel-ml.x86_64                        5.0.0-1.el7.elrepo          elrepo-kernel
kernel-ml-devel.x86_64                  5.0.0-1.el7.elrepo          elrepo-kernel
kernel-ml-doc.noarch                    5.0.0-1.el7.elrepo          elrepo-kernel
kernel-ml-headers.x86_64                5.0.0-1.el7.elrepo          elrepo-kernel
kernel-ml-tools.x86_64                  5.0.0-1.el7.elrepo          elrepo-kernel
kernel-ml-tools-libs.x86_64             5.0.0-1.el7.elrepo          elrepo-kernel
kernel-ml-tools-libs-devel.x86_64       5.0.0-1.el7.elrepo          elrepo-kernel
perf.x86_64                             5.0.0-1.el7.elrepo          elrepo-kernel
python-perf.x86_64                      5.0.0-1.el7.elrepo          elrepo-kernel

A continuación, instale el último núcleo estable de la línea principal:

# yum --enablerepo=elrepo-kernel install kernel-ml

Instalar Kernel 5.0 en CentOS 7

Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: centos.mirror.net.in
 * elrepo: mirror-hk.koddos.net
 * elrepo-kernel: mirror-hk.koddos.net
 * epel: repos.del.extreme-ix.org
 * extras: centos.mirror.net.in
 * updates: centos.mirror.net.in
Resolving Dependencies
--> Running transaction check
---> Package kernel-ml.x86_64 0:5.0.0-1.el7.elrepo will be installed
--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================
 Package                Arch        Version                 Repository        Size
====================================================================================
Installing:
 kernel-ml              x86_64      5.0.0-1.el7.elrepo      elrepo-kernel     47 M

Transaction Summary
====================================================================================
Install  1 Package

Total download size: 47 M
Installed size: 215 M
Is this ok [y/d/N]: y
Downloading packages:
kernel-ml-5.0.0-1.el7.elrepo.x86_64.rpm                           |  47 MB  00:01:21     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : kernel-ml-5.0.0-1.el7.elrepo.x86_64                1/1 
  Verifying  : kernel-ml-5.0.0-1.el7.elrepo.x86_64                1/1 

Installed:
  kernel-ml.x86_64 0:5.0.0-1.el7.elrepo                                                                                                                                                                            

Complete!

Finalmente, reiniciar su máquina para aplicar el último kernel, y luego seleccione el último kernel en el menú como se muestra.

Inicie sesión como root y ejecute el siguiente comando para verificar la versión del kernel:

# uname -sr

Paso 3: Establecer la versión predeterminada del kernel en GRUB

Para hacer que la versión recién instalada sea la opción de inicio predeterminada, tendrá que modificar la configuración de GRUB de la siguiente manera:

Abra y edite el archivo /etc/default/grub y configure GRUB_DEFAULT = 0 . Esto significa que el primer kernel en la pantalla inicial de GRUB se usará por defecto.

GRUB_TIMEOUT=5
GRUB_DEFAULT=0
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root rd.lvm.lv=centos/swap crashkernel=auto rhgb quiet"
GRUB_DISABLE_RECOVERY="true"

A continuación, ejecute el siguiente comando para volver a crear la configuración del kernel.

# grub2-mkconfig -o /boot/grub2/grub.cfg

Establecer versión de kernel predeterminada en Grub

Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.0.0-1.el7.elrepo.x86_64
Found initrd image: /boot/initramfs-5.0.0-1.el7.elrepo.x86_64.img
Found linux image: /boot/vmlinuz-4.20.0-1.el7.elrepo.x86_64
Found initrd image: /boot/initramfs-4.20.0-1.el7.elrepo.x86_64.img
Found linux image: /boot/vmlinuz-4.19.11-1.el7.elrepo.x86_64
Found initrd image: /boot/initramfs-4.19.11-1.el7.elrepo.x86_64.img
Found linux image: /boot/vmlinuz-4.19.0-1.el7.elrepo.x86_64
Found initrd image: /boot/initramfs-4.19.0-1.el7.elrepo.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-957.1.3.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-957.1.3.el7.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-693.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-693.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-1e2b46dbc0c04b05b592c837c366bb76
Found initrd image: /boot/initramfs-0-rescue-1e2b46dbc0c04b05b592c837c366bb76.img
done

Reinicie y verifique que el último kernel se esté utilizando de forma predeterminada.

¡Felicidades! ¡Has actualizado tu kernel en CentOS 7 !

En este artículo, hemos explicado cómo actualizar fácilmente el kernel de Linux en su sistema. Todavía hay otro método que no hemos cubierto, ya que implica compilar el núcleo desde la fuente, que merecería un libro completo y no se recomienda en sistemas de producción.

Si bien representa una de las mejores experiencias de aprendizaje y permite una configuración detallada del núcleo, puede inutilizar su sistema y puede tener que volver a instalarlo desde cero.

Si aún está interesado en construir el kernel como una experiencia de aprendizaje, encontrará instrucciones sobre cómo hacerlo en la página de Kernel Newbies.

Como siempre, no dude en utilizar el siguiente formulario si tiene alguna pregunta o comentario sobre este artículo.