Рейтинг:1

update-grub не добавляет все ядра в меню grub

флаг au

Убунту 21.10.

Я собираю ядра, как описано в https://help.ubuntu.com/community/Kernel/Скомпилировать и https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel.

DEB_BUILD_OPTIONS=parallel=$(getconf _NPROCESSORS_ONLN) AUTOBUILD=1 NOEXTRAS=1 \
    бинарная арка для debian/rules

Эта команда компиляции имеет тот же результат:

make --jobs=$(getconf _NPROCESSORS_ONLN) bindeb-pkg \
    LOCALVERSION=-custom-$(git description | tr '[:upper:]' '[:lower:]')

Это создает некоторые .deb пакеты:

$ ls -hal ../*.deb
-rw-r--r-- 1 amedee amedee 8,2M 26 февраля 02:17 ../linux-headers-5.13.19-ubuntu-5.13.0-22.22_5.13.19-ubuntu-5.13.0-22.22- 6_amd64.deb
-rw-r--r-- 1 amedee amedee 70M 26 фев 02:18 ../linux-image-5.13.19-ubuntu-5.13.0-22.22_5.13.19-ubuntu-5.13.0-22.22-6_amd64. деб
-rw-r--r-- 1 amedee amedee 1,2M 26 фев 02:17 ../linux-libc-dev_5.13.19-ubuntu-5.13.0-22.22-6_amd64.deb

Я устанавливаю их так:

судо дпкг --установить \
    ../linux-headers-5.13.19-ubuntu-5.13.0-22.22_5.13.19-ubuntu-5.13.0-22.22-6_amd64.deb \
    ../linux-image-5.13.19-ubuntu-5.13.0-22.22_5.13.19-ubuntu-5.13.0-22.22-6_amd64.deb

Тогда это содержание /ботинок:

$ ls -hal /загрузка/*5.13*
-rw-r--r-- 1 root root 252K 5 нояб. 10:21 /boot/config-5.13.0-22-generic
-rw-r--r-- 1 root root 251K 26 фев 02:15 /boot/config-5.13.19-ubuntu-5.13.0-22.22
-rw-r--r-- 1 root root 40M 22 фев 16:21 /boot/initrd.img-5.13.0-22-generic
-rw-r--r-- 1 root root 37M 26 фев 02:20 /boot/initrd.img-5.13.19-ubuntu-5.13.0-22.22
-rw------- 1 root root 5,7M 5 ноября 10:21 /boot/System.map-5.13.0-22-generic
-rw-r--r-- 1 root root 5,6M 26 фев 02:15 /boot/System.map-5.13.19-ubuntu-5.13.0-22.22
-rw------- 1 root root 9,8M 5 ноября 13:51 /boot/vmlinuz-5.13.0-22-generic
-rw-r--r-- 1 root root 8,5M 26 фев 02:15 /boot/vmlinuz-5.13.19-ubuntu-5.13.0-22.22

Обновите initramfs (строго говоря, это не обязательно, потому что это уже сделано, но на всякий случай):

$ sudo update-initramfs -u -k все
update-initramfs: Генерация /boot/initrd.img-5.13.19-ubuntu-5.13.0-22.22
update-initramfs: Генерация /boot/initrd.img-5.13.0-22-generic

Затем я бегу обновление-личность:

amedee@kerbol:~/repos/ubuntu-impish$ sudo update-grub
Исходный файл `/etc/default/grub'
Исходный файл `/etc/default/grub.d/init-select.cfg'
Создание файла конфигурации grub...
Найден образ Linux: /boot/vmlinuz-5.13.0-22-generic
Найден образ initrd: /boot/initrd.img-5.13.0-22-generic
Найден образ Linux: /boot/vmlinuz-5.13.0-22-generic
Найден образ initrd: /boot/initrd.img-5.13.0-22-generic
Добавление записи меню загрузки для настроек прошивки UEFI
сделано

Мое скомпилированное ядро 5.13.19-убунту-5.13.0-22.22 не добавляется в меню Grub обновление-личность. Я знаю, что могу добавить его вручную, но это чревато опечатками. Мне также нужно скомпилировать много ядер, потому что я пытаюсь найти возможную ошибку, используя git пополам. Проблема с ядром, которую я устраняю, не возникает в более поздних основных ядрах, только в (некоторых, но не во всех) ядрах Ubuntu 21.10, поэтому я делаю это только для того, чтобы что-то узнать и удовлетворить свое любопытство.

Что мне нужно сделать, чтобы обновление-личность добавляет мое скомпилированное ядро ​​из /ботинок каталог в меню Grub?

Amedee Van Gasse avatar
флаг au
Правильный синтаксис: «update-initramfs -u -k all», и нет, это не поможет, я добавлю его к вопросу.
Doug Smythies avatar
флаг gn
Рассмотрите возможность переключения на основное ядро ​​для деления ядра пополам. Я много раз делил ядро ​​пополам. Мне никогда не удавалось скомпилировать ядро ​​с помощью методов Ubuntu. С помощью mainline вы можете проверить последний RC-кандидат, чтобы определить, была ли уже исправлена ​​ваша проблема. Однако вам придется заново установить начальные точки `git bisect good` и `git bisect bad`. Использование mainline также лучше для восходящей эскалации. См. мой метод компиляции основного ядра [здесь] (https://askubuntu.com/questions/718381/how-to-compile-and-install-custom-mainline-kernel/718662#718662).
Doug Smythies avatar
флаг gn
У меня никогда не было проблем с update-grub с моими пользовательскими компиляциями, и я не знаю, что там не так.
Amedee Van Gasse avatar
флаг au
Привет @DougSmythies, я уже знаю, что конкретная проблема не возникает в самом последнем основном ядре или любом другом основном ядре, которое я тестировал до сих пор. Я уже пробовал это. Это происходит только с ядрами из репозиториев Ubuntu. Моя главная мотивация — учиться. Если бы я просто перешел на самое последнее ядро, то это было бы все равно, что сдаться и я бы ничему не научился.
Amedee Van Gasse avatar
флаг au
@DougSmythies Я прочитал ваш метод компиляции и вижу, что вы используете `bindeb-pkg`. В конце концов это не имеет значения - оба метода создают пакеты `.deb`, и с помощью обоих методов файлы ядра копируются в `/boot`. Мы оба приходим к одной и той же точке разными методами. Я обязательно попробую с основным репозиторием ядра, просто чтобы повеселить вас, и я ожидаю получить тот же результат. Я не думаю, что дело в ядрах, а в том, как `update-grub` обнаруживает файлы в `/boot`.
Amedee Van Gasse avatar
флаг au
До того, как я использовал способ компиляции ядра в Ubuntu, я использовал следующую команду: ниже:]')`. Результат тот же.
Doug Smythies avatar
флаг gn
ХОРОШО. достаточно справедливо в отношении желания учиться. Я согласен, что grub-update должен работать. Я использую 20.04, вы используете 21.10 (я думаю).
Amedee Van Gasse avatar
флаг au
Это правильно, я добавлю это к вопросу.
Doug Smythies avatar
флаг gn
Я не знаю, что это такое: «Найден образ GRUB Invaders: /boot/invaders.exec». Попробуйте более короткие имена ядра, просто в качестве теста.
Amedee Van Gasse avatar
флаг au
Это просто очень известная и легендарная игра Space Invaders, созданная для запуска внутри GRUB, то есть без операционной системы. Смотрите https://github.com/stokito/grub-invaders и видео геймплея https://www.youtube.com/watch?v=ZfddXQlF1vA
Amedee Van Gasse avatar
флаг au
Я удалил grub-invaders, так что вам больше не о чем беспокоиться. Я обновлю вопрос соответственно.
Amedee Van Gasse avatar
флаг au
@karel Я нашел этот ответ за 23 часа до того, как вы опубликовали свой комментарий, см. Ответ ниже.
karel avatar
флаг sa
Хе-хе, вот откуда я это взял.
Рейтинг:0
флаг au

Следующие три команды решают эту проблему, отключая исполняемый бит на 09_lowlatency и включив бит для 10_линукс, в соответствии с текстом в /etc/grub.d/README.lowlatency.

# chmod -x /etc/grub.d/09_lowlatency
# chmod +x /etc/grub.d/10_linux
# обновление-жратва

Решение найдено на https://askubuntu.com/a/1228269/149519.

Чтобы подтвердить, что теперь он работает должным образом:

$ ls -hal / загрузка ; эхо; sudo update-grub
Всего 107M
drwxr-xr-x 4 root root 4,0K 28 фев 04:42 .
drwxr-xr-x 20 root root 4,0K 26 фев 01:13 ..
-rw-r--r-- 1 root root 252K 5 нояб. 10:21 config-5.13.0-22-generic
-rw-r--r-- 1 root root 251K 26 фев 02:15 config-5.13.19-ubuntu-5.13.0-22.22
drwx------ 4 root root 4,0K 1 янв 1970 efi
drwxr-xr-x 5 root root 4,0K 28 фев 04:42 grub
lrwxrwxrwx 1 root root 28 фев 28 04:26 initrd.img -> initrd.img-5.13.0-22-generic
-rw-r--r-- 1 root root 40M 26 фев 13:55 initrd.img-5.13.0-22-generic
-rw-r--r-- 1 root root 37M 26 фев 13:54 initrd.img-5.13.19-ubuntu-5.13.0-22.22
-rw------- 1 root root 5,7M 5 ноября 10:21 System.map-5.13.0-22-generic
-rw-r--r-- 1 root root 5,6M 26 фев 02:15 System.map-5.13.19-ubuntu-5.13.0-22.22
lrwxrwxrwx 1 root root 25 фев 28 04:27 vmlinuz -> vmlinuz-5.13.0-22-generic
-rw------- 1 root root 9,8M 5 ноя 13:51 vmlinuz-5.13.0-22-generic
-rw-r--r-- 1 root root 8,5M 26 фев 02:15 vmlinuz-5.13.19-ubuntu-5.13.0-22.22

Исходный файл `/etc/default/grub'
Исходный файл `/etc/default/grub.d/init-select.cfg'
Создание файла конфигурации grub...
Найден образ Linux: /boot/vmlinuz-5.13.19-ubuntu-5.13.0-22.22
Найден образ initrd: /boot/initrd.img-5.13.19-ubuntu-5.13.0-22.22
Найден образ Linux: /boot/vmlinuz-5.13.0-22-generic
Найден образ initrd: /boot/initrd.img-5.13.0-22-generic
Добавление записи меню загрузки для настроек прошивки UEFI
сделано

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.