Búsqueda de sitios web

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


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

Durante las operaciones normales, el kernel es responsable de realizar dos tareas importantes:

  1. Actuar como interfaz entre el hardware y el software que se ejecuta en el sistema.
  2. Gestionar los recursos del sistema de la manera más eficiente posible.

Para ello, el kernel se comunica con el hardware a través de los controladores que lleva integrados o los que posteriormente se pueden instalar como 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.

Lectura sugerida: Cómo actualizar el kernel en Ubuntu

Con nuevos dispositivos y tecnología que aparecen periódicamente, es importante mantener nuestro kernel actualizado si queremos aprovecharlos al máximo. Además, actualizar nuestro kernel nos ayudará a aprovechar nuevas funciones del kernel y a protegernos de 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: verificar la versión del kernel instalada

Cuando instalamos una distribución esta incluye una determinada 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 (hay otras versiones disponibles en el mismo sitio).

Esta nueva versión del Kernel 5.0 es una versión a largo plazo y tendrá soporte durante 6 años; anteriormente, todas las versiones del Kernel de Linux tenían soporte solo 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 al final de su vida útil, no se proporcionarán más correcciones de errores después de esa fecha. Para obtener más información, consulte la página de lanzamientos del kernel.

Paso 2: Actualizar el kernel en CentOS 7

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

Importante: Si desea ejecutar un kernel compilado personalizado, debería leer nuestro artículo que explica cómo compilar el kernel de Linux en CentOS 7 a partir de fuentes.

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

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 kernel.

Para habilitar el repositorio ELRepo en CentOS 7, haga:

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 enumerar los paquetes kernel. related disponibles:


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

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 kernel estable principal:


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

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, reinicie su máquina para aplicar el kernel más reciente y luego seleccione el kernel más reciente 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 que la versión recién instalada sea la opción de arranque predeterminada, deberá modificar la configuración de GRUB de la siguiente manera:

Abra y edite el archivo /etc/default/grub y establezca GRUB_DEFAULT=0. Esto significa que el primer núcleo en la pantalla inicial de GRUB se utilizará de forma predeterminada.

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 recrear la configuración del kernel.


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

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 ahora se esté utilizando el kernel más reciente de forma predeterminada.

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

Resumen

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

Aunque representa una de las mejores experiencias de aprendizaje y permite una configuración detallada del kernel, es posible que su sistema quede inutilizable y que tenga que reinstalarlo desde cero.

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

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