Компиляция ядра и последствия загрузчика (После компиляции ядра загрузчик EFI не видит новое ядро)

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

Ответить
Аватара пользователя
mradostev
Сообщения: 19
ОС: Fedora 35 Workstation

Компиляция ядра и последствия загрузчика

Сообщение mradostev »

Доброго всем времени суток,
Ранее сборкой ядра и установкой занимался я в ОС Debian, легко просто и очевидно загружалась система с новым ядром даже не смотря в сам загрузчик что будет грузиться.
На сегодняшний день я стал пользоваться ОС Fedora и посчитал я для себя использовать самую последнюю версию ядра со своими характеристиками под своё железо.
Скачал ядро, развернул, сконфигурировал и make && make modules && make modules_install install
В папке /boot есть всё кроме initramfs что собственно я добавил командой dracut /boot/initramfs-5.4.0.img $(uname -r)
Далее выполнил команду для загрузчика grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
Перезагрузка и в меню нет пункта с новым именем ядра.
Помогите пожалуйста разобраться :cray:
Программное обеспечение, как секс: он лучше, если это бесплатно.
Linus Torvalds
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu
Контактная информация:

Re: Компиляция ядра и последствия загрузчика

Сообщение serzh-z »

mradostev
Чтобы загрузчик появился в меню UEFI, нужно создать пункт меню с помощью efibootmgr.

Ну и ядро должно быть доступным UEFI-прошивке, т.е. находиться в корне или ниже, обычно в подкаталоге ниже \EFI. В вашем случае, надо полагать, это будет ниже /boot/efi (\ для UEFI-прошивки).
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20790
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Компиляция ядра и последствия загрузчика

Сообщение Bizdelnick »

mradostev писал:
26.11.2019 12:24
grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
Какой-то странный путь.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
mradostev
Сообщения: 19
ОС: Fedora 35 Workstation

Re: Компиляция ядра и последствия загрузчика

Сообщение mradostev »

Bizdelnick писал:
26.11.2019 19:34
grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
Не спорю уже к полуночи я попробовал sudo mkinitrd /boot/initramfs-5.4.0.img 5.4.0 и подставив в загрузчике строки именные 5.4.0 и загрузка прошла успешно вот только не хочется каждый раз при загрузке ПК руками править строки
Добавлено (21:34):
serzh-z писал:
26.11.2019 19:26
Чтобы загрузчик появился в меню UEFI, нужно создать пункт меню с помощью efibootmgr.
эта команда выводит не то что нужно
BootCurrent: 0002
Timeout: 1 seconds
BootOrder: 0002,0001,0000,0003
Boot0000* Windows Boot Manager
Boot0001* UEFI OS
Boot0002* Fedora
Boot0003* UEFI OS

мне нужно что бы сам GRUB2 подловил новое ядро. В grub.cfg там нет тех строк как бы было бы на MBR разделе Legacy
Программное обеспечение, как секс: он лучше, если это бесплатно.
Linus Torvalds
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20790
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Компиляция ядра и последствия загрузчика

Сообщение Bizdelnick »

mradostev
Не понял, на что Вы ответили, но я имел в виду, что Вы конфиг grub'а по странному пути кладёте. Я как-то привык его видеть в /boot/grub/grub.cfg.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu
Контактная информация:

Re: Компиляция ядра и последствия загрузчика

Сообщение serzh-z »

mradostev писал:
26.11.2019 21:30
мне нужно что бы сам GRUB2 подловил новое ядро. В grub.cfg там нет тех строк как бы было бы на MBR разделе Legacy
Ну если хотите поломать умолчальную конфигурацию дистрибутива и сделать все руками, то придется разбираться с UEFI и его протоколом загрузки - там очень мало общего с BIOS.

Что касается Fedora, то там, судя по всему, есть некое приложение grubby, которое нужно использовать для настройки grub2-efi.
Добавлено (22:28):
mradostev писал:
26.11.2019 21:30
эта команда выводит не то что нужно

Приложения 1 и 3 - это, скорее всего, \EFI\BOOT\*.efi, а запись 2 - это \EFI\fedora\*.efi, т.е., либо GRUB, либо Shim. Все нужные пункты там, в принципе, уже есть.
Спасибо сказали:
Аватара пользователя
mradostev
Сообщения: 19
ОС: Fedora 35 Workstation

Re: Компиляция ядра и последствия загрузчика

Сообщение mradostev »

В целом EFI работает на ура всегда. Загрузка GRUB2 успешно выполняется под UEFI, но почему интересно когда я все файлы для загрузчика выкладываю в туже папку где лежит дистрибутивное ядро и самое главное что с теми же правами мои файлы config initramfs.img vmlinuz System.map и вот вопрос старое ядро видит GRUB2 а рядом лежащее новое ядро не видит в той же папке с теми же правами в том же характерном виде и расширении.
Добавлено (07:02):
ради тестирования я поставил ядро из пакета RMP и у меня в GRUB2 появилась запись. А вот если компилю копирую даю теже права если мало ли не сходятся то GRUB2 так и не хочет обнаруживать мои ядра
Добавлено (07:08):
Обнаружил что есть в /boot/grub2/grubenv и в grub.cfg там он же написан и он же считается символьной переменной на /boot/efi/EFI/fedora/grubenv
Программное обеспечение, как секс: он лучше, если это бесплатно.
Linus Torvalds
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu
Контактная информация:

Re: Компиляция ядра и последствия загрузчика

Сообщение serzh-z »

mradostev
Навскидку, в Fedora намутили целую систему для загрузки ядра, чтобы наверняка было, чтобы везде и всегда все грузилось. :) EFI -> Shim -> GRUB -> systemd-boot. А по сути, в конечном итоге, все грузит systemd-boot.

Чтобы добавить новое ядро можно сделать что-нибудь навроде grubby --add-kernel=/boot/vmlinuz-5.3.7-301.fc31.x86_64 --args='ro resume=/dev/mapper/fedora_localhost--live-swap rd.lvm.lv=fedora_localhost-live/root rd.lvm.lv=fedora_localhost-live/swap rhgb quiet' --initrd=/boot/initramfs-5.3.7-301.fc31.x86_64.img --title='Fedora (5.3.7-301.fc31.x86_64) 31 (Thirty One)'. Все что он сделает - это добавит конфиг для systemd-boot.

Либо руками скопировать и поправить нужный /boot/loader/entries/*.conf

Или даже использовать штатный механизм systemd-boot: kernel-install add ..., что не совсем вписывается в костыли Fedora.

Информацию о параметрах текущего ядра можно узнать с помощью grubby --info=/boot/vmlinuz-5.3.7-301.fc31.x86_64. Либо самостоятельно заглянув в /boot/loader/entries/*.conf.

grub.cfg, надо полагать, в случае EFI, в Fedora вообще не используется.
Последний раз редактировалось serzh-z 28.11.2019 10:14, всего редактировалось 1 раз.
Спасибо сказали:
Аватара пользователя
mradostev
Сообщения: 19
ОС: Fedora 35 Workstation

Re: Компиляция ядра и последствия загрузчика

Сообщение mradostev »

serzh-z
Спасибо Вам большое. Ваша шпаргалка мне очень сильно помогла. Нужно будет такую инфу куда нибудь типа help выложить она точно пригодится людям как мне.
Добавлено (06:39):
Тему можно закрыть ;)
Программное обеспечение, как секс: он лучше, если это бесплатно.
Linus Torvalds
Спасибо сказали:
Ответить