Zoeken op website

Hoe Kernel 5.0 te installeren of te upgraden in CentOS 7


Hoewel sommige mensen het woord Linux gebruiken om het besturingssysteem als geheel aan te duiden, is het belangrijk op te merken dat Linux strikt genomen slechts de kernel is. Aan de andere kant is een distributie een volledig functioneel systeem dat bovenop de kernel is gebouwd met een grote verscheidenheid aan applicatietools en bibliotheken.

Tijdens normale werking is de kernel verantwoordelijk voor het uitvoeren van twee belangrijke taken:

  1. Fungeert als interface tussen de hardware en de software die op het systeem draait.
  2. Systeembronnen zo efficiënt mogelijk beheren.

Om dit te doen communiceert de kernel met de hardware via de stuurprogramma's die erin zijn ingebouwd of die later als module kunnen worden geïnstalleerd.

Wanneer een applicatie die op uw machine draait bijvoorbeeld verbinding wil maken met een draadloos netwerk, dient deze dat verzoek in bij de kernel, die op zijn beurt het juiste stuurprogramma gebruikt om verbinding te maken met het netwerk.

Voorgesteld leesvoer: Kernel upgraden in Ubuntu

Omdat er regelmatig nieuwe apparaten en technologie verschijnen, is het belangrijk om onze kernel up-to-date te houden als we er het beste uit willen halen. Bovendien zal het updaten van onze kernel ons helpen nieuwe kernelfuncties te benutten en onszelf te beschermen tegen kwetsbaarheden die in eerdere versies zijn ontdekt.

Klaar om je kernel te updaten op CentOS 7 of een van hun afgeleiden zoals RHEL 7 en Fedora? Als dat zo is, lees dan verder!

Stap 1: Geïnstalleerde kernelversie controleren

Wanneer we een distributie installeren, bevat deze een bepaalde versie van de Linux-kernel. Om de huidige versie te tonen die op ons systeem is geïnstalleerd, kunnen we het volgende doen:

uname -sr

De volgende afbeelding toont de uitvoer van de bovenstaande opdracht op een CentOS 7-server:

Als we nu naar https://www.kernel.org/ gaan, zullen we zien dat de nieuwste kernelversie 5.0 is op het moment dat dit geschreven wordt (andere versies zijn beschikbaar via dezelfde site).

Deze nieuwe Kernel 5.0 versie is een release voor de lange termijn en wordt 6 jaar ondersteund, voorheen werden alle Linux Kernel-versies slechts 2 jaar ondersteund.

Een belangrijk ding om te overwegen is de levenscyclus van een kernelversie. Als de versie die u momenteel gebruikt het einde van zijn levensduur nadert, zullen er na die datum geen bugfixes meer worden aangeboden. Voor meer informatie, zie de kernel Releases pagina.

Stap 2: Kernel upgraden in CentOS 7

De meeste moderne distributies bieden een manier om de kernel te upgraden met behulp van een pakketbeheersysteem zoals yum en een officieel ondersteunde repository.

Belangrijk: als je een op maat gecompileerde kernel wilt gebruiken, lees dan ons artikel waarin wordt uitgelegd hoe je de Linux-kernel compileert op CentOS 7 vanuit bronnen.

Dit zal echter alleen de upgrade uitvoeren naar de meest recente versie die beschikbaar is in de repositories van de distributie – niet de nieuwste versie die beschikbaar is in https://www.kernel.org/. Helaas staat Red Hat alleen toe om de kernel te upgraden met behulp van de eerste optie.

In tegenstelling tot Red Hat staat CentOS het gebruik van ELRepo toe, een repository van derden die van de upgrade naar een recente versie een kernel maakt.

Om de ELRepo-repository op CentOS 7 in te schakelen, doet u het volgende:

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 

Zodra de repository is ingeschakeld, kunt u de volgende opdracht gebruiken om de beschikbare kernel.related pakketten weer te geven:


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

Installeer vervolgens de nieuwste stabiele hoofdkernel:


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!

herstart ten slotte uw machine om de nieuwste kernel toe te passen, en selecteer vervolgens de nieuwste kernel uit het menu, zoals weergegeven.

Log in als root en voer de volgende opdracht uit om de kernelversie te controleren:

uname -sr

Stap 3: Stel de standaard kernelversie in GRUB in

Om van de nieuw geïnstalleerde versie de standaard opstartoptie te maken, moet je de GRUB-configuratie als volgt wijzigen:

Open en bewerk het bestand /etc/default/grub en stel GRUB_DEFAULT=0 in. Dit betekent dat de eerste kernel in het GRUB-beginscherm als standaard zal worden gebruikt.

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"

Voer vervolgens de volgende opdracht uit om de kernelconfiguratie opnieuw te maken.


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

Start opnieuw op en controleer of de nieuwste kernel nu standaard wordt gebruikt.

Gefeliciteerd! Je hebt je kernel geüpgraded in CentOS 7!

Samenvatting

In dit artikel hebben we uitgelegd hoe je eenvoudig de Linux-kernel op je systeem kunt upgraden. Er is nog een andere methode die we niet hebben behandeld, omdat deze het compileren van de kernel vanaf de broncode impliceert, wat een heel boek zou verdienen en niet wordt aanbevolen op productiesystemen.

Hoewel het een van de beste leerervaringen is en een fijnmazige configuratie van de kernel mogelijk maakt, kan het zijn dat je systeem onbruikbaar wordt en dat je het helemaal opnieuw moet installeren.

Als je nog steeds geïnteresseerd bent in het bouwen van de kernel als leerervaring, kun je instructies vinden over hoe je dit moet doen op de Kernel Newbies-pagina.

Zoals altijd kunt u het onderstaande formulier gebruiken als u vragen of opmerkingen heeft over dit artikel.