Собранное ядро создает не загружаемые initramfs на Centos 7
Я собираю свое собственное ядро (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
за [этот пост SE][1]. Ни то, ни другое не помогло.
После перезагрузки я в конечном итоге на grub>
командная строка, предположительно потому, что grub2-mkconfig
никогда не заканчивал и не повредил файл конфигурации grub. Здесь я могу загрузить как старое, так и новое ядро без каких-либо проблем, а также initramfs, но когда я выполняю загрузку, я получаю панику ядра:
end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(1,0)
[! [конец паники ядра - не синхронизируется: VFS: невозможно смонтировать root fs в unknown-block(1,0)][2]][2]
Естественно, я предполагаю, что что-то не так с моим 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
файловая система?
Отказ от ответственности: Так что это на самом деле продолжение [этого вопроса][3], но я немного упростил проблему. Некоторая справочная информация там может быть актуальной.
0 ответов
После обновления ядра с помощью yum update перезагрузите виртуальную машину с новым ядром, вы получите ошибку ядра. Следующие команды устранят эту проблему.
ням удалить ядро
ням обновление