Как добавить новое ядро в grub2

Вопрос или проблема

Как мы можем добавить ядро в grub2? Я знал, что мы могли делать с предыдущими версиями, но, похоже, это изменилось. Какие файлы нам следует редактировать?

Чтобы добавить новое ядро в grub2:

  1. Переместите ваше ядро в /boot/
  2. Запустите sudo update-grub

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

Чтобы выбрать, какое ядро загружать во время загрузки, вам, возможно, придется удерживать клавишу SHIFT сразу после завершения POST BIOS.

Вы можете редактировать /etc/default/grub, чтобы изменить параметры загрузки по умолчанию и те параметры, которые вам могут понадобиться.

Не-Debian Linux

Смотрите примечания grub для вашего дистрибутива, например, эти документы Fedora GRUB 2.

  • grub2-mkconfig -o /boot/grub2/grub.cfg

Я использую Fedora 20, и команда для обновления grub2 это grub2-mkconfig. Кроме того, весь процесс можно выполнить с помощью сборки ядра make:

make xconfig (make config и т.д.)
make bzImage
make modules
sudo make modules_install
sudo make install

(последний шаг) скопирует ядро в /boot и обновит загрузчик grub2. Очень просто, и у меня всё сработало правильно. Моя единственная проблема в том, что вы не узнаете никаких важных деталей процесса, всё автоматизировано. Если у вас возникнут проблемы и вам нужно выяснить, что не так, вы можете застрять.

Попробуйте update-grub или update-grub2 в зависимости от вашей версии grub. Вам нужно будет запускать эти команды от имени root, sudo. Это сработало для меня, когда я установил вторую дистрибуцию Linux без переустановки grub.

/boot/grub/grub.cfg это файл, который заменил menu.lst из grub1

В системах Debian/Ubuntu это генерируется с помощью update-grub, который запускает скрипты из /etc/grub.d, используя что-то похожее на run-parts.

Если новое ядро установлено с помощью dpkg (как будто оно скомпилировано с помощью make-kpkg), update-grub2 достаточно (это не удаляет больше существующих ядер тоже)

Теперь вы не “редактируете”, чтобы добавить ядра. Он сканирует и добавляет их динамически. Если вы ДОЛЖНЫ добавить одно, которое сканирование не находит, вам следует посмотреть в /etc/grub.d и изменить или скопировать 40_custom (оно добавляется последним, так что это отличное место, чтобы протестировать вашу конфигурацию перед тем, как поместить её в верхнюю часть вашего списка).

Для Grub2 файл, который вам следует редактировать, называется 40_custom и находится в /etc/grub.d/. Как указывает этот файл:

# Этот файл предоставляет простой способ добавить пользовательские записи меню. Просто введите
# записи меню, которые вы хотите добавить после этого комментария.

Вот пример того, как выглядит запись меню:

menuentry 'Debian with Linux 5.10.0-21-amd64 (in /dev/sda8)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-simple-97a0ac1a-9298-4dfc-baf5-ae8cfb37e3f0' {
    insmod part_gpt
    insmod ext2
    set root="hd0,gpt8"
    if [ x$feature_platform_search_hint = xy ]; then
        search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt8 --hint-efi=hd0,gpt8 --hint-baremetal=ahci0,gpt8  97a0ac1a-9298-4dfc-baf5-ae8cfb37e3f0
    else
        search --no-floppy --fs-uuid --set=root 97a0ac1a-9298-4dfc-baf5-ae8cfb37e3f0
    fi
    linux /boot/vmlinuz-5.10.0-21-amd64 root=UUID=97a0ac1a-9298-4dfc-baf5-ae8cfb37e3f0 ro quiet
    initrd /boot/initrd.img-5.10.0-21-amd64
}

Вы добавляете свою собственную изменённую запись меню (не удаляя первоначальное содержимое 40_custom) и затем запускаете sudo update-grub2 или grub2-mkconfig -o /boot/grub2/grub.cfg (они делают одно и то же). Чтобы подтвердить, что ваша запись была добавлена, вы можете проверить файл /boot/grub/grub.cfg:

