Како безбедно променити верзију Линук кернела у GRUB2

Последње ажурирање: 31/03/2026
Аутор: Исак
  • GRUB2 вам омогућава да флексибилно изаберете коју верзију кернела ћете покренути по подразумеваним подешавањима, користећи индексе менија или тачно име уноса.
  • Живот са linux-generic, HWE и edge гранама захтева контролу GRUB-а како би се избегле нестабилности приликом инсталирања новијих језгара.
  • Уређивање /etc/default/grub и регенерисање конфигурације помоћу команде update-grub је основа за поправљање или враћање подразумеваног језгра.
  • Деинсталирање конфликтних језгара и одржавање барем једне стабилне гране осигурава да систем остане покретачки и безбедан.

Промена верзије Линуксовог кернела у GRUB2

Избор верзије кернела која се подразумевано покреће у Линуксу То није само хир педантних администратора: у многим случајевима, то је разлика између стабилног система и падова система, некомпатибилности са графичким драјверима или кварова у новијем хардверу. Ово је посебно тачно у Ubuntu-у и другим Debian-базираним дистрибуцијама, где генеричке гране, HWE и друге дистрибуције коегзистирају. експерименталне верзијеКонтролисање GRUB2 је готово обавезно.

Када инсталирате више језгара паралелно, GRUB2 увек покушава да покрене најновије доступно језгро.То је у реду већину времена, али ако сте били приморани да се вратите на претходну верзију због грешке или неисправног драјвера, мораћете да кажете GRUB-у који унос да користи као подразумевани. У овом чланку ћемо детаљно и без околине погледати како да то урадите безбедно и трајно, које нијансе треба да знате код нових HWE грана и како да то комбинујете са другим корисним триковима везаним за GRUB2.

Које верзије кернела подржава Убунту и зашто сте заинтересовани да их промените?

Убунту одржава неколико линија језгра паралелнодизајниран за различите сценарије. Разумевање шта сте инсталирали је први корак пре него што додирнете било шта у GRUB2, јер ће то одредити које ставке видите у менију за покретање и које желите да користите као подразумеване.

С једне стране постоји класична грана Linux-генеричкиОво је језгро које обично долази унапред инсталирано на серверима и системима где је стабилност најважнија. То су дуготрајна, темељно тестирана језгра, а у LTS верзијама попут Ubuntu 22.04, она обично одговарају серијама као што је 5.15.x. Њихова филозофија је јасна: мање изненађења, мање кварова након ажурирања.

Десктоп рачунари са Убунту-ом такође нуде HWE (хардверска омогућавања) језграОве гране се инсталирају, на пример, помоћу команди као што су судо апт инсталл линук-генериц-хве-22.04 и циљају новије верзије кернела, као што је серија 6.5.x у случају Ubuntu 22.04 LTS, са циљем подршке за модерни хардвер који није постојао када је објављен оригинални LTS.

Ако треба да идете корак даље, постоји и варијанта hwe-edge, дизајниран као огранак „авангарде“ o крварење ивицеИнсталира се помоћу команди као што су судо апт инсталл линукс-генерик-хве-22.04-еџ Често укључује чак и новије кернеле (на пример, 6.7.x у самом Ubuntu 22.04). Нуди подршку за веома нови хардвер, али по цену повећања вероватноће наилажења на грешке, нестабилности или чудно понашање.

Иако систем покреће само једно језгро истовремено.Слике древних језгара су сачуване у /boot То је као полиса животног осигурања. Ако ажурирање учини ваш рачунар неупотребљивим, могућност покретања старије верзије може спасити дан. Проблем је што када инсталирате новији кернел, Убунту ће се сваки пут покретати у њега, а деинсталирање без могућности покретања у други кернел може бити права мука.

Напредне опције GRUB2

Привремено изаберите друго језгро из GRUB2 менија

Пре него што почнемо са уређивањем датотека, вреди запамтити да GRUB2 вам већ дозвољава да ручно изаберете друго језгро при покретању система.Ако имате физички приступ рачунару и повезану тастатуру, често вам не треба ништа друго да бисте испробали прегледну верзију.

У Убунтуу, када укључите машину, Можете приказати GRUB2 мени држећи притиснут тастер Shift. током почетне фазе покретања. У традиционалним BIOS системима то добро функционише; у UEFI-ју је обично довољно да GRUB прикаже подразумевани мени, али идеја је иста: да се види листа система и опција.

