Изменить ядро загрузки linux

Изменение загружаемого по умолчанию ядра в Ubuntu Linux

При установке системных обновлений в виртуальной машине с Ubuntu Server 14.04 32-bit я столкнулся с ситуацией, когда вновь установленное в систему ядро Linux не смогло загрузиться. Если система была установлена с загрузчиком GRUB, то в процессе каждой загрузки у нас есть возможность вручную выбрать ядро (предполагается, что при обновлении мы сохранили старое работоспособное ядро), которое будет загружено.

Когда процесс загрузки отобразит меню GRUB, выберем пункт меню Advanced options for Ubuntu

В появившемся списке доступных для загрузки ядер Linux выберем предыдущее ядро, с которым загрузка ВМ проходила успешно до обновления (в моём случае это ядро версии 3.13.0.-24).

Однако при следующей перезагрузке системы без ручного вмешательства в процесс загрузки, загрузчик GRUB всё-равно запустит более новое ядро, так как оно назначено в качестве ядра по умолчанию. Для того, чтобы переопределить загружаемое по умолчанию ядро, запомним позицию нужного нам ядра в списке GRUB (в моём случае это 2 позиция с учётом того, что нумерация идёт с 0). Загрузим систему, вручную выбрав нужное ядро, и отредактируем конфигурационный файл GRUB:

В файле отредактируем строчку, как описано здесь , указав индекс нужных позиций структуры меню GRUB, чтобы добраться до ядра, которое будет загружаться по умолчанию (первая цифра означает позицию меню первого уровня, вторая – второго уровня соответственно):

Сохраним изменения в файле и обновим информацию в самом загрузчике:

Перезагрузим сервер и убедимся в том, что система успешно запускается c нужным нам ядром:

Источник

Как я могу загрузиться с более старой версией ядра?

Последнее ядро ​​вызывает проблемы с моим звуком, которое отлично работало со старой версией. Поскольку у меня установлена ​​только Ubuntu, Grub не отображается во время загрузки. Как я могу вручную выбрать версию своего ядра при загрузке?

Самый простой способ отобразить ваш Grub — это нажать и удерживать SHIFT кнопку во время загрузки.

В качестве альтернативы вы всегда можете отобразить Grub без загрузки какого-либо конкретного ядра:

изменить GRUB_TIMEOUT на -1 и закомментировать GRUB_HIDDEN_TIMEOUT

Удерживая нажатой клавишу Shift во время загрузки, появится меню Grub. Теперь вы можете выбрать более старую версию ядра.

Для выбора более старого ядра в качестве ядра по умолчанию, пожалуйста, смотрите этот пост

Во время загрузки, когда появляется GRUB с записями, выберите вторую запись, т. Е. В разделе « Дополнительные параметры» для Ubuntu вы можете увидеть различные старые версии ядра, которые были установлены ранее, вы можете выбрать одну из них, которая вам подходит. В противном случае вы идете в grub.cfg и вставляете нужную версию ядра поверх установленной в данный момент записи ядра. В обоих случаях это работает

Если у вас есть несколько ядер в вашей системе, вы можете вручную установить, какая версия ядра будет запускаться:

Перезагрузите компьютер с нажатой кнопкой Shift для отображения GRUB после запуска BIOS. Вы увидите что-то вроде: стартовая страница GRUB

Выберите «Дополнительные параметры для Ubuntu» и запомните индекс этой строки меню (отсчет начинается с 0). На картинке индекс равен 1

Выберите конкретное ядро ​​для загрузки, а также запомните индекс этой строки меню (отсчет начинается с 0). На картинке индекс выбранного ядра равен 2

Запустить систему. Это действие для одной загрузки на конкретном ядре. Если вы хотите все время начинать с конкретного ядра, вы должны сделать следующие шаги:

Читайте также:  Phpstorm ��� mac os

4.1. Откройте и отредактируйте установочный файл GRUB:

4.2. Найти строку GRUB_DEFAULT = . (по умолчанию GRUB_DEFAULT = 0) и задать в меню кавычек путь к конкретному Ядру (запомнить индексы меню из шагов 2 и 3). В моей системе первый индекс был 1, а второй — 2. Я установил GRUB_DEFAULT

