- GRUB2 vam omogućuje fleksibilan odabir verzije kernela za pokretanje prema zadanim postavkama, korištenjem indeksa izbornika ili točnog naziva unosa.
- Život s linux-generic, HWE i edge granama zahtijeva kontrolu GRUB-a kako bi se izbjegle nestabilnosti prilikom instaliranja novijih kernela.
- Uređivanje /etc/default/grub i regeneriranje konfiguracije s update-grub naredbom je osnova za popravljanje ili vraćanje zadane kernela.
- Deinstaliranje konfliktnih kernela i održavanje barem jedne stabilne grane osigurava da sustav ostane pokretan i siguran.

Odabir verzije kernela koja se pokreće prema zadanim postavkama u Linuxu Nije to samo hir pedantnih administratora: u mnogim slučajevima to je razlika između stabilnog sustava i rušenja, nekompatibilnosti s grafičkim upravljačkim programima ili kvarova u novijem hardveru. To se posebno odnosi na Ubuntu i druge distribucije temeljene na Debianu, gdje generičke grane, HWE i druge distribucije koegzistiraju. eksperimentalne verzijeKontroliranje GRUB2 je gotovo obavezno.
Kada instalirate više jezgri paralelno, GRUB2 uvijek pokušava pokrenuti najnoviju dostupnu jezgru.To je u redu većinu vremena, ali ako ste bili prisiljeni vratiti se na prethodnu verziju zbog greške ili neispravnog upravljačkog programa, morat ćete reći GRUB-u koji unos treba koristiti kao zadani. U ovom ćemo članku detaljno i bez previše detalja pogledati kako to učiniti sigurno i trajno, koje nijanse trebate biti svjesni s novim HWE granama i kako to kombinirati s drugim korisnim trikovima vezanim uz GRUB2.
Koje verzije kernela Ubuntu podržava i zašto vas zanima njihova promjena?
Ubuntu paralelno održava nekoliko linija kerneladizajniran za različite scenarije. Razumijevanje onoga što ste instalirali prvi je korak prije nego što dirate bilo što u GRUB2, jer će to odrediti koje unose vidite u izborniku za pokretanje i koje želite koristiti kao zadane.
S jedne strane postoji klasična grana linux-generičkiOvo je kernel koji obično dolazi unaprijed instaliran na poslužiteljima i sustavima gdje je stabilnost najvažnija. To su dugotrajni, temeljito testirani kerneli, a u LTS verzijama poput Ubuntu 22.04 obično odgovaraju serijama poput 5.15.x. Njihova filozofija je jasna: manje iznenađenja, manje kvarova nakon ažuriranja.
Stolna računala s Ubuntuom također nude HWE (Omogućavanje hardvera) kerneliOve grane se instaliraju, na primjer, naredbama poput sudo apt install linux-generic-hwe-22.04 i ciljaju novije verzije kernela, poput serije 6.5.x u slučaju Ubuntu 22.04 LTS-a, s ciljem podrške modernom hardveru koji nije postojao kada je izvorni LTS izdan.
Ako trebate ići korak dalje, postoji i varijanta hwe-edge, dizajniran kao ogranak "avangarde" o krvarenjeInstalira se naredbama poput sudo apt install linux-generic-hwe-22.04-edge Često uključuje čak i novije kernele (na primjer, 6.7.x u samom Ubuntuu 22.04). Nudi podršku za vrlo novi hardver, ali uz cijenu povećanja vjerojatnosti nailaženja na greške, nestabilnosti ili čudno ponašanje.
Iako sustav istovremeno pokreće samo jednu jezgru.Slike drevnih jezgri sačuvane su u /boot To je kao polica životnog osiguranja. Ako ažuriranje učini vaše računalo neupotrebljivim, mogućnost pokretanja starije verzije može spasiti stvar. Problem je što nakon što instalirate noviju jezgru, Ubuntu će se svaki put pokretati s njom, a deinstalacija bez mogućnosti pokretanja druge jezgre može biti prava muka.
Privremeno odaberite drugu jezgru iz GRUB2 izbornika
Prije nego što počnemo uređivati datoteke, vrijedi zapamtiti da GRUB2 već omogućuje ručni odabir druge jezgre prilikom pokretanja.Ako imate fizički pristup računalu i spojenu tipkovnicu, često vam ne treba ništa drugo da biste isprobali probnu verziju.
U Ubuntuu, prilikom uključivanja računala, Izbornik GRUB2 možete prikazati držanjem tipke Shift. tijekom početne faze pokretanja. U tradicionalnim BIOS sustavima radi dobro; u UEFI-ju je obično dovoljno da GRUB prikaže zadani izbornik, ali ideja je ista: vidjeti popis sustava i opcija.
U tom izborniku obično ćete vidjeti prvi unos tipa Ubuntu, koji pokreće zadnji instalirani kernel, nakon čega slijedi podmeni pod nazivom Napredne opcije za Ubuntu (Napredne opcije). U ovom podmeniju navedene su sve dostupne verzije kernela, svaka sa svojim normalnim načinom rada i načinom oporavka.
Ako imate problema s najnovijom kernelom, Uobičajeno je otići u "Napredne opcije za Ubuntu". i odaberite stariju verziju (na primjer, Ubuntu, with Linux 5.15.0-94-generic) umjesto najnovije verzije 6.x. Nakon što se uspješno pokrene s tom verzijom, možete deinstalirati konfliktne kernele i regenerirati konfiguraciju s sudo update-grub.
Naravno, ovo ručno rješenje ima kvaku: Radi samo ako možete komunicirati s GRUB-omNa poslužiteljima bez tipkovnice, udaljenim računalima ili okruženjima gdje ne vidite konzolu za pokretanje, potrebna vam je trajna metoda koja GRUB-u govori koji unos uvijek koristiti, bez da vas pita pri svakom pokretanju.
Navedite sve kernele koje GRUB2 poznaje
Kako bi se pouzdano postavila zadana jezgra, Prvo morate znati koje unose u izborniku GRUB2 zapravo ima konfiguriraneNije dovoljno samo pogledati instalirane pakete, jer se pozicije u izborniku mogu promijeniti kada se dodaju ili uklanjaju kerneli.
GRUB2 generira svoj glavni izbornik u datoteci /boot/grub/grub.cfgIako se ne preporučuje ručno uređivanje (prepisuje se kada pokrenete ažuriranje-grubDa, možete ga pročitati kako biste izvukli informacije. Vrlo praktična naredba za popisivanje unosa je:
grep -Ei 'podizbornik|unos izbornika' /boot/grub/grub.cfg | sed -re «s/(.? )'(+)'.*/\1 \2/»
Ova naredba Vratit će popis svih unosa i podmenija. koje se pojavljuju pri pokretanju, nešto slično:
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)
Prvi unos je obično "Ubuntu" s najnovijom jezgromA unutar podmenija "Napredne opcije" prikazuju se sve instalirane verzije, poredane od najnovije do najstarije. U našem primjeru, ako želite uvijek pokrenuti sustav s Ubuntu, with Linux 5.15.0-94-genericTaj bi unos bio u naprednom podmeniju, a ne u glavnom izborniku.
Postavljanje određene jezgre prema poziciji u izborniku (GRUB_DEFAULT indeksi)
Klasičan oblik odredite koju kernel GRUB2 želi pokrenuti prema zadanim postavkama To uključuje označavanje indeksa (pozicije) unosa ili čak kombinacije "podizbornik > unos" kada se željena verzija nalazi unutar "Naprednih opcija za Ubuntu".
Datoteka koja ovo kontrolira je / Etc / default / grubPrije bilo kakvih promjena, preporučuje se stvaranje brze sigurnosne kopije u slučaju da se trebate lako vratiti na prethodno stanje. To možete učiniti pomoću:
sudo cp / etc / default / grub /etc/default/grub.bak
Zatim ga uredite svojim omiljenim editorom, na primjer s Nano:
sudo nano / etc / default / grub
Unutra ćete vidjeti ovakvu liniju GRUB_DEFAULT=0, što označava da će se koristiti prvi unos u glavnom izborniku (indeks nula). Ako se željena jezgra nalazi unutar podmenija "Napredne opcije"Možete reći GRUB-u da uđe u taj podmeni i odabere određenu poziciju koristeći notaciju submenú>entrada.
Slijedeći prethodni primjer, ako bi "Napredne opcije za Ubuntu" bile opcija 1 u glavnom izborniku, a unutar tog podmenija "Ubuntu, s Linuxom 5.15.0-94-generic" bila treća opcija (brojeći od nule i preskačući načine oporavka), mogli biste napisati nešto poput:
GRUB_DEFAULT="1>3"
Logika je jednostavna, ali morate obratiti pažnju na indekse.Prva razina odnosi se na položaj podmenija u glavnom izborniku, a druga na položaj unosa unutar tog podmenija. Također, imajte na umu da su unosi u "načinu oporavka" obično raspoređeni, pa normalne opcije koriste neparne brojeve, a opcije oporavka parne brojeve.
Nakon što se promijeniš GRUB_DEFAULT, spremite datoteku (u Nano, Ctrl + O y luego Ctrl + X) i primjenjuje promjene regeneriranjem GRUB konfiguracije pomoću:
sudo update-grub
Iza ovoga, ponovno pokrenite sustav s sudo ponovno podizanje sustava i, nakon što se pokrene, provjerava koja je jezgra učitana:
uname -a
Rezultat bi vam trebao pokazati, na primjer, Linux ... 5.15.0-94-generic ... što označava da sada koristite verziju koju ste postavili pomoću indeksa u GRUB_DEFAULT.
Koristite naziv unosa izbornika umjesto indeksa (način "spremljeno")
Metoda indeksiranja ima veliki problem: Položaji se mijenjaju kada instalirate ili deinstalirate kerneleTo znači da ažuriranje kernela može učiniti vaš 1>3 Prestanite ciljati ispravnu jezgru, što je upravo ono što želite izbjeći ako tražite dugoročnu stabilnost.
GRUB2 nudi mnogo robusniju alternativu: Koristite točan naziv stavke izbornika kao zadanu stavkuNa taj način, sve dok taj unos postoji u grub.cfgI dalje će biti odabran čak i ako se nove verzije dodaju iznad ili ispod njega na popisu.
Opća ideja je sljedeća: prvo Pronađite puni naziv stavke izbornika koju želite, kako se pojavljuje u /boot/grub/grub.cfg (na primjer Ubuntu, with Linux 6.8.0-60-generic), a zatim konfigurirate GRUB da ga koristi kao spremljeni_unos zadano.
Da biste pronašli točan naziv, možete otvoriti konfiguracijsku datoteku pomoću uređivača ili preglednika, na primjer:
sudo nano /boot/grub/grub.cfg
Kad uđete unutra, Koristite Ctrl+W u Nano programu za pretraživanje niza koji odgovara verziji kernela što vas zanima (na primjer, "6.8.0-60-generičko"). U skladu s menuentry Vidjet ćete puni naslov, nešto poput:
menuentry 'Ubuntu, with Linux 6.8.0-60-generic' ...
Sada, umjesto igranja s indeksima, Možete reći GRUB-u da koristi to ime kao spremljeni odabir.Tipičan postupak uključuje izvršavanje naredbi kao što su sljedeće:
sudo grub-set-default «Ubuntu, s Linuxom 6.8.0-60-generic»
Ova naredba definira navedeni unos kao onaj koji će se smatrati "spremljenim zadanim". Da biste potvrdili da je ispravno primijenjen, možete provjeriti GRUB datoteku okruženja:
sudo grub-editenv popis
Trebali biste vidjeti ovakav redak:
saved_entry=Ubuntu, with Linux 6.8.0-60-generic
Također je moguće da, ovisno o prethodnoj konfiguraciji, Koristi se opcija GRUB_DEFAULT=saved en /etc/default/grubšto GRUB-u govori da uvijek koristi zadnji spremljeni_unos uspostavljeno. U svakom slučaju, dok je saved_entry Ako odgovara vašoj željenoj jezgri, nastavit ćete automatski pokretati tu verziju.
Nakon primjene ovih promjena, regenerirajte konfiguracijsku datoteku s sudo update-grubPonovno pokrenite sustav i ponovno potvrdite s uname -a koju ste započeli s verzijom definiranom kao zadana.
Promjena kernela u Ubuntuu na određenu verziju (instalacija i vraćanje na stariju verziju)
U mnogim slučajevima ne želite samo odabrati unaprijed instaliranu jezgru, već prebacite se s trenutne verzije na određenuTo je ili zato što vaša aplikacija to zahtijeva, zato što upravljački program podržava samo određenu seriju ili zato što je nedavno ažuriranje uništilo pola vašeg sustava.
Prvi korak uvijek treba biti znati koji kernel trenutno koristiteZa to možete koristiti naredbe kao što su:
uname -r
Pa dobro:
uname -a
što će vratiti nešto poput ovoga:
Linux web 6.8.0-85-generic #85~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC ... x86_64 GNU/Linux
Nakon što znate gdje se nalazite, sljedeći korak je pogledajte koje su kernele dostupne u repozitorijimaU Ubuntu/Debian okruženjima, to se obično radi upitima paketima linux-image iz repozitorija, filtrirajući prema verziji koja vas zanima. Nakon što pronađete određenu verziju, možete je instalirati izravno pomoću naredbe apt ili je sami kompajlirati (vidi Kako tražiti konfiguracije u `make menuconfig`), kako vam više odgovara.
Na primjer, ako želite sići s 6.8.0-85-generički a 6.8.0-60-generičkiOdgovarajući paket biste instalirali odgovarajućom naredbom, potvrđujući s "S" kada pogodan Pitat će vas želite li nastaviti s instalacijom. Nakon što je proces završen, Tada ćete imati tu verziju kernela dostupnu za pokretanjeMeđutim, GRUB će nastaviti birati najnoviji dok ne promijenite postavke kako je objašnjeno.
Nakon instalacije željene jezgre, ponovno pokrenite računalo kako biste ga mogli dodijeliti kao zadanog pomoću jedne od gore navedenih metoda (indeksom ili imenom), ovisno o tome koja je prikladnija i robusnija za vaš slučaj.
Postavite određenu jezgru iz podmenija "Napredne opcije" kao zadanu
U distribucijama poput Ubuntu 22 i 24, kada se doda verzija kernela niža od trenutne, Ta verzija nije postavljena kao glavni unos.ali se dodaje u podmeni Napredne opcije za UbuntuStoga, čak i ako instalirate verziju 6.8.0-60 stariju od 6.8.0-85, nakon ponovnog pokretanja i dalje ćete pokrenuti verziju 85.
Za što GRUB2 automatski odabire željenu verziju iz podmenijaMorate znati njegovu točnu poziciju. Opet, naredba koja navodi menuentry y submenu Pomaže vam da vidite strukturu i numerički redoslijed koji će GRUB koristiti.
Zamislite da nakon pokretanja naredbe listing otkrijete da se vaša ciljna jezgra (na primjer, "Ubuntu, s Linuxom 6.8.0-60-generic") pojavljuje na četvrtoj poziciji podmenija "Napredne opcije" i da je taj podmeni prvi nakon glavnog unosa. U tom slučaju, kombinacija indeksa, počevši od nule, bila bi 1> 2 (podizbornik na poziciji 1, unos na poziciji 2 unutar tog podizbornika).
U datoteci /etc/default/grubZatim biste promijenili redak:
GRUB_DEFAULT=0
por:
GRUB_DEFAULT="1>2"
Nakon spremanja promjena i pokretanja sudo update-grub, Sljedeći put kada pokrenete sustav, ta specifična jezgra će biti automatski odabrana. unutar "Naprednih opcija", bez potrebe za ručnim ulaskom u podmeni svaki put.
Nakon ponovnog pokretanja možete provjeriti je li sve prošlo u redu s uname -r o uname -a, provjeravajući je li aktivna verzija kernela ona koju ste postavili putem GRUB_DEFAULT.
Deinstalirajte HWE i edge kernele i vratite se na stabilnu granu
Nakon što ste postigli Pokrenite sustav sa stabilnom kernelom iz linux-generic grane (na primjer, serija 5.15.x na Ubuntu 22.04 LTS), sljedeći logičan korak ako su vam HWE ili edge kerneli uzrokovali probleme je čišćenje tih grana sustava.
Za deinstalaciju HWE metapaketa možete koristiti prikladno pročišćavanje s džokerom koji pokriva cijelu granu, nešto poput:
sudo apt purge linux-generic-hwe-22.04*
Nakon uklanjanja tih metapaketa, vjerojatno ćete htjeti Također izbrišite slike modernih kernela koje vam više nisu potrebne.Ako, na primjer, želite ukloniti sve kernele starije od 6.x u korist serije 5.x, možete koristiti naredbu poput ove:
sudo apt purge linux-image-6*
Ova vrsta čišćenja uklanja pakete slika kernela čiji naziv počinje s "linux-image-6", stoga je preporučljivo pažljivo pregledati što ćete deinstalirati prije potvrde. Ne zaboravite da Morate održavati barem jednu stabilnu, funkcionalnu granu, obično linux-generičkijer bi bez njega sustavu moglo ponestati bootabilnih kernela.
Nakon bilo kakvog čišćenja kernela, bitno je Ažurirajte konfiguraciju GRUB-a kako biste prestali referencirati unose koji više ne postoje.U suprotnom, možete naići na opcije izbornika koje upućuju na izbrisane kernele. Za regeneriranje konfiguracijske datoteke upotrijebite:
sudo update-grub
Ako želite osigurati da generička grana ostane instalirana, možete prisilno instalirati njezinu instalaciju pomoću:
sudo apt instaliraj linux-generic
U većini slučajeva će vam reći da je već instaliran, ali na taj način potvrđujete da metapaket postoji i da ćete nastaviti primati sigurnosna ažuriranja i ispravke za tu stabilnu seriju.
Kao posljednji korak, ako ste se promijenili GRUB_DEFAULT indeksu ili određenom imenu kako bi se prebrodili problemi s HWE/edgeom, Možete ga vratiti na zadanu vrijednost (obično 0) ponovno uređivanje /etc/default/grub:
sudo nano / etc / default / grub
I ostavljajući redak kao:
GRUB_DEFAULT="0"
Zatim spremi, pokreni sudo update-grub i ponovno pokrenite s sudo ponovno podizanje sustava tako da se sustav normalno pokreće s najnovijom jezgrom iz grane linux-generički koju ste instalirali.
U konačnici, kontrola pokretanja kernela pomoću GRUB2 postaje temeljni alat za svakog korisnika Ubuntua, Debiana ili derivata koji ne želi biti prepušten na milost i nemilost najnovijeg ažuriranja. Kombiniranjem instalacije određenih verzija, korištenjem "Naprednih opcija", odabirom po indeksu ili po nazivu izbornika i čišćenjem problematičnih granaJezgru sustava možete prilagoditi svojim stvarnim potrebama: čvrsta stabilnost na poslužiteljima, maksimalna kompatibilnost na modernoj opremi ili proračunata kombinacija obojega u desktop okruženjima gdje ne želite riskirati svakodnevnu upotrebu na eksperimentalnoj jezgri.
Strastveni pisac o svijetu bajtova i tehnologije općenito. Volim dijeliti svoje znanje pisanjem, a to je ono što ću učiniti na ovom blogu, pokazati vam sve najzanimljivije stvari o gadgetima, softveru, hardveru, tehnološkim trendovima i još mnogo toga. Moj cilj je pomoći vam da se snađete u digitalnom svijetu na jednostavan i zabavan način.