У том менију ћете обично видети први унос типа убунту, што је онај који покреће последње инсталирано језгро, након чега следи подмени под називом Напредне опције за Убунту (Напредне опције). У овом подменију су наведене све доступне верзије језгра, свака са својим нормалним режимом и режимом опоравка.

  Како користити рачунар као Виндовс 10 рутер: лако и једноставно

Ако имате проблема са најновијим кернелом, Уобичајено је да одете у „Напредне опције за Убунту“. и изаберите старију верзију (на пример, Ubuntu, with Linux 5.15.0-94-generic) уместо најновије верзије 6.x. Када се успешно покрене са том верзијом, можете деинсталирати конфликтна језгра и поново генерисати конфигурацију са судо упдате-груб.

Наравно, ово ручно решење има једну зачкољицу: Ради само ако можете да комуницирате са GRUB-омНа серверима без тастатуре, удаљеним машинама или окружењима где не видите конзолу за покретање, потребна вам је перзистентна метода која говори GRUB-у који улаз да увек користи, без питања при сваком покретању.

Наведите сва језгра која GRUB2 познаје

Да би се поуздано подесило подразумевано језгро, Прво морате знати које ставке менија GRUB2 је заправо конфигурисаоНије довољно само погледати инсталиране пакете, јер се позиције у менију могу променити када се језгра додају или уклањају.

GRUB2 генерише свој главни мени у датотеци /boot/grub/grub.cfgИако се не препоручује ручно уређивање (преписује се када покренете упдате-грубДа, можете га прочитати да бисте извукли информације. Веома практична команда за листање уноса је:

grep -Ei 'подмени|мени ' /boot/grub/grub.cfg | sed -re «s/(.? )'(+)'.*/\1 \2/»

Ова наредба Вратиће листу свих уноса и подменија. које се појављују при покретању, нешто слично:

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)

Први унос је обично „Ubuntu“ са најновијим кернеломА у подменију „Напредне опције“ приказују се све инсталиране верзије, поређане од најновије до најстарије. У нашем примеру, ако желите да увек покренете систем са Ubuntu, with Linux 5.15.0-94-genericТај унос би био у напредном подменију, а не у главном менију.

Листа GRUB2 уноса

Подесите одређено језгро према позицији у менију (GRUB_DEFAULT индекси)

Класичан облик наведите које језгро GRUB2 жели да се покрене подразумевано То подразумева навођење индекса (позиције) уноса, или чак комбинације „подмени > унос“ када се жељена верзија налази у оквиру „Напредних опција за Убунту“.

Датотека која ово контролише је / етц / дефаулт / грубПре него што направите било какве измене, топло се препоручује да направите брзу резервну копију у случају да вам је потребно да се лако вратите на претходно стање. То можете учинити помоћу:

судо цп /етц/дефаулт/груб /етц/дефаулт/груб.бак

Затим, уредите га својим омиљеним едитором, на пример помоћу Нано-а:

судо нано / етц / дефаулт / груб

Унутра ћете видети линију попут ове GRUB_DEFAULT=0, што указује да ће се користити први унос у главном менију (индекс нула). Ако се жељено језгро налази у подменију „Напредне опције“Можете рећи GRUB-у да уђе у тај подмени и изабере одређену позицију користећи нотацију submenú>entrada.

Пратећи претходни пример, ако би „Напредне опције за Ubuntu“ биле опција 1 у главном менију, а унутар тог подменија „Ubuntu, са Linux 5.15.0-94-generic“ била трећа опција (рачунајући од нуле и прескачући режиме опоравка), могли бисте написати нешто попут:

GRUB_DEFAULT="1>3"

Логика је једноставна, али морате обратити пажњу на индексе.Први ниво се односи на позицију подменија у главном менију, а други на позицију ставке унутар тог подменија. Такође, имајте на уму да су ставке у „режиму опоравка“ обично распоређене по степеницама, тако да нормалне опције користе непарне бројеве, а опције опоравка парне бројеве.

Када се једном промените GRUB_DEFAULT, сачувајте датотеку (у Нано, Цтрл + О и онда Цтрл + В) и примењује промене регенерисањем GRUB конфигурације помоћу:

судо упдате-груб

Иза овога, поново покрените систем са судо ребоот и, када се покрене, проверава које је језгро учитано:

унаме -а

Резултат би требало да вам покаже, на пример, Linux ... 5.15.0-94-generic ... што указује да сада користите верзију коју сте подесили користећи индексе у GRUB_DEFAULT.

Користите име уноса у менију уместо индекса (режим „сачувано“)

