- Установить ядро по умолчанию в GRUB
- Настройка параметров ядра в Grub
- Настройка параметров ядра Grub в системе
- Параметры загрузки ядра в grub.cfg
- Параметры ядра Grub при загрузке
- Как я могу загрузиться с более старой версией ядра?
- Управляющие клавиши
- Обновление grub для загрузки предыдущего ядра
- Изменение загружаемого по умолчанию ядра в Ubuntu
Установить ядро по умолчанию в 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 с второго шага разделите > .
В моем случае модифицированным 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 . Но это может варьироваться от системы к системе.
Источник
Настройка параметров ядра в Grub
Ядру Linux можно передавать различные параметры для изменения стандартного поведения или информирования о нестандартной конфигурации оборудования. Делать это можно непосредственно перед загрузкой ядра или уже во время выполнения. Во время выполнения параметры ядра можно установить отредактировав файлы в подсистеме /proc или /sys. Перед загрузкой параметры передаются с помощью загрузчика Grub.
Если вы хотите изменить или добавить параметры ядра Linux с помощью Grub вам необходимо отредактировать файл шаблона конфигурации или конфигурационный файл загрузчика. Расположение и название файла шаблона зависит от конкретного дистрибутива.
Настройка параметров ядра Grub в системе
Файл шаблона конфигурации Grub в Debian подобных системах находится по адресу /etc/default/grub. Добавьте параметр ядра в виде имя = значение в переменную GRUB_CMDLINE_LINUX_DEFAULT:
sudo vi /etc/default/grub
Здесь же вы можете удалить нежелательные параметры ядра Grub установленные по умолчанию, например, заменить quiet на verbose для подробного вывода информации о процессе загрузки. Затем выполните следующее чтобы обновить конфигурацию загрузчика:
Если такой команды не существует нужно установить пакет grub2-common:
sudo apt install grub2-common
В Fedora и CentOS скрипта update-grub для обновления конфигурации загрузчика нет, поэтому надо вручную сгенерировать новый конфигурационный файл:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Лучше всего добавлять параметры загрузки ядра linux именно этим способом, но давайте рассмотрим ещё несколько альтернативных вариантов
Параметры загрузки ядра в grub.cfg
Если вы не можете воспользоваться способом, описанным выше можно отредактировать непосредственно конфигурационный файл загрузчика который находится по пути /boot/grub/grub.conf. В этом файле нужно найти секцию отвечающую за стандартную загрузку Linux. Обычно, это первая секция menuentry:
Найдите её, а затем в этой секции найдите строчку linux /boot/vmlinuz. в конец этой строки вы и можете дописать свои параметры, в таком же формате. Затем сохраните изменения в файле и перезагрузите компьютер. Ядро загрузится с новыми параметрами. Если вас интересовал вопрос какой командой загружается ядро linux в grub, то это именно команда linux. Синтаксис её такой:
linux параметры_ядра
Этот способ подойдет почти для любого дистрибутива, но более правильным путем будет использовать шаблон конфигурации где это возможно, так как при следующем обновлении дистрибутива все ваши настройки в этом файле могут быть стёрты.
Параметры ядра Grub при загрузке
Загрузчик Grub позволяет также редактировать пункты меню перед запуском системы. Для этого в меню Grub выберите нужный пункт и нажмите клавишу E. Откроется редактор текущей секции меню. Здесь надо, аналогично предыдущему способу найти строчку linux /boot/vmlinuz. и дописать в конец ваши параметры ядра Linux, например, init=/bin/bash:
Затем нажмите кнопку F10 или Ctrl+X чтобы продолжить загрузку с новыми параметрами. Эти параметры будут актуальны до следующей перезагрузки. На этом всё. Надеюсь информация из статьи была для вас полезной.
Источник
Как я могу загрузиться с более старой версией ядра?
Последнее ядро вызывает проблемы с моим звуком, которое отлично работало со старой версией. Поскольку у меня установлена только 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
Запустить систему. Это действие для одной загрузки на конкретном ядре. Если вы хотите все время начинать с конкретного ядра, вы должны сделать следующие шаги:
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> был установлен по умолчанию, поэтому мы используем:
Источник
Изменение загружаемого по умолчанию ядра в Ubuntu
В интернете есть множество разных статей о том как изменить загружаемое по умолчанию ядро в Ubuntu 18.04 и 20.04
В основном все статьи описывают сложный и не удобный способ через указание ID подменю в опции GRUB_DEFAULT файла /etc/default/grub, но есть способ проще.
Исходные данные: ОС 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-ядро, что мы выбрали ранее.
На этом все, до скорых встреч. Если у Вас возникли вопросы или Вы хотите чтобы я помог Вам, то Вы всегда можете связаться со мной разными доступными способами.
Источник