Как выбрать ядро GRUB2 по умолчанию? Я недавно установил ядро Linux реального времени, и теперь оно загружается по умолчанию. Я хотел бы загрузить обычный по умолчанию.
До сих пор мне удалось выбрать только ОС по умолчанию ... и по какой-то причине /boot/grub.cfg
уже предполагается, что я хочу загрузить rt-ядро и поместить его в общий пункт меню linux (в моем случае Arch Linux).
grub.cfg
только соответствуют ОС, а не ядрам.Ответы:
Я думаю, что большинство дистрибутивов перенесли дополнительные ядра в подменю расширенных опций на данный момент, как обнаружил TomTom в случае с его Arch.
Я не хотел изменять структуру меню верхнего уровня, чтобы выбрать предыдущее ядро в качестве используемого по умолчанию. Я нашел ответ здесь:
http://www.humans-enabled.com/2014/08/how-to-set-default-grub-kernel-boot.html
Обобщить:
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 и т. Д.
источник
/boot/grub2/grub.cfg
.grub-set-default 9
а затемgrub-update
и перезагрузился. Я позволил grub загружаться с ядром по умолчанию, и он по-прежнему загружается с 4.4.0-64-generic . Я также попытался редактировать/etc/default/grub
и установитьGRUB_DEFAULT=9
и запуститьgrub-update
. При перезагрузке ничего не меняется, система все еще загружается с 4.4.0-64-generic . Может я что-то упустил, кто-нибудь может мне помочь?Простое выполнение
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
Чтобы иметь возможность загружать ядро 2, вы должны либо поменять его местами с ядром 1, либо поместить его вне подменю на том же уровне, что и Arch Linux или Windows. А затем установите номер по умолчанию для одного из индексов главного меню. Например, в меню выше «0» загружает «Arch Linux» и «1» загружает ядро 1.
Чтобы изменить иерархию и обмен, откройте
/boot/grub/grub.cfg
и переместите запись, которую вы хотите переместить. Запись может выглядеть такЗатем вам нужно применить ваши изменения. В моем случае с
grub-mkconfig
. Но это может варьироваться от системы к системе.источник
Как только выглядел CentOS-6.6, grub.conf можно было отредактировать вручную, чтобы изменить выбор по умолчанию:
источник
Debian Stretch:
Вместо того, чтобы возиться с файлами конфигурации, создайте папку
/noot
(назовите ее как хотите), оставьте нужное ядро вместе с соответствующими файлами конфигурации и системными файлами/boot
и переместите остальные в эту новую папку.Беги
update-grub
.Дважды проверьте
/boot
папку, в которой указана версия вашего ядра и соответствующие файлы конфигурации и системные файлы (если вы скопировали что-то, чего не должно быть), и перезагрузитесь.источник