Kernel 5.0:n asentaminen tai päivittäminen CentOS 7:ssä


Vaikka jotkut ihmiset käyttävät sanaa Linux kuvaamaan käyttöjärjestelmää kokonaisuutena, on tärkeää huomata, että Linux on tarkasti ottaen vain ydin. Toisaalta jakelu on täysin toimiva järjestelmä, joka on rakennettu ytimen päälle ja jossa on laaja valikoima sovellustyökaluja ja kirjastoja.

Normaalin toiminnan aikana ydin vastaa kahdesta tärkeästä tehtävästä:

  1. Toimii liitäntänä laitteiston ja järjestelmässä olevan ohjelmiston välillä.
  2. Hallitse järjestelmäresursseja mahdollisimman tehokkaasti.

Tätä varten ydin kommunikoi laitteiston kanssa siihen sisäänrakennettujen tai myöhemmin moduulina asennettavien ohjaimien kautta.

Esimerkiksi kun koneellasi toimiva sovellus haluaa muodostaa yhteyden langattomaan verkkoon, se lähettää pyynnön ytimelle, joka vuorostaan käyttää oikeaa ohjainta muodostaakseen yhteyden verkkoon.

Suositeltu luku: Ytimen päivittäminen Ubuntussa

Koska uusia laitteita ja teknologiaa julkaistaan säännöllisesti, on tärkeää pitää ytimemme ajan tasalla, jos haluamme saada niistä kaiken irti. Lisäksi ytimen päivittäminen auttaa meitä hyödyntämään uusia ytimen toimintoja ja suojaamaan itseämme haavoittuvuuksilta, joita on löydetty aikaisemmista versioista.

Oletko valmis päivittämään ytimen CentOS 7:ssä tai jossakin niiden johdannaisista, kuten RHEL 7 ja Fedora? Jos on, jatka lukemista!

Vaihe 1: Tarkista asennetun ytimen versio

Kun asennamme jakelun, se sisältää tietyn version Linux-ytimestä. Voit näyttää järjestelmäämme asennetun nykyisen version seuraavasti:

uname -sr

Seuraava kuva näyttää yllä olevan komennon tulosteen CentOS 7 -palvelimessa:

Jos menemme nyt osoitteeseen https://www.kernel.org/, näemme, että viimeisin ytimen versio on 5.0 tätä kirjoitettaessa (muita versioita on saatavana samasta sivustosta).

Tämä uusi Kernel 5.0 -versio on pitkäaikainen versio, ja sitä tuetaan 6 vuotta, aiemmin kaikkia Linux-ytimen versioita tuettiin vain 2 vuoden ajan.

Yksi tärkeä huomioitava asia on ydinversion elinkaari – jos tällä hetkellä käyttämäsi versio lähestyy käyttöikänsä loppua, virheenkorjauksia ei anneta tämän päivämäärän jälkeen. Katso lisätietoja ytimen julkaisut-sivulta.

Vaihe 2: Päivitä ydin CentOS 7:ssä

Useimmat nykyaikaiset jakelut tarjoavat tavan päivittää ydin käyttämällä paketinhallintajärjestelmää, kuten yum, ja virallisesti tuettua arkistoa.

Tärkeää: Jos haluat käyttää mukautettua käännettyä ydintä, sinun tulee lukea artikkelimme, jossa selitetään Linux-ytimen kääntäminen CentOS 7:ssä lähteistä.

Tämä suorittaa kuitenkin vain päivityksen uusimpaan versioon, joka on saatavilla jakelun arkistoista – ei uusimpaan versioon, joka on saatavilla osoitteessa https://www.kernel.org/. Valitettavasti Red Hat sallii vain ytimen päivittämisen käyttämällä edellistä vaihtoehtoa.

Toisin kuin Red Hat, CentOS sallii ELRepon käytön, kolmannen osapuolen tietovaraston, joka tekee päivityksestä uudempaan versioon ytimen.

Ota ELRepo-tietovarasto käyttöön CentOS 7:ssä seuraavasti:

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 

Kun arkisto on otettu käyttöön, voit käyttää seuraavaa komentoa listataksesi saatavilla olevat kernel.related-paketit:


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

Asenna seuraavaksi uusin päälinjan vakaa ydin:


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!

Lopuksi käynnistä koneesi käyttääksesi uusinta ydintä ja valitse sitten uusin ydin valikosta kuvan mukaisesti.

Kirjaudu sisään root-käyttäjänä ja suorita seuraava komento tarkistaaksesi ytimen version:

uname -sr

Vaihe 3: Aseta oletusytimen versio GRUBissa

Jos haluat tehdä äskettäin asennetusta versiosta oletuskäynnistysvaihtoehdon, sinun on muutettava GRUB-kokoonpanoa seuraavasti:

Avaa ja muokkaa tiedostoa /etc/default/grub ja aseta GRUB_DEFAULT=0. Tämä tarkoittaa, että GRUB-aloitusnäytön ensimmäistä ydintä käytetään oletuksena.

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"

Luo seuraavaksi ytimen kokoonpano uudelleen suorittamalla seuraava komento.


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

Käynnistä uudelleen ja varmista, että uusin ydin on nyt käytössä oletuksena.

Onnittelut! Olet päivittänyt ytimen CentOS 7:ssä!

Yhteenveto

Tässä artikkelissa olemme selittäneet, kuinka voit helposti päivittää järjestelmän Linux-ytimen. On vielä toinen menetelmä, jota emme ole käsitelleet, koska se sisältää ytimen kääntämisen lähdekoodista, joka ansaitsisi kokonaisen kirjan ja jota ei suositella tuotantojärjestelmissä.

Vaikka se on yksi parhaista oppimiskokemuksista ja mahdollistaa ytimen hienorakeisen konfiguroinnin, saatat tehdä järjestelmästäsi käyttökelvottoman ja saatat joutua asentamaan sen uudelleen alusta.

Jos olet edelleen kiinnostunut ytimen rakentamisesta oppimiskokemuksena, löydät ohjeet sen tekemiseen Kernel Newbies -sivulta.

Kuten aina, voit käyttää alla olevaa lomaketta, jos sinulla on kysyttävää tai kommentteja tästä artikkelista.