Как добавить новое ядро ​​в 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.