¿Qué es el Kernel?
El núcleo o kernel, es un software fundamental del sistema operativo. Es el responsable de habilitar el hardware y gestionar los recursos de la computadora. Algunos sistemas operativos populares que utilizan el kernel de Linux son; Ubuntu, CentOS y Debian.En este artículo, mostraré cómo actualizar el kernel de CentOS 7, a la última versión, usando el repositorio de ELRepo.
CentOS 7, está usando la versión 3.10 como versión predeterminada y se actualizará a la última versión estable, actualmente, 4.18.11.
¿Qué es ELRepo?
ELRepo, es un repositorio de la comunidad Enterprise Linux, que ofrece soporte para RedHat Enterprise (RHEL) y otras distribuciones basada en él (CentOS, Scientific, Fedora, etc.).
ELRepo, se centra en los paquetes relacionados con el hardware, incluidos los controladores del sistema de archivos, los controladores gráficos, los controladores de red, los controladores de tarjetas de sonido, las cámaras web y otros.
yum -y update
Después, instalar Fastest Mirror para agilizar el proceso de actualización e instalación
yum -y install yum-plugin-fastestmirror
cat /etc/redhat-release
cat /etc/os-release
Mostrará la siguiente información del sistema:
Para verificar la versión del kernel, también se puede usar el comando uname .
uname -msr
La salida mostrará la versión del kernel de Linux, así como, la arquitectura del sistema.
Agregar la clave gpg de ELRepo.
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
Ahora agregar el nuevo repositorio con el comando rpm.
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
A continuación, verificar todos los repositorios habilitados en el sistema y asegurarse de que ELRepo está en la lista.
yum repolist
El repositorio ELRepo se ha agregado a CentOS 7.
Ejecutar este comando:
yum --enablerepo=elrepo-kernel install kernel-ml
--enablerepo, es una opción para habilitar un repositorio específico en el sistema CentOS. Por defecto, el repositorio "elrepo" está habilitado, pero en este caso, necesitamos "elrepo-kernel".
Verificar todas las versiones disponibles del kernel con el comando awk.
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
La salida, mostrará que tenemos varias versiones.
Para usar el kernel 4.18 como predeterminado, ejecutar este comando:
sudo grub2-set-default 0
En el comando "awk", el 0 indica el primer Kernel de la lista; Kernel 4.18.11= 0, Kernel 3.10 = 1 y así sucesivamente. Para volver al Kernel anterior, hay que modificar este valor en el Grub2 con el comando grub2-set-default 1.
A continuación, generar la configuración de Grub2 con el comando "gurb2-mkconfig" y reiniciar el servidor.
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
sudo reboot
Después, iniciar sesión en el servidor y verificar el Kernel actual del sistema.
uname -msr
El resultado debería ser que la versión 4.18.11 del kernel se esté utilizando en el sistema.
Cómo eliminar un Kernel antiguo en CentOS 7.
Esto se puede hacer cuando tenemos varias versiones de Kernel instaladas en el servidor.
Para este propósito, necesitamos instalar la utilidad yum-utils desde el repositorio.
yum install yum-utils
Ahora limpiar el Kernel antiguo con el siguiente comando.
package-cleanup --oldkernels
Si la salida muestra este resultado:
Eso significa que solo has instalado 2 o 3 versiones del kernel y son necesarias como respaldo de seguridad. Si hay más de 3 versiones, el comando eliminará automáticamente el núcleo más antiguo del sistema.
Cómo actualizar el kernel de CentOS 7
1. Actualizar repositorio y paquetes de CentOS 7
Primero hay que actualizar el repositorio y todos los paquetes con el comando yum.yum -y update
Después, instalar Fastest Mirror para agilizar el proceso de actualización e instalación
yum -y install yum-plugin-fastestmirror
2. Comprobar la versión del kernel
Comprobar la versión de CentOS con estos comandos.cat /etc/redhat-release
cat /etc/os-release
Mostrará la siguiente información del sistema:
Para verificar la versión del kernel, también se puede usar el comando uname .
uname -msr
La salida mostrará la versión del kernel de Linux, así como, la arquitectura del sistema.
3. Añadir el repositorio de ELRepo
Como vamos a usar la versión del kernel de la comunidad ELRepo, es necesario agregar el nuevo repositorio de ELRepo.Agregar la clave gpg de ELRepo.
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
Ahora agregar el nuevo repositorio con el comando rpm.
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
A continuación, verificar todos los repositorios habilitados en el sistema y asegurarse de que ELRepo está en la lista.
yum repolist
El repositorio ELRepo se ha agregado a CentOS 7.
4. Instalar la versión nueva del Kernel
Ahora ya podemos instalar la última versión del kernel (4.18.11 en la actualidad) desde el repositorio de ELRepo.Ejecutar este comando:
yum --enablerepo=elrepo-kernel install kernel-ml
--enablerepo, es una opción para habilitar un repositorio específico en el sistema CentOS. Por defecto, el repositorio "elrepo" está habilitado, pero en este caso, necesitamos "elrepo-kernel".
5. Configurar Grub2 en CentOS 7
Después de instalar el Kernel, es necesario configurar, en el arranque de la máquina, cual es el Kernel predeterminado para iniciar el sistema.Verificar todas las versiones disponibles del kernel con el comando awk.
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
La salida, mostrará que tenemos varias versiones.
Para usar el kernel 4.18 como predeterminado, ejecutar este comando:
sudo grub2-set-default 0
En el comando "awk", el 0 indica el primer Kernel de la lista; Kernel 4.18.11= 0, Kernel 3.10 = 1 y así sucesivamente. Para volver al Kernel anterior, hay que modificar este valor en el Grub2 con el comando grub2-set-default 1.
A continuación, generar la configuración de Grub2 con el comando "gurb2-mkconfig" y reiniciar el servidor.
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
sudo reboot
Después, iniciar sesión en el servidor y verificar el Kernel actual del sistema.
uname -msr
El resultado debería ser que la versión 4.18.11 del kernel se esté utilizando en el sistema.
6. Eliminar el Kernel antiguo (opcional)
Este es un paso opcional para liberar espacio.Cómo eliminar un Kernel antiguo en CentOS 7.
Esto se puede hacer cuando tenemos varias versiones de Kernel instaladas en el servidor.
Para este propósito, necesitamos instalar la utilidad yum-utils desde el repositorio.
yum install yum-utils
Ahora limpiar el Kernel antiguo con el siguiente comando.
package-cleanup --oldkernels
Si la salida muestra este resultado:
Eso significa que solo has instalado 2 o 3 versiones del kernel y son necesarias como respaldo de seguridad. Si hay más de 3 versiones, el comando eliminará automáticamente el núcleo más antiguo del sistema.