Com instal·lar o actualitzar al nucli 5.0 a CentOS 7


Tot i que algunes persones fan servir la paraula Linux per representar el sistema operatiu en conjunt, és important tenir en compte que, en sentit estricte, Linux és només el nucli. D'altra banda, una distribució és un sistema totalment funcional construït sobre el nucli amb una gran varietat d'eines d'aplicació i biblioteques.

Durant les operacions normals, el nucli és responsable de realitzar dues tasques importants:

  1. Actuar com a interfície entre el maquinari i el programari que s'executa al sistema.
  2. Gestionar els recursos del sistema de la manera més eficient possible.

Per fer-ho, el nucli es comunica amb el maquinari a través dels controladors que hi ha incorporats o els que posteriorment es poden instal·lar com a mòdul.

Per exemple, quan una aplicació que s'executa a la vostra màquina vol connectar-se a una xarxa sense fil, envia aquesta sol·licitud al nucli, que al seu torn utilitza el controlador adequat per connectar-se a la xarxa.

Amb nous dispositius i tecnologia que surten periòdicament, és important mantenir el nostre nucli actualitzat si volem treure'n el màxim profit. A més, actualitzar el nostre nucli ens ajudarà a aprofitar noves funcions del nucli i a protegir-nos de les vulnerabilitats que s'han descobert en versions anteriors.

Esteu preparat per actualitzar el vostre nucli a CentOS 7 o un dels seus derivats com RHEL 7 i Fedora? Si és així, segueix llegint!

Pas 1: Comprovació de la versió del nucli instal·lada

Quan instal·lem una distribució inclou una versió determinada del nucli Linux. Per mostrar la versió actual instal·lada al nostre sistema podem fer:

# uname -sr

La imatge següent mostra la sortida de l'ordre anterior en un servidor CentOS 7:

Si ara anem a https://www.kernel.org/, veurem que l'última versió del nucli és la 5.0 en el moment d'escriure aquest article (altres versions estan disponibles al mateix lloc).

Aquesta nova versió del nucli 5.0 és una versió a llarg termini i serà compatible durant 6 anys, abans totes les versions del nucli de Linux només eren suportades durant 2 anys.

Una cosa important a tenir en compte és el cicle de vida d'una versió del nucli: si la versió que utilitzeu actualment s'acosta al final de la seva vida útil, no es proporcionaran més correccions d'errors després d'aquesta data. Per obtenir més informació, consulteu la pàgina de versions del nucli.

Pas 2: Actualització del nucli a CentOS 7

La majoria de distribucions modernes ofereixen una manera d'actualitzar el nucli mitjançant un sistema de gestió de paquets com ara yum i un repositori amb suport oficial.

Important: si voleu executar el nucli compilat personalitzat, hauríeu de llegir el nostre article que explica Com compilar el nucli de Linux a CentOS 7 a partir de fonts.

Tanmateix, això només realitzarà l'actualització a la versió més recent disponible als repositoris de la distribució, no a l'última disponible a https://www.kernel.org/. Malauradament, Red Hat només permet actualitzar el nucli utilitzant l'opció anterior.

A diferència de Red Hat, CentOS permet l'ús d'ELRepo, un dipòsit de tercers que fa que l'actualització a una versió recent sigui un nucli.

Per habilitar el dipòsit ELRepo a CentOS 7, feu el següent:

# 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 

Un cop habilitat el dipòsit, podeu utilitzar l'ordre següent per llistar els paquets disponibles relacionats amb kernel.

# 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ó, instal·leu el darrer nucli estable de la línia 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!

Finalment, reinicieu la vostra màquina per aplicar el nucli més recent i, a continuació, seleccioneu el nucli més recent al menú tal com es mostra.

Inicieu sessió com a root i executeu l'ordre següent per comprovar la versió del nucli:

# uname -sr

Pas 3: establiu la versió predeterminada del nucli a GRUB

Per fer que la versió recentment instal·lada sigui l'opció d'arrencada per defecte, haureu de modificar la configuració de GRUB de la següent manera:

Obriu i editeu el fitxer /etc/default/grub i configureu GRUB_DEFAULT=0. Això vol dir que el primer nucli de la pantalla inicial de GRUB s'utilitzarà per defecte.

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ó, executeu l'ordre següent per recrear la configuració del nucli.

# 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

Reinicieu i comproveu que el nucli més recent s'està utilitzant de manera predeterminada.

Felicitats! Heu actualitzat el vostre nucli a CentOS 7!

En aquest article hem explicat com actualitzar fàcilment el nucli Linux al vostre sistema. Hi ha un altre mètode que no hem tractat, ja que consisteix a compilar el nucli des de la font, que mereixeria un llibre sencer i no es recomana als sistemes de producció.

Tot i que representa una de les millors experiències d'aprenentatge i permet una configuració precisa del nucli, és possible que el vostre sistema no es pugui utilitzar i haureu de reinstal·lar-lo des de zero.

Si encara esteu interessats a construir el nucli com a experiència d'aprenentatge, trobareu instruccions sobre com fer-ho a la pàgina de principiants del nucli.

Com sempre, no dubteu a utilitzar el formulari següent si teniu cap pregunta o comentari sobre aquest article.