Cum se instalează sau se face upgrade la Kernel 5.0 în CentOS 7


Deși unii oameni folosesc cuvântul Linux pentru a reprezenta sistemul de operare ca întreg, este important de reținut că, strict vorbind, Linux este doar nucleul. Pe de altă parte, o distribuție este un sistem complet funcțional construit pe partea superioară a nucleului, cu o mare varietate de instrumente de aplicație și biblioteci.

În timpul operațiunilor normale, nucleul este responsabil pentru îndeplinirea a două sarcini importante:

  1. Acționează ca o interfață între hardware și software care rulează pe sistem.
  2. Gestionarea resurselor sistemului cât mai eficient posibil.

Pentru a face acest lucru, nucleul comunică cu hardware-ul prin driverele care sunt încorporate în el sau cele care pot fi instalate ulterior ca modul.

De exemplu, atunci când o aplicație care rulează pe mașina dvs. dorește să se conecteze la o rețea fără fir, trimite acea cerere kernel-ului, care, la rândul său, folosește driverul potrivit pentru a se conecta la rețea.

Lectură sugerată: Cum să actualizați Kernel-ul în Ubuntu

Cu noi dispozitive și tehnologii care apar periodic, este important să ne menținem kernel-ul la zi dacă dorim să profităm la maximum de ele. În plus, actualizarea nucleului ne va ajuta să folosim noile funcții ale nucleului și să ne protejăm de vulnerabilitățile care au fost descoperite în versiunile anterioare.

Sunteți gata să vă actualizați nucleul pe CentOS 7 sau pe unul dintre derivatele acestora, cum ar fiRHEL 7 și Fedora? Dacă da, continuă să citești!

Pasul 1: Verificarea versiunii Kernel instalate

Când instalăm o distribuție, aceasta include o anumită versiune a nucleului Linux. Pentru a afișa versiunea curentă instalată pe sistemul nostru putem face:

uname -sr

Următoarea imagine arată rezultatul comenzii de mai sus pe un server CentOS 7:

Dacă mergem acum la https://www.kernel.org/, vom vedea că cea mai recentă versiune de kernel este 5.0 la momentul scrierii acestui articol (alte versiuni sunt disponibile pe același site).

Această nouă versiune Kernel 5.0 este o versiune pe termen lung și va fi acceptată timp de 6 ani, anterior toate versiunile Linux Kernel au fost acceptate doar pentru 2 ani.

Un lucru important de luat în considerare este ciclul de viață al unei versiuni de kernel – dacă versiunea pe care o utilizați în prezent se apropie de sfârșitul vieții, nu vor mai fi remediate erori după acea dată. Pentru mai multe informații, consultați pagina Versiuni kernel.

Pasul 2: Actualizarea kernelului în CentOS 7

Cele mai multe distribuții moderne oferă o modalitate de a actualiza nucleul folosind un sistem de gestionare a pachetelor, cum ar fi yum și un depozit acceptat oficial.

Important: dacă doriți să rulați Kernel-ul compilat personalizat, atunci ar trebui să citiți articolul nostru care explică Cum să compilați kernelul Linux pe CentOS 7 din surse.

Cu toate acestea, aceasta va efectua doar upgrade-ul la cea mai recentă versiune disponibilă din depozitele distribuției – nu la cea mai recentă disponibilă în https://www.kernel.org/. Din păcate, Red Hat permite doar upgrade-ul kernel-ului utilizând prima opțiune.

Spre deosebire de Red Hat, CentOS permite utilizarea ELRepo, un depozit terță parte care face ca upgrade-ul la o versiune recentă să fie un nucleu.

Pentru a activa depozitul ELRepo pe CentOS 7, faceți:

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 

Odată ce depozitul a fost activat, puteți utiliza următoarea comandă pentru a lista pachetele disponibile kernel.related:


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

Apoi, instalați cel mai recent nucleu stabil 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!

În cele din urmă, reporniți mașina dvs. pentru a aplica cel mai recent nucleu, apoi selectați cel mai recent nucleu din meniu, așa cum se arată.

Conectați-vă ca root și rulați următoarea comandă pentru a verifica versiunea kernel-ului:

uname -sr

Pasul 3: Setați versiunea implicită a kernelului în GRUB

Pentru a face din versiunea nou instalată opțiunea de pornire implicită, va trebui să modificați configurația GRUB după cum urmează:

Deschideți și editați fișierul /etc/default/grub și setați GRUB_DEFAULT=0. Aceasta înseamnă că primul nucleu din ecranul inițial GRUB va fi folosit implicit.

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"

Apoi, rulați următoarea comandă pentru a recrea configurația kernelului.


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

Reporniți și verificați dacă cel mai recent kernel este utilizat în mod implicit.

Felicitări! V-ați actualizat nucleul în CentOS 7!

rezumat

În acest articol am explicat cum să actualizați cu ușurință kernel-ul Linux pe sistemul dumneavoastră. Există încă o metodă pe care nu am acoperit-o, deoarece implică compilarea nucleului de la sursă, care ar merita o carte întreagă și nu este recomandată pe sistemele de producție.

Deși reprezintă una dintre cele mai bune experiențe de învățare și permite o configurație fină a nucleului, este posibil să vă faceți sistemul inutilizabil și poate fi necesar să-l reinstalați de la zero.

Dacă încă sunteți interesat să construiți kernel-ul ca experiență de învățare, veți găsi instrucțiuni despre cum să faceți acest lucru pe pagina Kernel Newbies.

Ca întotdeauna, nu ezitați să folosiți formularul de mai jos dacă aveți întrebări sau comentarii despre acest articol.