4,3. Обновите информацию GRUB для применения изменений:

4.4. После перезагрузки вы автоматически загружаетесь в ядро ​​по выбранному пути меню. Пример на моей машине 1 -> 2

4,5. Проверьте версию ядра после перезагрузки:

Этот параметр определяет, как долго будет отображаться экран без меню GRUB 2. Пока экран пуст, пользователь может нажать любую клавишу для отображения меню.

Поведение по умолчанию — скрывать меню, если присутствует только одна операционная система. Если пользователь только с Ubuntu желает отобразить меню, поместите символ # в начале этой строки, чтобы отключить функцию скрытого меню.

Пожалуйста, установите предыдущее ядро ​​с помощью следующей команды:

Затем перезагрузите компьютер. Вам будет предложено выбрать ядро.

Сразу после появления заставки BIOS / UEFI во время загрузки с BIOS быстро нажмите и удерживайте Shift клавишу, которая вызовет меню GNU GRUB. (Если вы видите логотип Ubuntu, вы пропустили точку, в которой вы можете войти в меню GRUB.) С помощью UEFI нажмите (возможно, несколько раз) Esc клавишу, чтобы перейти в меню GRUB. Иногда заставка производителя является частью загрузчика Windows, поэтому, когда вы включаете компьютер, он переходит прямо к экрану GRUB, а затем нажимать Shift не нужно.

На экране GRUB выберите Дополнительные параметры для Ubuntu и нажмите Enter .

Появится новый фиолетовый экран со списком ядер. Используйте клавиши ↑ и ↓, чтобы выбрать, какая запись будет выделена. Нажмите Enter для загрузки выбранного ядра, «e» для редактирования команд перед загрузкой или «c» для командной строки. Нажмите Esc, чтобы вернуться в предыдущее меню.

Ответ Джеккобека описывает способ просмотра grub.cfg и прокрутки исходного кода для поиска номера меню. Более простой способ с этим сценарием :

Примечание: в этом примере grub-menu.sh short был использован для вызова сценария. short Параметр подавляет эти строки:

Управляющие клавиши

После прокрутки записей (вы можете использовать колесо прокрутки мыши или клавиши со стрелками) нажмите, Escape чтобы вернуться в командную строку.

Если вы нажмете Enter ассоциированные команды Grub для записи отображаются:

Обновление grub для загрузки предыдущего ядра

Набор команд Grub существует для каждого пункта меню. Все скомпилированные записи хранятся в /boot/grub/grub.cfg файле.

