Система - это Fedora 22, недавно обновленная с Fedora 21. Загружается оставшееся ядро из Fedora 21. Два ядра, установленные после обновления, не загружаются.
Система представляет собой Intel S-5000 PAL с 5 дисками SATA, сконфигурированными в массиве raid 5. Он без проблем работает почти 2 года. И, как упоминалось выше, продолжает работать без проблем с ядром Fedora 21.
Проблема заключается в том, что при обновлении ядер процесс загрузки зависает и через 3 минуты переходит в аварийную оболочку. В выходных данных journelctl отображаются следующие сообщения об ошибках:
systemctl: запуск обработчика перед запуском dracut.
lldpad: не удалось загрузить файл конфигурации,
lldpad: создать новый файл
lldpad: связанный ctrl iface в / com / intel / lldpad
dracut-pre-trigger: dracut-pre-trigger: rd.md = 0 удаление рейда md активация
В конце процесса появляется сообщение об ошибке:
raidboot / root device not found
Ядра Fedora 21 загружаются и работают нормально. Было предпринято следующее:
В качестве дальнейшего фона этот сервер является частью сети подобных серверов. Обновление других серверов прошло успешно. Сравнение вывода lsinit для двух файлов initramfs.img показывает аналогичный результат. Единственные различия заключаются в области предварительного запуска и lldpad.
Является ли конфигурация предварительного запуска причиной этого? Какой шаг отсутствует, чтобы вызвать сбой dracut-pre-trigger при создании initramfs? Какие пакеты необходимы для поддержки предварительного запуска? Какая конфигурация используется для предварительного запуска? повторный запуск предварительного триггера для поддержки создания initramfs?
В итоге получился длинный путь с простым ответом. Системы используют mdadm для создания рейда 5 уровня. Dracut был обновлен в рамках обновления с fc21 до fc22 вместе с ядром. Командная строка начальной загрузки в grub.cfg имела опцию rd.lvm.lv. Это вызвало остановку дракута fc22 при поиске dm-массивов на ранних стадиях загрузки. Удаление опции rd.lvm.lv из опций команды vmlinuz в grub.cfg вместе с добавлением опции rd.auto исправило проблему. Ключом к решению проблемы было чтение документации Dracut, в которой опция rd.lvm.lv упоминалась как эксклюзивная. Исключительная опция могла быть поэтапной, что приводило к задержке введения ограничения.