Hvordan installere eller oppgradere til Kernel 5.0 i CentOS 7


Selv om noen bruker ordet Linux for å representere operativsystemet som helhet, er det viktig å merke seg at strengt tatt er Linux bare kjernen. På den annen side er en distribusjon et fullt funksjonelt system bygget på toppen av kjernen med et bredt utvalg av applikasjonsverktøy og biblioteker.

Under normale operasjoner er kjernen ansvarlig for å utføre to viktige oppgaver:

  1. Fungerer som et grensesnitt mellom maskinvaren og programvaren som kjører på systemet.
  2. Administrere systemressurser så effektivt som mulig.

For å gjøre dette kommuniserer kjernen med maskinvaren gjennom driverne som er innebygd i den eller de som senere kan installeres som en modul.

For eksempel, når en applikasjon som kjører på maskinen din ønsker å koble til et trådløst nettverk, sender den den forespørselen til kjernen, som igjen bruker riktig driver for å koble til nettverket.

Foreslått lesing: Hvordan oppgradere kjernen i Ubuntu

Med nye enheter og teknologi som kommer ut med jevne mellomrom, er det viktig å holde kjernen oppdatert hvis vi ønsker å få mest mulig ut av dem. I tillegg vil oppdatering av kjernen hjelpe oss med å utnytte nye kjernefunksjoner og beskytte oss mot sårbarheter som har blitt oppdaget i tidligere versjoner.

Klar til å oppdatere kjernen din på CentOS 7 eller en av deres derivater somRHEL 7 og Fedora? Hvis ja, fortsett å lese!

Trinn 1: Sjekke installert kjerneversjon

Når vi installerer en distribusjon inkluderer den en viss versjon av Linux-kjernen. For å vise gjeldende versjon installert på systemet vårt kan vi gjøre:

uname -sr

Følgende bilde viser utdataene fra kommandoen ovenfor i en CentOS 7-server:

Hvis vi nå går til https://www.kernel.org/, vil vi se at den siste kjerneversjonen er 5.0 når dette skrives (andre versjoner er tilgjengelige fra samme side).

Denne nye Kernel 5.0-versjonen er en langsiktig utgivelse og vil bli støttet i 6 år, tidligere ble alle Linux Kernel-versjoner kun støttet i 2 år.

En viktig ting å vurdere er livssyklusen til en kjerneversjon – hvis versjonen du bruker nå nærmer seg slutten av livet, vil ingen flere feilrettinger bli gitt etter den datoen. For mer informasjon, se siden for kjerneutgivelser.

Trinn 2: Oppgradering av kjernen i CentOS 7

De fleste moderne distribusjoner gir en måte å oppgradere kjernen ved å bruke et pakkehåndteringssystem som yum og et offisielt støttet depot.

Viktig: Hvis du ønsker å kjøre tilpasset kompilert kjerne, bør du lese artikkelen vår som forklarer hvordan du kompilerer Linux-kjernen på CentOS 7 fra kilder.

Dette vil imidlertid kun utføre oppgraderingen til den nyeste versjonen som er tilgjengelig fra distribusjonens depoter – ikke den nyeste tilgjengelig på https://www.kernel.org/. Dessverre tillater Red Hat bare å oppgradere kjernen ved å bruke det tidligere alternativet.

I motsetning til Red Hat, tillater CentOS bruk av ELRepo, et tredjeparts depot som gjør oppgraderingen til en nylig versjon til en kjerne.

For å aktivere ELRepo-depotet på CentOS 7, gjør du:

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 

Når depotet er aktivert, kan du bruke følgende kommando for å liste de tilgjengelige kernel.related-pakkene:


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

Installer deretter den siste stabile kjernen for hovedlinjen:


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!

Til slutt start maskinen på nytt for å bruke den nyeste kjernen, og velg deretter siste kjerne fra menyen som vist.

Logg på som root, og kjør følgende kommando for å sjekke kjerneversjonen:

uname -sr

Trinn 3: Angi standard kjerneversjon i GRUB

For å gjøre den nylig installerte versjonen til standard oppstartsalternativ, må du endre GRUB-konfigurasjonen som følger:

Åpne og rediger filen /etc/default/grub og sett GRUB_DEFAULT=0. Dette betyr at den første kjernen i GRUB-startskjermbildet vil bli brukt som standard.

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"

Kjør deretter følgende kommando for å gjenskape kjernekonfigurasjonen.


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 på nytt og bekreft at den nyeste kjernen nå brukes som standard.

Gratulerer! Du har oppgradert kjernen i CentOS 7!

Sammendrag

I denne artikkelen har vi forklart hvordan du enkelt oppgraderer Linux-kjernen på systemet ditt. Det er enda en metode som vi ikke har dekket, da den innebærer å kompilere kjernen fra kilden, som fortjener en hel bok og ikke anbefales på produksjonssystemer.

Selv om det representerer en av de beste læringsopplevelsene og gir mulighet for en finmasket konfigurasjon av kjernen, kan du gjøre systemet ubrukelig og kanskje måtte installere det på nytt fra bunnen av.

Hvis du fortsatt er interessert i å bygge kjernen som en læringsopplevelse, finner du instruksjoner om hvordan du gjør det på siden for kjernenybegynnere.

Som alltid, bruk gjerne skjemaet nedenfor hvis du har spørsmål eller kommentarer til denne artikkelen.