...
### BEGIN /etc/grub.d/40_custom ###
# записи меню, которые вы хотите добавить после этого комментария. Будьте осторожны, чтобы не изменить
# строку 'exec tail' выше.

>>Ваша запись должна появиться здесь<<

### END /etc/grub.d/40_custom ###
...

У меня была аналогичная проблема, и этот пост помог. Сначала позвольте мне описать мою проблему: сначала я установил Ubuntu, затем Fedora. Grub на Fedora используется при загрузке. Обновления ядра Ubuntu не отражались в меню загрузки grub. Ядро Linux для Ubuntu можно найти в /boot. Там вы найдете записи, названные vmlinuz-n.n.n-generic, где n.n.n – это версия. Я пытался изменить 40-custom, как описано геном, и запустил grub2-mkconfig в системе Fedora, но безуспешно – новая запись меню не появилась. То, что сработало, это редактирование /boot/grub2/grub.cfg напрямую. Там была запись меню для старого, больше не существующего ядра. Я изменил её на новую версию ядра, перезагрузился, и смог загрузить последнюю версию ядра Ubuntu. Надеюсь, это поможет.

Ответ или решение

Как добавить новый ядро в GRUB2

Добавление нового ядра в загрузчик GRUB2 – это важная операция для пользователей Linux, обеспечивающая гибкость и управление версиями ядра. Рассмотрим все необходимые шаги и рекомендации, чтобы успешно выполнить эту задачу.

1. Перенос ядра в директорию /boot/

Первым шагом необходимо переместить скомпилированное или загруженное ядро в директорию /boot/. Это позволяет системе распознать новое ядро при обновлении конфигурации GRUB.

sudo cp path_to_your_kernel /boot/

Здесь path_to_your_kernel обозначает путь к вашему новому ядру, например, vmlinuz-5.10.0-21-amd64.

2. Обновление конфигурации GRUB

После того как ядро помещено в директорию /boot/, необходимо обновить конфигурацию GRUB. Это можно сделать с помощью команды:

sudo update-grub

В дистрибутивах на базе Fedora следует использовать аналогичную команду:

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

Данная команда просканирует вашу систему на наличие новых версий ядра и сгенерирует обновленный файл конфигурации grub.cfg, который содержит список всех доступных ядров для загрузки.

3. Проверка наличия нового ядра в меню загрузки

Если все прошло успешно, новое ядро должно отобразиться в меню загрузки GRUB при следующей перезагрузке системы. Чтобы открыть меню GRUB, вам может понадобиться удерживать клавишу Shift сразу после BIOS.

4. Настройка конфигурации GRUB

Если вы хотите настроить параметры загрузки по умолчанию, вы можете отредактировать файл /etc/default/grub. Здесь можно изменить настройки, такие как выбор ядра по умолчанию и параметры загрузки. Например:

GRUB_DEFAULT=0
GRUB_TIMEOUT=5

5. Добавление собственных меню в GRUB

Для продвинутых пользователей, которые нуждаются в добавлении собственных меню в GRUB, вы можете редактировать файл:

/etc/grub.d/40_custom

В этом файле можно добавить свои собственные записи выкладывая их ниже комментария, описывающего файл. Пример записи меню:

menuentry 'My Custom Kernel' {
    set root=(hd0,1)
    linux /boot/vmlinuz-5.10.0-21-amd64 root=/dev/sda1 ro quiet
    initrd /boot/initrd.img-5.10.0-21-amd64
}

После внесения изменений не забудьте выполнить команду обновления конфигурации GRUB снова:

sudo update-grub

6. Проверка изменений

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

Заключение

Добавление нового ядра в GRUB2 состоит из простых шагов: перемещение ядра в /boot/, обновление конфигурации и, при необходимости, редактирование меню GRUB. Следуя указанным шагам и рекомендациям, вы сможете управлять версиями ядра и настраивать систему в соответствии со своими потребностями.

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

Оцените материал
Добавить комментарий

Капча загружается...