- GRUB2 låter dig flexibelt välja vilken kärnversion som ska startas som standard, med hjälp av menyindex eller det exakta postnamnet.
- Att leva med Linux-generiska, HWE- och edge-grenar kräver att man kontrollerar GRUB för att undvika instabilitet vid installation av nyare kärnor.
- Att redigera /etc/default/grub och återskapa konfigurationen med update-grub är grunden för att fixa eller återställa standardkärnan.
- Att avinstallera konflikterande kärnor och upprätthålla minst en stabil gren säkerställer att systemet förblir startbart och säkert.

Välja vilken kärnversion som startar som standard i Linux Det är inte bara en egenhet hos noggranna administratörer: i många fall är det skillnaden mellan att ha ett stabilt system och att drabbas av krascher, inkompatibilitet med grafikdrivrutiner eller fel i nyare hårdvara. Detta gäller särskilt i Ubuntu och andra Debian-baserade distributioner, där generiska grenar, HWE och andra distributioner samexisterar. experimentella versionerAtt kontrollera GRUB2 är nästan obligatoriskt.
När du installerar flera kärnor parallellt, GRUB2 försöker alltid starta den modernaste kärnan som finns tillgänglig.Det är okej för det mesta, men om du har tvingats återgå till en tidigare version på grund av en bugg eller en felaktig drivrutin måste du ange för GRUB vilken post som ska användas som standard. I den här artikeln ska vi titta i detalj och utan att krångla till hur man gör detta säkert och permanent, vilka nyanser man bör vara medveten om med de nya HWE-grenarna och hur man kombinerar det med andra användbara GRUB2-relaterade knep.
Vilka kärnversioner stöder Ubuntu och varför är du intresserad av att ändra dem?
Ubuntu underhåller flera kärnrader parallelltutformad för olika scenarier. Att förstå vad du har installerat är det första steget innan du rör vid något i GRUB2, eftersom det avgör vilka poster du ser i startmenyn och vilka du vill använda som standard.
Å ena sidan finns den klassiska grenen Linux-generiskDet här är kärnan som vanligtvis är förinstallerad på servrar och system där stabilitet är av största vikt. Det här är långlivade, noggrant testade kärnor, och i LTS-versioner som Ubuntu 22.04 motsvarar de vanligtvis serier som 5.15.x. Deras filosofi är tydlig: färre överraskningar, färre haverier efter en uppdatering.
Ubuntu stationära datorer erbjuder även HWE-kärnor (Hardware Enablement)Dessa grenar installeras till exempel med kommandon som sudo apt installera linux-generic-hwe-22.04 och de riktar sig mot nyare kärnversioner, som 6.5.x-serien när det gäller Ubuntu 22.04 LTS, med syftet att stödja modern hårdvara som inte fanns när den ursprungliga LTS släpptes.
Om du behöver gå ett steg längre finns det även varianten hwe-kant, utformad som "avantgarde"-grenen o absolut nyasteDen installeras med kommandon som sudo apt installera linux-generic-hwe-22.04-edge Den innehåller ofta ännu nyare kärnor (till exempel 6.7.x i själva Ubuntu 22.04). Den erbjuder stöd för mycket ny hårdvara, men på bekostnad av att öka sannolikheten för att stöta på buggar, instabiliteter eller konstigt beteende.
Även om systemet bara kör en kärna åt gången.Bilder av forntida kärnor finns bevarade i /boot Det är som en livförsäkring. Om en uppdatering gör din dator oanvändbar kan möjligheten att starta upp i en äldre version rädda dagen. Problemet är att när du installerar en nyare kärna tenderar Ubuntu att starta upp i den varje gång, och att avinstallera den utan att kunna starta upp i en annan kärna kan vara riktigt jobbigt.
Välj tillfälligt en annan kärna från GRUB2-menyn
Innan vi börjar redigera filer är det värt att komma ihåg att GRUB2 låter dig redan manuellt välja en annan kärna vid uppstart.Om du har fysisk tillgång till datorn och ett anslutet tangentbord behöver du ofta inget annat för att prova en förhandsvisningsversion.
I Ubuntu, när du slår på maskinen, Du kan visa GRUB2-menyn genom att hålla nere Skift-tangenten. under den initiala uppstartsfasen. I traditionella BIOS-system fungerar det bra; i UEFI räcker det vanligtvis att GRUB visar standardmenyn, men idén är densamma: att se listan över system och alternativ.
I den menyn ser du vanligtvis en första post av typen ubuntu, vilket är den som startar den senast installerade kärnan, följt av en undermeny som heter Avancerade alternativ för Ubuntu (Avancerade alternativ). I den här undermenyn listas alla tillgängliga kärnversioner, var och en med sitt normalläge och återställningsläge.
Om du har problem med den senaste kärnan, Det vanligaste är att gå in i "Avancerade alternativ för Ubuntu". och välj en äldre version (till exempel Ubuntu, with Linux 5.15.0-94-generic) istället för den senaste 6.x. När den har startat utan problem med den versionen kan du avinstallera de konflikterande kärnorna och återskapa konfigurationen med sudo update-grub.
Naturligtvis har den här manuella lösningen en hake: Det fungerar bara om du kan interagera med GRUBPå servrar utan tangentbord, fjärrmaskiner eller miljöer där du inte ser startkonsolen behöver du en persistent metod som talar om för GRUB vilken indata som alltid ska användas, utan att fråga dig vid varje start.
Lista alla kärnor som GRUB2 känner till
För att tillförlitligt kunna ställa in en standardkärna, Först behöver du veta vilka menyposter GRUB2 faktiskt har konfigureratDet räcker inte att bara titta på de installerade paketen, eftersom positionerna i menyn kan ändras när kärnor läggs till eller tas bort.
GRUB2 genererar sin huvudmeny i filen /boot/grub/grub.cfgÄven om det inte rekommenderas att redigera den manuellt (den skrivs över när du kör update-grubJa, du kan läsa den för att extrahera information. Ett mycket praktiskt kommando för att lista posterna är:
grep -Ei 'undermeny|menypost ' /boot/grub/grub.cfg | sed -re «s/(.? )'(+)'.*/\1 \2/»
Detta kommando Den returnerar en lista över alla poster och undermenyer. som visas vid uppstart, något liknande:
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)
Den första posten är vanligtvis "Ubuntu" med den modernaste kärnanOch i undermenyn "Avancerade alternativ" visas alla installerade versioner, sorterade från nyaste till äldsta. I vårt exempel, om du alltid vill starta med Ubuntu, with Linux 5.15.0-94-genericDen posten skulle finnas i den avancerade undermenyn, inte i huvudmenyn.
Ställ in en specifik kärna efter position i menyn (GRUB_DEFAULT-index)
En klassisk form av ange vilken kärna GRUB2 vill starta som standard Det innebär att man anger postens index (position), eller till och med en kombination av "undermeny > post" när önskad version finns inom "Avancerade alternativ för Ubuntu".
Filen som styr detta är / Etc / default / grubInnan du gör några ändringar rekommenderas det starkt att du skapar en snabb säkerhetskopia ifall du enkelt behöver återgå till ett tidigare tillstånd. Du kan göra detta med:
sudo cp / etc / default / grub /etc/default/grub.bak
Redigera sedan den med din favoritredigerare, till exempel med Nano:
sudo nano / etc / default / grub
Inuti ser du en linje som denna GRUB_DEFAULT=0, vilket indikerar att den första posten i huvudmenyn (index noll) kommer att användas. Om önskad kärna finns i undermenyn "Avancerade alternativ"Du kan be GRUB att gå in i den undermenyn och välja en specifik position med hjälp av notationen submenú>entrada.
Om man i enlighet med föregående exempel är "Avancerade alternativ för Ubuntu" alternativ 1 i huvudmenyn och "Ubuntu, med Linux 5.15.0-94-generic" är det tredje alternativet inom den undermenyn (räknat från noll och hoppat över återställningslägen), kan man skriva något i stil med:
GRUB_DEFAULT="1>3"
Logiken är enkel, men man måste vara uppmärksam på indexen.Den första nivån hänvisar till undermenyns position i huvudmenyn och den andra till postens position inom den undermenyn. Kom också ihåg att poster i "återställningsläge" vanligtvis är förskjutna, så vanliga alternativ använder udda nummer och återställningsalternativ använder jämna nummer.
När du väl har ändrat dig GRUB_DEFAULT, spara filen (i Nano, Ctrl + O och då Ctrl + X) och tillämpar ändringarna genom att återgenerera GRUB-konfigurationen med:
sudo update-grub
Bakom detta, starta om systemet med sudo omstart och när den startar kontrollerar den vilken kärna som har laddats med:
uname -a
Resultatet bör visa dig, till exempel, Linux ... 5.15.0-94-generic ... vilket indikerar att du nu använder den version du angav med hjälp av indexen i GRUB_DEFAULT.
Använd menypostens namn istället för index ("sparat"-läge)
Indexmetoden har ett stort problem: Positionerna ändras när du installerar eller avinstallerar kärnorDet betyder att en kärnuppdatering kan göra din 1>3 Sluta rikta in dig på rätt kärna, vilket är precis vad du vill undvika om du letar efter långsiktig stabilitet.
GRUB2 erbjuder ett mycket mer robust alternativ: Använd det exakta namnet på menyposten som standardalternativPå så sätt, så länge som den posten finns i grub.cfgDen kommer att fortsätta vara vald även om nya versioner läggs till ovanför eller under den i listan.
Den allmänna idén är denna: först Du hittar det fullständiga namnet på menyalternativet du vill ha, som det framgår i /boot/grub/grub.cfg (till exempel Ubuntu, with Linux 6.8.0-60-generic), och sedan konfigurerar du GRUB att använda den som sparad_post standard.
För att hitta det exakta namnet kan du öppna konfigurationsfilen med en redigerare eller ett visningsprogram, till exempel:
sudo nano /boot/grub/grub.cfg
Väl inne, Använd Ctrl+W i Nano för att söka efter strängen som motsvarar kärnversionen som intresserar dig (till exempel "6.8.0-60-generisk"). I stil med menuentry Du kommer att se hela titeln, ungefär så här:
menuentry 'Ubuntu, with Linux 6.8.0-60-generic' ...
Nu, istället för att leka med index, Du kan ange att GRUB ska använda det namnet som sparat val.Den typiska proceduren innebär att man kör kommandon som följande:
sudo grub-set-default «Ubuntu, med Linux 6.8.0-60-generic»
Det här kommandot definierar den angivna posten som den som ska betraktas som "sparad standard". För att bekräfta att den har tillämpats korrekt kan du kontrollera GRUB-miljöfilen:
sudo grub-editenv lista
Du borde se en rad som denna:
saved_entry=Ubuntu, with Linux 6.8.0-60-generic
Det är också möjligt att, beroende på den tidigare konfigurationen, alternativet GRUB_DEFAULT=saved används en /etc/default/grubvilket säger åt GRUB att alltid använda den sista sparad_post etablerad. I vilket fall som helst, medan saved_entry Om den matchar din önskade kärna fortsätter du att starta den versionen automatiskt.
Efter att ha tillämpat dessa ändringar, återskapa konfigurationsfilen med sudo update-grubStarta om systemet och bekräfta igen med uname -a att du startade med den version som definierats som standard.
Ändra kärnan i Ubuntu till en specifik version (installera och nedgradera)
I många fall vill du inte bara välja en förinstallerad kärna, utan byta från din nuvarande version till en specifik versionDetta beror antingen på att din applikation kräver det, på att en drivrutin bara stöder en viss serie, eller på att en nyligen genomförd uppdatering har orsakat att halva systemet har gått sönder.
Det första steget bör alltid vara vet vilken kärna du kör för närvarandeFör att göra detta kan du använda kommandon som:
uname-r
Nåväl:
uname -a
som kommer att returnera något liknande detta:
Linux web 6.8.0-85-generic #85~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC ... x86_64 GNU/Linux
När du vet var du är är nästa steg se vilka kärnor som finns tillgängliga i arkivenI Ubuntu/Debian-miljöer görs detta vanligtvis genom att fråga paketen linux-image från arkivet, filtrera efter den version du är intresserad av. När du har hittat den specifika versionen kan du installera den direkt med apt eller kompilera den själv (se Hur man söker efter konfigurationer i `make menuconfig`), som du föredrar.
Om du till exempel vill gå ner från 6.8.0-85-generic a 6.8.0-60-genericDu skulle installera motsvarande paket med lämpligt kommando och bekräfta med "S" när benägen Den kommer att fråga dig om du vill fortsätta med installationen. När processen är klar, Du kommer då att ha den kärnversionen tillgänglig för uppstartGRUB kommer dock att fortsätta välja den nyaste tills du ändrar inställningarna enligt beskrivningen.
Efter att ha installerat önskad kärna, starta om datorn för att kunna tilldela den som standard med hjälp av en av metoderna ovan (efter index eller namn), beroende på vilket som är mest praktiskt och robust för ditt fall.
Ställ in en specifik kärna från undermenyn "Avancerade alternativ" som standard
I distributioner som Ubuntu 22 och 24, när en kärnversion som är lägre än den nuvarande läggs till, Den versionen är inte inställd som huvudpost.men läggs till i undermenyn Avancerade alternativ för UbuntuDärför, även om du installerar en version 6.8.0-60 under en 6.8.0-85, kommer du fortfarande att starta med version 85 vid omstart.
För GRUB2 väljer automatiskt önskad version från undermenynDu behöver veta dess exakta position. Återigen, kommandot som listar menuentry y submenu Det hjälper dig att se strukturen och den numeriska ordning som GRUB kommer att använda.
Tänk dig att du efter att ha kört listing-kommandot upptäcker att din målkärna (till exempel "Ubuntu, med Linux 6.8.0-60-generic") visas på fjärde plats i undermenyn "Avancerade alternativ", och att denna undermeny är den första efter huvudmenyn. I så fall skulle indexkombinationen, med början från noll, vara den 1> 2 (undermeny på position 1, post på position 2 inom den undermenyn).
I filen /etc/default/grubDå skulle du ändra raden:
GRUB_DEFAULT=0
med:
GRUB_DEFAULT="1>2"
Efter att du har sparat ändringarna och kört sudo update-grub, Nästa gång du startar upp kommer den specifika kärnan att väljas automatiskt. inom "Avancerade alternativ", utan att behöva öppna undermenyn manuellt varje gång.
Efter omstarten kan du kontrollera att allt gick bra uname-r o uname -a, verifierar att den aktiva kärnversionen är den du har ställt in GRUB_DEFAULT.
Avinstallera HWE- och edge-kärnor och återgå till den stabila grenen
När du väl har uppnått starta systemet med en stabil kärna från den linux-generiska grenen (till exempel en 5.15.x-serie på Ubuntu 22.04 LTS), är nästa logiska steg om HWE- eller edge-kärnorna har gett dig problem att rensa dessa grenar i systemet.
För att avinstallera HWE-metapaket kan du använda lämplig rensning med ett jokertecken som täcker hela grenen, något i stil med:
sudo apt purge linux-generic-hwe-22.04*
Efter att du har tagit bort dessa metapaket vill du förmodligen Ta även bort bilder av moderna kärnor som du inte längre behöver.Om du till exempel vill bli av med alla kärnor högre än 6.x till förmån för 5.x-serien kan du använda ett kommando som detta:
sudo apt purge linux-image-6*
Den här typen av rensning tar bort kärnavbildningspaket vars namn börjar med "linux-image-6", så det är lämpligt att noggrant granska vad du ska avinstallera innan du bekräftar. Glöm inte att Du måste upprätthålla minst en stabil, fungerande gren, vanligtvis Linux-generiskeftersom utan den skulle systemet kunna få slut på startbara kärnor.
Efter varje kärnrensning är det viktigt Uppdatera GRUB-konfigurationen för att sluta referera till poster som inte längre finns.Annars kan du stöta på menyalternativ som pekar på borttagna kärnor. För att återskapa konfigurationsfilen, använd:
sudo update-grub
Om du vill säkerställa att den generiska grenen förblir installerad kan du tvinga fram installationen med:
sudo apt install linux-generic
I de flesta fall kommer den att säga att det redan är installerat, men på det här sättet verifierar du att metapaketet finns och att du fortsätter att få säkerhetsuppdateringar och korrigeringar för den stabila serien.
Som ett sista steg, om du hade ändrat dig GRUB_DEFAULT till ett index eller ett specifikt namn för att överleva problemen med HWE/edge, Du kan återställa det till standardvärdet (vanligtvis 0) redigerar igen /etc/default/grub:
sudo nano / etc / default / grub
Och lämnar raden som:
GRUB_DEFAULT="0"
Spara sedan, kör sudo update-grub och starta om med sudo omstart så att systemet startar normalt med den senaste kärnan från grenen Linux-generisk som du har installerat.
I slutändan blir det ett grundläggande verktyg för alla Ubuntu-, Debian- eller derivatanvändare som inte vill vara utlämnade till den senaste uppdateringen att kontrollera vilken kärna som startar med GRUB2. Genom att kombinera installationen av specifika versioner, användningen av "Avancerade alternativ", val efter index eller menynamn och rensning av problematiska grenar.Du kan anpassa systemkärnan till dina verkliga behov: bergsolid stabilitet på servrar, maximal kompatibilitet på modern utrustning eller en kalkylerad blandning av båda i skrivbordsmiljöer där du inte vill riskera din dagliga användning på en experimentell kärna.
Passionerad författare om bytesvärlden och tekniken i allmänhet. Jag älskar att dela med mig av min kunskap genom att skriva, och det är vad jag kommer att göra i den här bloggen, visa dig alla de mest intressanta sakerna om prylar, mjukvara, hårdvara, tekniska trender och mer. Mitt mål är att hjälpa dig att navigera i den digitala världen på ett enkelt och underhållande sätt.