Метод индексирања има велики проблем: Позиције се мењају када инсталирате или деинсталирате језграТо значи да ажурирање језгра може учинити ваш 1>3 Престаните да циљате на исправно језгро, што је управо оно што желите да избегнете ако тражите дугорочну стабилност.

  ПикаОС, Линуксовa дистрибуција која олакшава играње игара

GRUB2 нуди много робуснију алтернативу: Користите тачно име ставке менија као подразумевану ставкуНа овај начин, све док тај унос постоји у grub.cfgИ даље ће бити изабрана чак и ако се нове верзије додају изнад или испод ње на листи.

Општа идеја је следећа: прво Проналазите пуно име ставке менија коју желите, као што се појављује у /boot/grub/grub.cfg (на пример Ubuntu, with Linux 6.8.0-60-generic), а затим конфигуришете GRUB да га користи као сачувани_унос Уобичајено.

Да бисте пронашли тачно име, можете отворити конфигурациону датотеку помоћу уређивача или прегледача, на пример:

судо нано /боот/груб/груб.цфг

Једном унутра, Користите Ctrl+W у Nano-у да бисте претражили стринг који одговара верзији кернела што вас занима (на пример, „6.8.0-60-генеричко“). У складу са menuentry Видећете пун наслов, нешто попут:

menuentry 'Ubuntu, with Linux 6.8.0-60-generic' ...

Сада, уместо да се играмо са индексима, Можете рећи GRUB-у да користи то име као сачувани избор.Типична процедура укључује извршавање команди као што су следеће:

sudo grub-set-default «Ubuntu, са Linux-ом 6.8.0-60-generic»

Ова команда дефинише наведени унос као онај који ће се сматрати „сачуваним подразумеваним“. Да бисте потврдили да је исправно примењен, можете проверити GRUB датотеку окружења:

sudo grub-editenv листа

Требало би да видите линију попут ове:

saved_entry=Ubuntu, with Linux 6.8.0-60-generic

Такође је могуће да, у зависности од претходне конфигурације, Користи се опција GRUB_DEFAULT=saved en /etc/default/grubшто говори GRUB-у да увек користи последњи сачувани_унос успостављено. У сваком случају, док је saved_entry Ако се подудара са жељеним кернелом, наставићете аутоматски да покрећете ту верзију.

Након примене ових промена, регенеришите конфигурациони фајл са судо упдате-грубПоново покрените систем и поново потврдите са унаме -а коју сте започели са верзијом дефинисаном као подразумеваном.

Конфигуришите GRUB2 са сачуваним кернелом

Промена језгра у Убунтуу на одређену верзију (инсталирање и враћање на старију верзију)

У многим случајевима не желите само да изаберете унапред инсталирано језгро, већ пређите са тренутне верзије на одређенуТо је или зато што ваша апликација то захтева, зато што драјвер подржава само одређену серију или зато што је недавно ажурирање покварило половину вашег система.

Први корак увек треба да буде знате које језгро тренутно користитеДа бисте то урадили, можете користити команде као што су:

унаме -р

О добро:

унаме -а

што ће вратити нешто попут овога:

Linux web 6.8.0-85-generic #85~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC ... x86_64 GNU/Linux

Када знате где се налазите, следећи корак је погледајте која су језгра доступна у репозиторијумимаУ Ubuntu/Debian окружењима, ово се обично ради упитом пакетима linux-image из репозиторијума, филтрирајући по верзији која вас занима. Када пронађете одређену верзију, можете је директно инсталирати помоћу команде apt или је сами компајлирати (видети Како претражити конфигурације у `make menuconfig`), како вам је драже.

На пример, ако желите да сиђете са КСНУМКС-КСНУМКС-генерички a КСНУМКС-КСНУМКС-генеричкиИнсталирали бисте одговарајући пакет одговарајућом командом, потврђујући са "S" када погодан Питаће вас да ли желите да наставите са инсталацијом. Након што је процес завршен, Тада ћете имати ту верзију кернела доступну за покретање системаМеђутим, GRUB ће наставити да бира најновији док не промените подешавања као што је објашњено.

Након инсталирања жељеног језгра, поново покрените рачунар да бисте га могли доделити као подразумеваног користећи једну од горе наведених метода (по индексу или по имену), шта год је погодније и робусније за ваш случај.

Поставите одређено језгро из подменија „Напредне опције“ као подразумевано

У дистрибуцијама попут Ubuntu 22 и 24, када се дода верзија кернела нижа од тренутне, Та верзија није постављена као главни унос.али се додаје у подмени Напредне опције за УбунтуСтога, чак и ако инсталирате верзију 6.8.0-60 старију од 6.8.0-85, након поновног покретања ћете и даље покренути систем са верзијом 85.

