Sådan installeres eller opgraderes til Kernel 5.0 i CentOS 7


Selvom nogle mennesker bruger ordet Linux til at repræsentere operativsystemet som helhed, er det vigtigt at bemærke, at Linux strengt taget kun er kernen. På den anden side er en distribution et fuldt funktionelt system bygget oven på kernen med en bred vifte af applikationsværktøjer og biblioteker.

Under normal drift er kernen ansvarlig for at udføre to vigtige opgaver:

  1. Fungerer som en grænseflade mellem hardwaren og softwaren, der kører på systemet.
  2. Styring af systemressourcer så effektivt som muligt.

For at gøre dette kommunikerer kernen med hardwaren gennem de drivere, der er indbygget i den, eller dem, der senere kan installeres som et modul.

For eksempel, når et program, der kører på din maskine, ønsker at oprette forbindelse til et trådløst netværk, sender det den anmodning til kernen, som igen bruger den rigtige driver til at oprette forbindelse til netværket.

Da nye enheder og teknologi kommer ud med jævne mellemrum, er det vigtigt at holde vores kerne opdateret, hvis vi vil få mest muligt ud af dem. Derudover hjælper opdatering af vores kerne os med at udnytte nye kernefunktioner og beskytte os mod sårbarheder, der er blevet opdaget i tidligere versioner.

Klar til at opdatere din kerne på CentOS 7 eller et af deres derivater som RHEL 7 og Fedora? I så fald skal du fortsætte med at læse!

Trin 1: Kontrol af installeret kerneversion

Når vi installerer en distribution, inkluderer den en bestemt version af Linux-kernen. For at vise den aktuelle version installeret på vores system kan vi gøre:

# uname -sr

Følgende billede viser output fra ovenstående kommando på en CentOS 7-server:

Hvis vi nu går til https://www.kernel.org/, vil vi se, at den seneste kerneversion er 5.0 på tidspunktet for denne skrivning (andre versioner er tilgængelige fra samme websted).

Denne nye Kernel 5.0-version er en langsigtet udgivelse og vil blive understøttet i 6 år, tidligere blev alle Linux Kernel-versioner kun understøttet i 2 år.

En vigtig ting at overveje er livscyklussen for en kerneversion - hvis den version, du bruger i øjeblikket, nærmer sig slutningen af deres levetid, leveres der ikke flere fejlrettelser efter den dato. For mere info henvises til siden Kerneudgivelser.

Trin 2: Opgradering af kerne i CentOS 7

De fleste moderne distributioner giver en måde at opgradere kernen ved hjælp af et pakkehåndteringssystem som yum og et officielt understøttet lager.

Vigtigt: Hvis du ønsker at køre tilpasset kompileret kerne, skal du læse vores artikel, der forklarer, hvordan man kompilerer Linux-kerne på CentOS 7 fra kilder.

Dette udfører dog kun opgraderingen til den nyeste version, der er tilgængelig fra distributionslagrene - ikke den seneste tilgængelige på https://www.kernel.org/. Desværre tillader Red Hat kun at opgradere kernen ved hjælp af den tidligere mulighed.

I modsætning til Red Hat tillader CentOS brugen af ELRepo, et tredjepartslager, der gør opgraderingen til en nyere version til en kerne.

For at aktivere ELRepo-arkivet på CentOS 7 skal du gøre:

# 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 arkivet er aktiveret, kan du bruge følgende kommando til at liste de tilgængelige kernel.relaterede pakker:

# 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 derefter den seneste stabile kernel til 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!

Endelig genstart din maskine for at anvende den nyeste kerne, og vælg derefter den nyeste kerne i menuen som vist.

Log ind som root, og kør følgende kommando for at kontrollere kerneversionen:

# uname -sr

Trin 3: Indstil standard kerneversion i GRUB

For at gøre den nyinstallerede version til standardstartindstillingen skal du ændre GRUB-konfigurationen som følger:

Åbn og rediger filen/etc/default/grub, og indstil GRUB_DEFAULT = 0 . Dette betyder, at den første kerne i GRUB-startskærmen vil blive brugt 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"

Kør derefter følgende kommando for at genskabe kernekonfigurationen.

# 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

Genstart og bekræft, at den nyeste kerne nu bruges som standard.

Tillykke! Du har opgraderet din kerne i CentOS 7!

I denne artikel har vi forklaret, hvordan man let opgraderer Linux-kernen på dit system. Der er endnu en anden metode, som vi ikke har dækket, da den involverer at kompilere kernen fra kilden, som fortjener en hel bog og ikke anbefales i produktionssystemer.

Selvom det repræsenterer en af de bedste læringsoplevelser og giver mulighed for en finkornet konfiguration af kernen, kan du muligvis gøre dit system ubrugeligt og muligvis geninstallere det fra bunden.

Hvis du stadig er interesseret i at opbygge kernen som en læringsoplevelse, finder du instruktioner om, hvordan du gør det på siden Kernel Newbies.

Som altid er du velkommen til at bruge nedenstående formular, hvis du har spørgsmål eller kommentarer til denne artikel.