В этом примере мы хотим, чтобы номер меню `1> 9> был установлен по умолчанию, поэтому мы используем:

Источник

Установить ядро ​​по умолчанию в GRUB

Как выбрать ядро ​​GRUB2 по умолчанию? Я недавно установил ядро ​​Linux реального времени, и теперь оно загружается по умолчанию. Я хотел бы загрузить обычный по умолчанию.

До сих пор мне удалось выбрать только ОС по умолчанию . и по какой-то причине /boot/grub.cfg уже предполагается, что я хочу загрузить rt-ядро и поместить его в общий пункт меню linux (в моем случае Arch Linux).

Я думаю, что большинство дистрибутивов перенесли дополнительные ядра в подменю расширенных опций на данный момент, как обнаружил TomTom в случае с его Arch.

Я не хотел изменять структуру меню верхнего уровня, чтобы выбрать предыдущее ядро ​​в качестве используемого по умолчанию. Я нашел ответ здесь:

1) Найдите $menuentry_id _пцию для подменю:

2) Найдите пункт $menuentry_id_option меню для ядра, которое вы хотите использовать:

3) Закомментируйте ваш текущий набор по умолчанию /etc/default/grub и замените его подменю $menuentry_id_option с первого шага, а выбранное ядро $menuentry_id_option с второго шага разделите > .

Читайте также:  What is windows runtime environment

В моем случае модифицированным GRUB_DEFAULT является:

4) Обновите grub, чтобы внести изменения. Для Debian это делается так:

Готово. Теперь при загрузке в расширенном меню должна быть звездочка, и вы должны загрузиться в выбранное ядро. Вы можете подтвердить это с помощью uname.

Изменить это на самое последнее ядро ​​так же просто, как закомментировать новую строку и раскомментировать #GRUB_DEFAULT=0 , а затем перезапустить update-grub .

После двух часов борьбы я нашел гораздо более простой способ добиться этого. Я просто RTFM. 😉

Добавьте две строки в / etc / default / grub

Выполните sudo update-grub , перезагрузитесь, войдите в свое меню grub и выберите любой пункт меню или подменю, который вам нужен. Выбор будет сохранен, и в следующий раз ваш компьютер загрузится в него автоматически.

Как упоминалось в комментариях, вы можете установить ядро ​​по умолчанию для загрузки с помощью grub-set-default X команды, где X — это номер ядра, в которое вы хотите загрузиться. В некоторых дистрибутивах вы также можете установить этот номер, отредактировав /etc/default/grub файл и настройку GRUB_DEFAULT=X , а затем запустив update-grub .

Число — это индекс массива ядер / настроек ядра, отображаемых в меню GRUB во время загрузки, при этом 0 — это первая (самая верхняя) запись. Обычно вы можете найти правильное число, посмотрев menuentry строки /boot/grub/grub.cfg , например:

Вы увидите каждое ядро ​​в списке с именем, которое отображается в меню загрузки GRUB. Первый — 0, второй — 1 и т. Д.

Простое выполнение grep ‘menuentry’ /boot/grub/grub.cfg перечисляет дополнительные записи, которые не относятся к фактическим версиям ядра или ОС. Например, он перечисляет

Я хотел бы предложить небольшое улучшение метода поиска этого файла: использовать awk

С помощью приведенной ниже команды и ее вывода вы можете увидеть, что awk код соответствует фактической версии ОС, и указать номер, который вы затем можете использовать в /etc/default/grub файле.

В дополнение к редактированию /etc/default/grub файла вручную, я предлагаю использовать sed . В приведенной ниже команде замените X на соответствующий номер, полученный из команды awk выше:

sudo sed -i ‘s/GRUB_DEFAULT=0/GRUB_DEFAULT=X/g’ /etc/default/grub; sudo update-grub

Я думаю, jkt123 будет работать для большинства дистрибутивов. Однако для Arch Linux это не сработало, по крайней мере, с теми пакетами, которые у меня есть.

Индексы, которые вы можете установить, grub-set-default соответствуют только пунктам главного меню. Однако параметры ядра находятся в подменю. Таким образом, вы либо перемещаете запись ядра из подменю в главное меню, либо помещаете запись в верхней части списка подменю и выбираете подменю.

Мое меню Grub

  • Arch Linux
  • Расширенные опции для Arch Linux
    • Ядро 1
    • Ядро 2
  • Windows

Чтобы иметь возможность загружать ядро ​​2, вы должны либо поменять его местами с ядром 1, либо поместить его вне подменю на том же уровне, что и Arch Linux или Windows. А затем установите номер по умолчанию для одного из индексов главного меню. Например, в меню выше «0» загружает «Arch Linux» и «1» загружает ядро ​​1.

Чтобы изменить иерархию и обмен, откройте /boot/grub/grub.cfg и переместите запись, которую вы хотите переместить. Запись может выглядеть так

Затем вам нужно применить ваши изменения. В моем случае с grub-mkconfig . Но это может варьироваться от системы к системе.

Источник

Изменение загружаемого по умолчанию ядра в Ubuntu

В интернете есть множество разных статей о том как изменить загружаемое по умолчанию ядро в Ubuntu 18.04 и 20.04

В основном все статьи описывают сложный и не удобный способ через указание ID подменю в опции GRUB_DEFAULT файла /etc/default/grub, но есть способ проще.

Читайте также:  Linux gem что это

Исходные данные: ОС Ubuntu 18.04 и 20.04
Задача: Смена ядра по умолчанию в Ubuntu 18.04 и 20.04

По умолчанию если мы обновляем Linux-ядро, то Ubuntu сохраняет предыдущую версию и в случае каких-то проблем с новым ядром мы всегда можем загрузить более старое, но чтобы это сделать нужно попасть в меню загрузчика. Попасть мы туда можем если во время загрузки сервера будем постоянно (часто) нажимать клавишу TAB и меню GRUB будет показано на экране, далее мы идем в пункт «Advanced options for Ubuntu» и выбираем там нужное нам Linux-ядро. Все это хорошо, но нам нужно чтобы предыдущая версия Linux-ядра выбиралась сама и была использована GRUB по умолчанию.

Для достижения нашей цели мы будем редактировать файл /etc/default/grub, поэтому прежде чем его менять Вам нужно понимать что Вы меняете и для чего. Рекомендую для начала ознакомиться с официальной документацией на GRUB в части некоторых основных опций.

Все редактирование будет осуществляться с правами root, так что перейдите в консоль под пользователем root.

Откройте файл /etc/default/grub в привычном Вам редакторе, это может быть vim или например mcedit. Я использую vim.

Ниже представлен файл /etc/default/grub по умолчанию (комментарии удалены):

Добавим перед GRUB_DEFAULT опцию

Опция GRUB_SAVEDEFAULT=true заставляет сохранять выбранную в меню загрузчика запись как запись по умолчанию, но это работает только если GRUB_DEFAULT=saved

Далее изменим GRUB_DEFAULT=0 на

Опция GRUB_DEFAULT может быть числом или специальным типом saved. Число указывает номер элемента в списке меню (возможно указание номера под элемента, например так 1>2), по умолчанию стоит GRUB_DEFAULT=0

Далее изменим GRUB_TIMEOUT_STYLE=hidden на

Опция GRUB_TIMEOUT_STYLE указывает на тип меню выбора во время отчета времени указанном в GRUB_TIMEOUT по истечении которого будет загружена запись по умолчанию. По умолчанию меню загрузчика скрыто, но нам нужно чтобы оно отображалось для выбора ядра.

Далее изменим GRUB_TIMEOUT=0 на

Опция GRUB_TIMEOUT устанавливает таймаут показа меню загрузчика, мы поставили 30 секунд, этого нам хватит чтобы выбрать какое ядро загружать. Вы можете поставить и меньше, например 3 секунды.

Так же я хочу упомянуть про опцию GRUB_DISABLE_SUBMENU, которая в случае указания ‘y’ убирает в меню GRUB иерархию и делает его плоским. Мы не будем использовать эту опцию, но если Вы захотите, то можете это сделать. Опция ниже:

Итого файл /etc/default/grub стал таким (комментарии удалены):

Далее нужно сохранить параметры загрузчика, вызываем команду:

После этого можно перезагрузить сервер и сразу после прохождения процедуры POST мы попадем в меню загрузчика GRUB, см. скриншот ниже:

Ubuntu 20.04 (GRUB)

В нижней части интерфейса GRUB мы видим тикающее время, те самые 30 секунд, а в верхней части в меню выбран первый пункт, чуть ниже присутствует пункт «Advanced options for Ubuntu». Туда то нам и нужно успеть зайти (жмем стрелку вниз и Enter), см. скриншот ниже:

Ubuntu 20.04 (GRUB submenu Advanced)

Мы видим список доступных для загрузки Linux-ядер. Выбираем например ядро 5.4.0-52 и жмем Enter. В этот момент GRUB запомнит Ваш выбор и будет использовать его по умолчанию при следующих загрузках. А нам это и нужно.

После загрузки мы можем проверить, что действительно загрузилось ядро 5.4.0-52 командой uname:

При следующих перезагрузках сервера GRUB выведет нам меню, но по умолчанию будет уже выбран пункт «Advanced options for Ubuntu», а в нем то Linux-ядро, что мы выбрали ранее.

На этом все, до скорых встреч. Если у Вас возникли вопросы или Вы хотите чтобы я помог Вам, то Вы всегда можете связаться со мной разными доступными способами.

Источник

Оцените статью