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


24

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

Ответы:


11

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

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

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

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

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

Не Debian Linux

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

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

Что делать, если у вас 2 дистрибутива Linux без отдельного / загрузочного раздела? Нужно ли копировать ядро ​​из вторичных rootfs в первичное? Или grub-update также проверяет другие разделы на наличие новых ядер?
— jiggunjer

Это отдельный вопрос, но любой используемый исполняемый файл должен /boot/правильно читать и генерировать. Файл конфигурации grub (ex /etc/default/grub:) может отличаться для каждой ОС, поэтому убедитесь, что вы синхронизировали их. Однако лучше всего иметь одну ОС для создания записей Grub для вас.
— earthmeLon

На самом деле это не отдельный вопрос, OP не уточнил его конфигурацию, и двойная загрузка является обычной. Думаю, это может повысить ценность вашего ответа, что уже хорошо. Другими словами, вторичная ОС даже не нуждается в собственном grub, а grub из первичной будет сканировать / boot папки на всех разделах и находить ядра.
— jiggunjer

1
Как мне переместить ядро ​​в / boot? mv kernel /boot? Где я могу найти ядро, которое можно переместить в / boot?
— Томас Веллер

3

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

make xconfig (make config, etc)
make bzImage
make modules
sudo make modules_install
sudu make install

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


sudo make installговорит мне: Cannot find LILO.
— Рене Ниффенеггер

Возможно, вы собираете гораздо более старую версию ядра? LILO использовался в версии ядра старше 3.x (не совсем точно). С каким дистрибутивом вы работаете?
— Philbrooksjazz

Это было в Arch Linux с новейшим rc (4.6.0-rc5), который я клонировал из репозитория Linux Torvalds.
— Рене Ниффенеггер

0

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

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


0

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


0

Вы больше не «редактируете», чтобы добавлять ядра. Он сканирует и добавляет их динамически. Если вы ДОЛЖНЫ добавить одну, которую сканирование не находит, вы должны заглянуть в /etc/grub.d и изменить или скопировать и custom40 (он добавляется последним, так что это отличное место для тестирования вашей конфигурации, прежде чем поместить ее в верхнюю часть вашего список).


0

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


Я понял, что мой ответ похож на ответ Алана, но я добавил команду grub2.
— beatgammit
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.