- GRUB2 võimaldab teil menüüindekseid või täpset kirje nime kasutades paindlikult valida, millist kerneli versiooni vaikimisi käivitada.
- Linuxi üldiste, HWE ja servaharudega elamine nõuab GRUB-i kontrollimist, et vältida ebastabiilsust uuemate kernelide installimisel.
- Vaikimisi kerneli parandamise või taastamise aluseks on /etc/default/grubi redigeerimine ja konfiguratsiooni taastamine update-grub abil.
- Konfliktsete kernelide desinstallimine ja vähemalt ühe stabiilse haru säilitamine tagab süsteemi käivitatavuse ja turvalisuse.

Linuxis vaikimisi käivitatava kerneli versiooni valimine See pole lihtsalt hoolikate administraatorite veidrus: paljudel juhtudel on see erinevus stabiilse süsteemi ja krahhide, graafikadraiveritega ühildumatuse või uuema riistvara tõrgete vahel. See kehtib eriti Ubuntu ja teiste Debiani-põhiste distributsioonide kohta, kus eksisteerivad koos üldised harud, HWE ja muud distributsioonid. eksperimentaalsed versioonidGRUB2 haldamine on peaaegu kohustuslik.
Kui paigaldate mitu südamikku paralleelselt, GRUB2 proovib alati käivitada kõige uuema saadaoleva kerneli.Enamasti on see okei, aga kui olete vea või vigase draiveri tõttu sunnitud eelmisele versioonile tagasi pöörduma, peate GRUB-ile ütlema, millist kirjet vaikimisi kasutada. Selles artiklis vaatleme üksikasjalikult ja ilma ümber lihvimata, kuidas seda ohutult ja püsivalt teha, milliseid nüansse peaksite uute HWE harude puhul teadma ja kuidas seda kombineerida teiste kasulike GRUB2-ga seotud nippidega.
Milliseid kerneli versioone Ubuntu toetab ja miks sa oled huvitatud nende muutmisest?
Ubuntu hoiab paralleelselt mitut kerneli ridaloodud erinevate stsenaariumide jaoks. Enne GRUB2-s millegi puudutamist on esimene samm aru saada, mis on installitud, sest see määrab, milliseid kirjeid alglaadimismenüüs näete ja milliseid soovite vaikesätetena kasutada.
Ühelt poolt on olemas klassikaline haru. linux-genericSee on kernel, mis tavaliselt eelinstallitakse serveritesse ja süsteemidesse, kus stabiilsus on esmatähtis. Need on pikaealised, põhjalikult testitud kernelid ning LTS-versioonides, nagu Ubuntu 22.04, vastavad need tavaliselt seeriatele nagu 5.15.x. Nende filosoofia on selge: vähem üllatusi, vähem rikkeid pärast värskendust.
Ubuntu lauaarvutid pakuvad ka HWE (riistvara lubamise) tuumadNeed harud installitakse näiteks selliste käskudega nagu sudo apt install linux-generic-hwe-22.04 ja need on suunatud uuematele kerneli versioonidele, näiteks Ubuntu 22.04 LTS-i puhul 6.5.x seeriale, eesmärgiga toetada kaasaegset riistvara, mida algse LTS-i väljaandmise ajal veel ei eksisteerinud.
Kui teil on vaja minna sammu võrra edasi, on olemas ka variant hwe-serv, mis on kujundatud kui "avangardi" haru o verejooksu servSee on installitud selliste käskudega nagu sudo apt install linux-generic-hwe-22.04-edge See sisaldab sageli isegi uuemaid kerneleid (näiteks 6.7.x Ubuntu 22.04-s endas). See pakub tuge väga uuele riistvarale, kuid suurendab vigade, ebastabiilsuse või kummalise käitumise tekkimise tõenäosust.
Kuigi süsteem käitab korraga ainult ühte kernelit.Muistsete südamike pilte säilitatakse /boot See on nagu elukindlustuspoliis. Kui värskendus muudab teie arvuti kasutuskõlbmatuks, võib vanema versiooni käivitamine päeva päästa. Probleem on selles, et kui olete uuema kerneli installinud, kipub Ubuntu selle iga kord käivitama ja selle desinstallimine ilma teise kerneli käivitamise võimaluseta võib olla tõeline tüütus.
Valige GRUB2 menüüst ajutiselt teine kernel
Enne failide redigeerimise alustamist tasub meeles pidada, et GRUB2 lubab juba käivitamisel käsitsi teise kerneli valida.Kui teil on arvutile füüsiline juurdepääs ja ühendatud klaviatuur, pole eelvaateversiooni proovimiseks sageli vaja midagi muud.
Ubuntus, kui masin sisse lülitada, GRUB2 menüüd saab kuvada Shift-klahvi all hoides. alglaadimise algfaasis. Traditsioonilistes BIOS-süsteemides töötab see hästi; UEFI-s piisab tavaliselt sellest, kui GRUB kuvab vaikemenüüd, kuid idee on sama: näha süsteemide ja valikute loendit.
Selles menüüs näete tavaliselt esimest tüüpi kirjet Ubuntu, mis käivitab viimase installitud kerneli, millele järgneb alammenüü nimega Ubuntu lisavalikud (Täpsemad valikud). Selles alammenüüs on loetletud kõik saadaolevad kerneli versioonid koos iga versiooni tavarežiimi ja taasterežiimiga.
Kui sul on probleeme uusima kerneliga, Tavaliselt tuleb minna "Ubuntu lisavalikute" juurde. ja vali vanem versioon (näiteks Ubuntu, with Linux 5.15.0-94-generic) uusima 6.x asemel. Kui see versioon on edukalt käivitunud, saate konfliktsed kernelid desinstallida ja konfiguratsiooni uuesti luua käsuga sudo update-grub.
Loomulikult on sellel käsitsi lahendusel ka oma konks: See toimib ainult siis, kui saad GRUB-iga suheldaServerites ilma klaviatuurita, kaugarvutites või keskkondades, kus käivituskonsooli ei kuvata, on vaja püsivat meetodit, mis ütleb GRUB-ile, millist sisendit alati kasutada, ilma et iga käivitamisel küsitaks.
Loetle kõik kernelid, mida GRUB2 tunneb
Vaikimisi kerneli usaldusväärseks määramiseks Esmalt tuleb teada, millised menüükirjed GRUB2-l tegelikult seadistatud on.Installitud pakettide vaatamisest ei piisa, sest menüü positsioonid võivad kernelide lisamisel või eemaldamisel muutuda.
GRUB2 genereerib oma peamenüü failis /boot/grub/grub.cfgKuigi seda käsitsi redigeerida ei ole soovitatav (see kirjutatakse käivitamisel üle) update-grubJah, saate seda lugeda, et teavet ammutada. Väga praktiline käsk kirjete loetlemiseks on:
grep -Ei 'alammenüü|menüükirje ' /boot/grub/grub.cfg | sed -re «s/(.? )'(+).*/\1 \2/»
See käsk See tagastab kõigi kirjete ja alammenüüde loendi. mis kuvatakse käivitamisel, midagi sarnast:
menuentry Ubuntu
submenu Advanced options for Ubuntu
menuentry Ubuntu, with Linux 6.7.0-15-generic
menuentry Ubuntu, with Linux 6.7.0-15-generic (recovery mode)
menuentry Ubuntu, with Linux 5.15.0-94-generic
menuentry Ubuntu, with Linux 5.15.0-94-generic (recovery mode)
menuentry Ubuntu, with Linux 5.15.0-92-generic
menuentry Ubuntu, with Linux 5.15.0-92-generic (recovery mode)
menuentry Memory test (memtest86+.elf)
menuentry Memory test (memtest86+.bin, serial console)
menuentry MS-DOS 5.x/6.x/Win3.1 (on /dev/sdf1)
Esimene kirje on tavaliselt "Ubuntu" kõige moodsama kerneliga.Ja alammenüüs „Lisavalikud” kuvatakse kõik installitud versioonid, järjestatuna uusimast vanimani. Meie näites, kui soovite alati käivitada Ubuntu, with Linux 5.15.0-94-genericSee kirje oleks täpsemas alammenüüs, mitte peamenüüs.
Määrake menüüs positsiooni järgi konkreetne kernel (GRUB_DEFAULT indeksid)
Klassikaline vorm määrake, millist kerneli GRUB2 vaikimisi käivitada soovib See hõlmab kirje indeksi (positsiooni) näitamist või isegi kombinatsiooni "alammenüü > kirje", kui soovitud versioon on jaotises "Ubuntu lisavalikud".
Seda kontrolliv fail on / etc / default / grubEnne muudatuste tegemist on tungivalt soovitatav luua kiire varukoopia juhuks, kui teil on vaja hõlpsalt eelmist olekut taastada. Seda saate teha järgmiselt:
sudo cp /etc/default/grub /etc/default/grub.bak
Seejärel redigeeri seda oma lemmikredaktoriga, näiteks Nanoga:
sudo nano / etc / default / grub
Sees näed sellist rida GRUB_DEFAULT=0, mis näitab, et kasutatakse peamenüü esimest kirjet (indeks null). Kui teie soovitud kernel asub alammenüüs "Lisavalikud"GRUBile saab käskida sellel alammenüül siseneda ja valida kindla positsiooni, kasutades tähistust submenú>entrada.
Eelmise näite kohaselt, kui peamenüüs oleks esimene valik "Ubuntu lisavalikud" ja selles alammenüüs kolmas valik "Ubuntu, Linux 5.15.0-94-generic" (lugedes nullist ja jättes taasterežiimid vahele), võiksite kirjutada midagi sellist:
GRUB_DEFAULT="1>3"
Loogika on lihtne, aga indeksitele tuleb tähelepanu pöörata.Esimene tase viitab alammenüü positsioonile peamenüüs ja teine kirje positsioonile selles alammenüüs. Samuti pidage meeles, et "taastamisrežiimi" kirjed on tavaliselt nihutatud, seega kasutavad tavalised valikud paarituid numbreid ja taastevalikud paarisnumbreid.
Kui oled muutunud GRUB_DEFAULT, salvesta fail (Nano-s, Ctrl + O ja siis Ctrl + X) ja rakendab muudatused GRUB-i konfiguratsiooni uuesti genereerides järgmise käsuga:
sudo update-grub
Selle taga taaskäivitage süsteem sudo taaskäivitage ja kui see käivitub, kontrollib see, milline kernel on laaditud:
uname-a
Tulemus peaks näitama näiteks, et Linux ... 5.15.0-94-generic ... mis näitab, et kasutate nüüd versiooni, mille määrasite indeksite abil GRUB_DEFAULT.
Kasutage indeksite asemel menüükirje nime ("salvestatud" režiim)
Indeksmeetodil on üks suur probleem: Positsioonid muutuvad kernelide installimisel või desinstallimiselSee tähendab, et kerneli värskendus võib teie 1>3 Lõpeta õige kerneli sihtimine, mis on just see, mida sa pikaajalise stabiilsuse otsimisel vältida tahad.
GRUB2 pakub palju tugevamat alternatiivi: Kasuta menüükirje täpset nime vaikevalikunaSel viisil, seni kuni see kirje on olemas grub.cfgSee jääb valituks isegi siis, kui loendis sellele kohale või alla lisatakse uusi versioone.
Üldine idee on järgmine: esiteks Leiate soovitud menüüelemendi täisnime., nagu see ilmneb /boot/grub/grub.cfg (näiteks Ubuntu, with Linux 6.8.0-60-generic) ja seejärel konfigureerite GRUBi seda kasutama järgmiselt salvestatud_kirje vaikimisi.
Täpse nime leidmiseks võite konfiguratsioonifaili avada redaktori või vaaturiga, näiteks:
sudo nano /boot/grub/grub.cfg
Kui olete sees, Kasutage Nano-s kerneli versioonile vastava stringi otsimiseks Ctrl+W. mis sind huvitab (näiteks "6.8.0-60-üldine"). Sarnaselt menuentry Näete täielikku pealkirja, umbes sellist:
menuentry 'Ubuntu, with Linux 6.8.0-60-generic' ...
Nüüd, indeksitega mängimise asemel, Saate GRUB-ile öelda, et ta kasutaks seda nime salvestatud valikuna.Tüüpiline protseduur hõlmab selliste käskude täitmist nagu järgmised:
sudo grub-set-default «Ubuntu koos Linux 6.8.0-60-generic'iga»
See käsk määratleb määratud kirje "salvestatud vaikesäteteks". Selle õigesti rakendamise kinnitamiseks saate kontrollida GRUB-i keskkonnafaili:
sudo grub-editev loend
Sa peaksid nägema sellist rida:
saved_entry=Ubuntu, with Linux 6.8.0-60-generic
Samuti on võimalik, et olenevalt eelnevast konfiguratsioonist Kasutusel on suvand GRUB_DEFAULT=saved en /etc/default/grubmis käsib GRUBil alati viimast kasutada salvestatud_kirje loodud. Igal juhul, kuigi saved_entry Kui see sobib teie soovitud kerneliga, jätkate selle versiooni automaatset käivitamist.
Pärast nende muudatuste rakendamist taasta konfiguratsioonifail käsuga sudo update-grubTaaskäivitage süsteem ja kinnitage uuesti nupuga uname-a et alustasite vaikimisi määratud versiooniga.
Ubuntu kerneli muutmine kindlale versioonile (paigaldamine ja vanemale versioonile üleviimine)
Paljudel juhtudel ei ole vaja valida lihtsalt eelinstallitud kerneli, vaid lülituda praeguselt versioonilt kindlale versioonileSee on kas seetõttu, et teie rakendus seda nõuab, kuna draiver toetab ainult teatud seeriat või seetõttu, et hiljutine värskendus on poole teie süsteemist katki teinud.
Esimene samm peaks alati olema tea, millist kernelit sa praegu kasutadSelleks võite kasutada selliseid käske nagu:
uname -r
O noh:
uname-a
mis tagastab midagi sellist:
Linux web 6.8.0-85-generic #85~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC ... x86_64 GNU/Linux
Kui tead, kus sa oled, on järgmine samm vaata, millised kernelid on repositooriumides saadavalUbuntu/Debiani keskkondades tehakse seda tavaliselt pakettide päringute abil. linux-image hoidlast, filtreerides teid huvitava versiooni järgi. Kui olete leidnud konkreetse versiooni, saate selle otse apt-ga installida või ise kompileerida (vt Kuidas otsida konfiguratsioone käsuga `make menuconfig`), nagu eelistate.
Näiteks kui sa tahad alla minna 6.8.0-85-generic a 6.8.0-60-genericSa paigaldaksid vastava paketi vastava käsuga ja kinnitaksid seda "S"-iga, kui asjakohane See küsib, kas soovite installimist jätkata. Kui protsess on lõppenud, Seejärel on see kerneli versioon käivitamiseks saadaval.Siiski jätkab GRUB uusima valimist, kuni muudate sätteid vastavalt selgitustele.
Pärast soovitud kerneli installimist taaskäivitage arvuti et saaksite selle vaikimisi määrata, kasutades ühte ülaltoodud meetoditest (indeksi või nime järgi), olenevalt sellest, kumb on teie juhtumi puhul mugavam ja töökindlam.
Määrake alammenüüst "Lisavalikud" konkreetne kernel vaikesäteteks
Sellistes distributsioonides nagu Ubuntu 22 ja 24, kui lisatakse praegusest vanema kerneli versioon, See versioon ei ole peamiseks sissekandeks määratud.aga see lisatakse alammenüüsse Ubuntu lisavalikudSeega, isegi kui installite versiooni 6.8.0-60, mis on varasem kui 6.8.0-85, käivitub taaskäivitamisel ikkagi versioon 85.
Jaoks GRUB2 valib alammenüüst automaatselt soovitud versiooni.Sa pead teadma selle täpset asukohta. Jällegi käsk, mis loetleb menuentry y submenu See aitab teil näha GRUBi kasutatavat struktuuri ja numbrilist järjestust.
Kujutage ette, et pärast loendikäsu käivitamist avastate, et teie sihtkernel (näiteks "Ubuntu, Linux 6.8.0-60-generic") kuvatakse alammenüüs "Täpsemad valikud" neljandal positsioonil ja et see alammenüü on esimene pärast põhikirjet. Sellisel juhul oleks indeksi kombinatsioon, alustades nullist, järgmine: 1> 2 (alammenüü 1. positsioonil, kirje selles alammenüüs 2. positsioonil).
Failis /etc/default/grubSiis muudaksite rida:
GRUB_DEFAULT=0
poolt:
GRUB_DEFAULT="1>2"
Pärast muudatuste salvestamist ja käivitamist sudo update-grub, Järgmisel käivitamisel valitakse see konkreetne kernel automaatselt. jaotises „Lisavalikud”, ilma et peaksite iga kord alammenüüsse käsitsi sisenema.
Pärast taaskäivitamist saate kontrollida, kas kõik läks hästi uname -r o uname-a, kontrollides, kas aktiivne kerneli versioon on see, mille olete määranud GRUB_DEFAULT.
HWE ja servakernelide desinstallimine ning stabiilse haru taastamine
Kui olete saavutanud Käivita süsteem stabiilse kerneliga linux-generic harust (näiteks 5.15.x seeria Ubuntu 22.04 LTS-il), on järgmine loogiline samm, kui HWE või servakernelid on teile probleeme tekitanud, süsteemi nende harude puhastamine.
HWE metapakettide desinstallimiseks võite kasutada järgmist. tabav puhastus metamärgiga, mis katab kogu haru, näiteks:
sudo apt purge linux-generic-hwe-22.04*
Pärast nende metapakettide eemaldamist tahate tõenäoliselt Kustuta ka moodsate kernelide kujutised, mida sa enam ei vaja.Näiteks kui soovite kõik 6.x-st uuemad kernelid 5.x seeria kasuks eemaldada, võite kasutada sellist käsku:
sudo apt purge linux-image-6*
Seda tüüpi puhastus eemaldab kerneli kujutisepaketid, mille nimi algab tähtedega "linux-image-6", seega on enne kinnitamist soovitatav hoolikalt üle vaadata, mida kavatsete desinstallida. Ärge unustage, et Teil peab olema vähemalt üks stabiilne ja toimiv harutavaliselt linux-genericsest ilma selleta võivad süsteemil käivitatavad kernelid otsa saada.
Pärast iga kerneli puhastamist on oluline Värskenda GRUB-i konfiguratsiooni, et lõpetada viitamine kirjetele, mida enam ei eksisteeri.Vastasel juhul võite kohata menüüvalikuid, mis viitavad kustutatud kernelidele. Konfiguratsioonifaili taastamiseks kasutage järgmist käsku:
sudo update-grub
Kui soovite tagada, et üldine haru jääb installituks, saate selle installimise sundida järgmiselt:
sudo apt install linux-generic
Enamasti annab see teada, et see on juba installitud, kuid sel viisil saate kontrollida metapaketi olemasolu ja seda, et saate jätkuvalt selle stabiilse seeria turvavärskendusi ja parandusi.
Viimase sammuna, kui sa oleksid muutunud GRUB_DEFAULT indeksisse või kindlasse nime, et HWE/serva probleemidega toime tulla, Saate selle taastada vaikeväärtusele (tavaliselt 0) uuesti redigeerimine /etc/default/grub:
sudo nano / etc / default / grub
Ja jättes rea selliseks:
GRUB_DEFAULT="0"
Seejärel salvesta, käivita sudo update-grub ja taaskäivitage sudo taaskäivitage nii et süsteem käivitub tavapäraselt haru uusima kerneliga linux-generic et olete installinud.
Lõppkokkuvõttes saab GRUB2 abil käivitatava kerneli kontrollimisest oluline tööriist igale Ubuntu, Debiani või tuletisprogrammide kasutajale, kes ei soovi olla viimaste värskenduste meelevallas. Konkreetsete versioonide installimise, "Lisavalikud" kasutamise, indeksi või menüü nime järgi valimise ja probleemsete harude puhastamise kombineerimise abilSaate süsteemi tuuma oma tegelike vajaduste järgi kohandada: kivikõva stabiilsus serverites, maksimaalne ühilduvus tänapäevaste seadmetega või mõlema kalkuleeritud kombinatsioon töölauakeskkondades, kus te ei soovi oma igapäevast kasutamist eksperimentaalsel kernelil riskida.
Kirglik kirjanik baitide maailmast ja üldse tehnoloogiast. Mulle meeldib jagada oma teadmisi kirjutamise kaudu ja just seda ma selles ajaveebis teengi, näitan teile kõike kõige huvitavamat vidinate, tarkvara, riistvara, tehnoloogiliste suundumuste ja muu kohta. Minu eesmärk on aidata teil digimaailmas lihtsal ja meelelahutuslikul viisil navigeerida.




