Ricerca nel sito web

Come installare o aggiornare al kernel 5.0 in CentOS 7


Anche se alcuni usano la parola Linux per rappresentare il sistema operativo nel suo complesso, è importante notare che, in senso stretto, Linux è solo il kernel. D'altra parte, una distribuzione è un sistema completamente funzionale costruito sul kernel con un'ampia varietà di strumenti applicativi e librerie.

Durante le normali operazioni, il kernel è responsabile dell'esecuzione di due compiti importanti:

  1. Fungere da interfaccia tra l'hardware e il software in esecuzione sul sistema.
  2. Gestire le risorse di sistema nel modo più efficiente possibile.

Per fare ciò, il kernel comunica con l'hardware attraverso i driver che sono integrati in esso o che possono essere successivamente installati come modulo.

Ad esempio, quando un'applicazione in esecuzione sul tuo computer desidera connettersi a una rete wireless, invia tale richiesta al kernel, che a sua volta utilizza il driver corretto per connettersi alla rete.

Lettura consigliata: Come aggiornare il kernel in Ubuntu

Con l'uscita periodica di nuovi dispositivi e tecnologie, è importante mantenere aggiornato il nostro kernel se vogliamo trarne il massimo. Inoltre, l'aggiornamento del nostro kernel ci aiuterà a sfruttare le nuove funzioni del kernel e a proteggerci dalle vulnerabilità scoperte nelle versioni precedenti.

Pronto per aggiornare il tuo kernel su CentOS 7 o uno dei suoi derivati come RHEL 7 e Fedora? Se è così, continua a leggere!

Passaggio 1: verifica della versione del kernel installata

Quando installiamo una distribuzione include una determinata versione del kernel Linux. Per mostrare la versione corrente installata sul nostro sistema possiamo fare:

uname -sr

L'immagine seguente mostra l'output del comando precedente in un server CentOS 7:

Se ora andiamo su https://www.kernel.org/, vedremo che l'ultima versione del kernel è 5.0 al momento in cui scriviamo (altre versioni sono disponibili nello stesso sito).

Questa nuova versione Kernel 5.0 è una versione a lungo termine e sarà supportata per 6 anni, in precedenza tutte le versioni del kernel Linux erano supportate solo per 2 anni.

Una cosa importante da considerare è il ciclo di vita di una versione del kernel: se la versione che stai attualmente utilizzando si sta avvicinando alla fine del suo ciclo di vita, non verranno più fornite correzioni di bug dopo tale data. Per maggiori informazioni, fare riferimento alla pagina Rilasci del kernel.

Passaggio 2: aggiornamento del kernel in CentOS 7

La maggior parte delle distribuzioni moderne fornisce un modo per aggiornare il kernel utilizzando un sistema di gestione dei pacchetti come yum e un repository supportato ufficialmente.

Importante: se stai cercando di eseguire un kernel compilato personalizzato, dovresti leggere il nostro articolo che spiega come compilare il kernel Linux su CentOS 7 dai sorgenti.

Tuttavia, ciò eseguirà solo l'aggiornamento alla versione più recente disponibile dai repository della distribuzione, non all'ultima disponibile su https://www.kernel.org/. Sfortunatamente, Red Hat consente di aggiornare il kernel solo utilizzando la prima opzione.

A differenza di Red Hat, CentOS consente l'utilizzo di ELRepo, un repository di terze parti che trasforma l'aggiornamento a una versione recente in un kernel.

Per abilitare il repository ELRepo su CentOS 7, eseguire:

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 volta abilitato il repository, puoi utilizzare il seguente comando per elencare i pacchetti kernel.parent disponibili:


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

Successivamente, installa l'ultimo kernel stabile della linea principale:


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!

Infine, riavvia la tua macchina per applicare il kernel più recente, quindi seleziona il kernel più recente dal menu come mostrato.

Accedi come root ed esegui il comando seguente per verificare la versione del kernel:

uname -sr

Passaggio 3: impostare la versione predefinita del kernel in GRUB

Per rendere la versione appena installata l'opzione di avvio predefinita, dovrai modificare la configurazione di GRUB come segue:

Apri e modifica il file /etc/default/grub e imposta GRUB_DEFAULT=0. Ciò significa che il primo kernel nella schermata iniziale di GRUB verrà utilizzato come predefinito.

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"

Successivamente, esegui il comando seguente per ricreare la configurazione 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

Riavvia e verifica che il kernel più recente sia ora utilizzato per impostazione predefinita.

Congratulazioni! Hai aggiornato il tuo kernel in CentOS 7!

Riepilogo

In questo articolo abbiamo spiegato come aggiornare facilmente il kernel Linux sul tuo sistema. Esiste ancora un altro metodo che non abbiamo trattato in quanto prevede la compilazione del kernel dal sorgente, che meriterebbe un intero libro e non è consigliato sui sistemi di produzione.

Sebbene rappresenti una delle migliori esperienze di apprendimento e consenta una configurazione a grana fine del kernel, potresti rendere il tuo sistema inutilizzabile e potresti doverlo reinstallare da zero.

Se sei ancora interessato a costruire il kernel come esperienza di apprendimento, troverai istruzioni su come farlo nella pagina Kernel Newbies.

Come sempre, non esitate a utilizzare il modulo sottostante se avete domande o commenti su questo articolo.