Kako namestiti ali nadgraditi na jedro 5.0 v CentOS 7


Čeprav nekateri uporabljajo besedo Linux za predstavitev operacijskega sistema kot celote, je pomembno opozoriti, da je Linux strogo gledano le jedro. Po drugi strani je distribucija popolnoma funkcionalen sistem, zgrajen na vrhu jedra s široko paleto aplikacijskih orodij in knjižnic.

Med običajnim delovanjem je jedro odgovorno za izvajanje dveh pomembnih nalog:

  1. Deluje kot vmesnik med strojno in programsko opremo, ki se izvaja v sistemu.
  2. Čim bolj učinkovito upravljanje sistemskih virov.

Če želite to narediti, jedro komunicira s strojno opremo prek vgrajenih gonilnikov ali tistih, ki jih je mogoče pozneje namestiti kot modul.

Na primer, ko se aplikacija, ki se izvaja v vaši napravi, želi povezati z brezžičnim omrežjem, predloži to zahtevo jedru, ki nato uporabi pravi gonilnik za povezavo z omrežjem.

Z novimi napravami in tehnologijo, ki občasno izhajajo, je pomembno, da naše jedro posodabljamo, če ga želimo kar najbolje izkoristiti. Poleg tega nam bo posodobitev jedra pomagala izkoristiti nove funkcije jedra in se zaščititi pred ranljivostmi, ki so bile odkrite v prejšnjih različicah.

Ste pripravljeni posodobiti svoje jedro na CentOS 7 ali enega od njegovih izpeljank, kot sta RHEL 7 in Fedora? Če je tako, nadaljujte z branjem!

1. korak: Preverjanje nameščene različice jedra

Ko namestimo distribucijo, vključuje določeno različico jedra Linuxa. Za prikaz trenutne različice, nameščene v našem sistemu, lahko naredimo:

# uname -sr

Naslednja slika prikazuje izhod zgornjega ukaza v strežniku CentOS 7:

Če zdaj odpremo https://www.kernel.org/, bomo videli, da je najnovejša različica jedra 5.0 v času pisanja tega dokumenta (druge različice so na voljo na istem spletnem mestu).

Ta nova različica jedra 5.0 je dolgoročna izdaja in bo podprta 6 let, prej so bile vse različice jedra Linuxa podprte samo dve leti.

Pomembno je upoštevati življenjski cikel različice jedra - če se različica, ki jo trenutno uporabljate, bliža koncu življenjske dobe, po tem datumu ne bo več popravkov napak. Za več informacij glejte stran z izdajami jedra.

2. korak: Nadgradnja jedra v CentOS 7

Večina sodobnih distribucij omogoča nadgradnjo jedra z uporabo sistema za upravljanje paketov, kot sta yum in uradno podprto skladišče.

Pomembno: Če želite zagnati po meri sestavljeno jedro, preberite članek, v katerem je razloženo Kako prevesti jedro Linuxa na CentOS 7 iz virov.

Vendar bo to izvedlo samo nadgradnjo na najnovejšo različico, ki je na voljo v skladiščih distribucije - ne pa tudi na najnovejšo, ki je na voljo na https://www.kernel.org/. Na žalost Red Hat omogoča nadgradnjo jedra samo s prejšnjo možnostjo.

V nasprotju z Red Hatom CentOS dovoljuje uporabo ELRepo, neodvisnega repozitorija, ki nadgradnjo na najnovejšo različico naredi jedro.

Če želite omogočiti repozitorij ELRepo na CentOS 7, naredite:

# 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 

Ko je repozitorij omogočen, lahko z naslednjim ukazom navedete razpoložljive pakete 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

Nato namestite najnovejše stabilno jedro glavne linije:

# 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!

Nazadnje znova zaženite računalnik, da uporabite najnovejše jedro, in nato v meniju izberite najnovejše jedro, kot je prikazano.

Prijavite se kot root in zaženite naslednji ukaz, da preverite različico jedra:

# uname -sr

3. korak: v GRUB nastavite privzeto različico jedra

Če želite na novo nameščeno različico nastaviti kot privzeto zagonsko možnost, boste morali spremeniti konfiguracijo GRUB, kot sledi:

Odprite in uredite datoteko/etc/default/grub in nastavite GRUB_DEFAULT = 0 . To pomeni, da bo prvo jedro na začetnem zaslonu GRUB uporabljeno kot privzeto.

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"

Nato zaženite naslednji ukaz, da ponovno ustvarite konfiguracijo jedra.

# 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

Znova zaženite in preverite, ali se najnovejše jedro zdaj uporablja privzeto.

Čestitamo! V CentOS 7 ste nadgradili svoje jedro!

V tem članku smo razložili, kako enostavno nadgraditi jedro Linuxa v vašem sistemu. Obstaja še ena metoda, ki je nismo obravnavali, saj vključuje sestavljanje jedra iz vira, ki bi si zaslužila celo knjigo in ni priporočljiva v produkcijskih sistemih.

Čeprav predstavlja eno najboljših učnih izkušenj in omogoča natančno konfiguracijo jedra, lahko vaš sistem postane neuporaben in ga boste morda morali znova namestiti iz nič.

Če še vedno želite zgraditi jedro kot učno izkušnjo, boste našli navodila za to na strani Kernel Newbies.

Kot vedno vas prosimo, da uporabite spodnji obrazec, če imate kakršna koli vprašanja ali komentarje glede tega članka.