Я собирал свое собственное ядро (4.19.37) и не испытывал никаких проблем во время сборки ( make
) или установки ( make install_modules
+ make install
). Все, кажется, идет хорошо, пока я не выполняю grub2-mkconfig -o /boot/grub2/grub.cfg
. При выполнении этой команды grub находит как мои существующие, так и новые vmlinuz-*
ядра, /boot/
а также соответствующие им initramfs-*.img
. Однако в этот момент система зависает на неопределенное время (> нескольких часов). Ctrl+C
похоже, не останавливает ее, и мне приходится перезагружать. Я изучил эту проблему, и все, что я обнаружил, что может быть проблемой, — это проверка дисков для удаления загрузочных ОС, которую я устранил, удалив их и добавив GRUB_DISABLE_OS_PROBER=true
в /etc/default/grub
perэтот пост SE. Ни то, ни другое не помогло.
После перезагрузки я оказываюсь в grub>
командной строке, вероятно, потому что grub2-mkconfig
файл конфигурации grub так и не был завершен и испорчен. Здесь я могу загрузить и старое, и новое ядро без каких-либо проблем, а также initramfs, но когда я запускаю boot, я получаю kernel panic:
end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(1,0)
Естественно, я предполагаю, что что-то не так с моим, initramfs-4.19.37.img
что было создано моим процессом сборки. В качестве эксперимента я проверил, могу ли я загрузить новое ядро, но использовать старый initramfs (4.19.10), и действительно, он загружается в emergency mode
. Однако я не могу сделать наоборот, старое ядро с новым initramfs. Так что что-то подозрительно с моим новым образом initramfs.
Становясь умнее, мой последний эксперимент заключался в монтировании старого и нового образа initramfs с помощью mount
. Они оба успешно монтируются без ошибок и, похоже, имеют идентичную файловую структуру. Я также сравнил свои новые и старые .config
файлы для сборок ядра, и различия незначительны.
Еще несколько заметок/наблюдений:
- На изображении выше вы можете видеть, что
List of all partions:
ничего не производит, поэтому мне интересно, есть ли проблема с типом файловой системы? Мой жесткий дискxfs
, какая файловая система дляinitramfs
? CPIO? - В
grub>
командной строкеls /
выдает то, что я ожидаю увидеть в/boot
. Он содержит все моиvmlinuz-*
иinitramfs-*.img
файлы - Моя файловая система
xfs
- Я пробовал разные версии ядра, но результат тот же.
- У меня дважды были успешные сборки и установки, один раз с существующим ядром (4.19.10), это было обновление, и второй раз с тем же ядром с
low-latency
моделью упреждения. Я не могу понять, что я тогда сделал по-другому.
Итак, последний вопрос(ы): Что не так с initramfs
формой этих сборок? Что еще я могу сделать, чтобы проверить ее целостность? Нужно ли .config
мне вносить какие-либо изменения при сборке ядра для xfs
файловой системы?
Отказ от ответственности: Так что это на самом деле продолжениеэтот вопрос, но я немного упростил проблему. Некоторая фоновая информация может быть уместна.