За шта GRUB2 аутоматски бира жељену верзију из подменијаМорате знати његову тачну позицију. Поново, команда која наводи menuentry y submenu Помаже вам да видите структуру и нумерички редослед који ће GRUB користити.

  Тренутни тржишни удео Windows-а, macOS-а и Linux-а: Анализа и трендови

Замислите да након покретања команде listing откријете да се ваше циљно језгро (на пример, „Ubuntu, са Linux 6.8.0-60-generic“) појављује на четвртој позицији подменија „Напредне опције“ и да је овај подмени први после главног уноса. У том случају, комбинација индекса, почевши од нуле, била би 1> 2 (подмени на позицији 1, унос на позицији 2 унутар тог подменија).

У досијеу /etc/default/grubОнда бисте променили линију:

GRUB_DEFAULT=0

по:

GRUB_DEFAULT="1>2"

Након чувања промена и покретања судо упдате-груб, Следећи пут када покренете систем, то одређено језгро ће бити аутоматски изабрано. у оквиру „Напредних опција“, без потребе да сваки пут ручно улазите у подмени.

Након поновног покретања можете проверити да ли је све прошло у реду са унаме -р o унаме -а, проверавајући да ли је активна верзија језгра она коју сте подесили GRUB_DEFAULT.

Уређивање конфигурације GRUB2

Деинсталирајте HWE и edge језгра и вратите се на стабилну грану

Једном кад сте добили покрените систем са стабилним кернелом из гране linux-generic (на пример, серија 5.15.x на Ubuntu 22.04 LTS), следећи логичан корак ако су вам HWE или edge језгра изазвали проблеме је чишћење тих грана система.

Да бисте деинсталирали HWE метапакете, можете користити апт пурге са џокером који покрива целу грану, нешто попут:

судо апт пурге линукс-генерик-хве-22.04*

Након уклањања тих метапакета, вероватно ћете желети да Такође обришите слике модерних језгара које вам више нису потребне.Ако, на пример, желите да се решите свих језгара виших од 6.x у корист серије 5.x, можете користити команду попут ове:

судо апт пурге линукс-имаге-6*

Ова врста чишћења уклања пакете слика језгра чије име почиње са „linux-image-6“, па је препоручљиво пажљиво прегледати шта ћете деинсталирати пре него што потврдите. Не заборавите да Морате одржавати барем једну стабилну, функционалну грану, обично Linux-генеричкијер би без њега систему могло понестати покретачких језгара.

Након било каквог чишћења језгра, неопходно је Ажурирајте GRUB конфигурацију да бисте престали да референцирате ставке које више не постоје.У супротном, можете наићи на опције менија које указују на обрисана језгра. Да бисте регенерисали конфигурациону датотеку, користите:

судо упдате-груб

Ако желите да осигурате да генеричка грана остане инсталирана, можете је присилно инсталирати помоћу:

sudo apt инсталирајте linux-generic

У већини случајева ће вам рећи да је већ инсталиран, али на овај начин проверавате да метапакет постоји и да ћете наставити да примате безбедносна ажурирања и исправке за ту стабилну серију.

Као последњи корак, ако сте се променили GRUB_DEFAULT на индекс или одређено име да би се преживели проблеми са HWE/edge, Можете га вратити на подразумевану вредност (обично 0) поново уређујем /etc/default/grub:

судо нано / етц / дефаулт / груб

И остављајући линију као:

GRUB_DEFAULT="0"

Затим сачувај, покрени судо упдате-груб и поново покрените са судо ребоот тако да се систем нормално покреће са најновијим кернелом из гране Linux-генерички коју сте инсталирали.

На крају крајева, контролисање којег језгра се покреће помоћу GRUB2 постаје основни алат за сваког корисника Ubuntu-а, Debian-а или деривата који не жели да буде препуштен на милост и немилост најновијег ажурирања. Комбиновањем инсталације одређених верзија, коришћењем „Напредних опција“, селекцијом по индексу или по називу менија и чишћењем проблематичних гранаМожете прилагодити језгро система својим стварним потребама: чврста стабилност на серверима, максимална компатибилност на модерној опреми или прорачуната комбинација оба у десктоп окружењима где не желите да ризикујете свакодневну употребу експерименталног језгра.

не приказује GRUB мени када се промени GRUB_TIMEOUT=
Повезани чланак:
GRUB не приказује мени након промене GRUB_TIMEOUT: узроци и коначно решење