Собранное ядро ​​создает не загружаемые 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 перезагрузите виртуальную машину с новым ядром, вы получите ошибку ядра. Следующие команды устранят эту проблему.

ням удалить ядро

ням обновление

Другие вопросы по тегам