Вопрос или проблема
У меня возникает проблема при загрузке пользовательского ISO RHEL 8.10. Во время процесса загрузки я сталкиваюсь со следующей ошибкой:
initqueue[1065]: /usr/sbin/fetch-kickstart-disk: line 24: rmdir: command not found
Я извлек initrd.img
, изменил /usr/sbin/fetch-kickstart-disk
, а затем заново создал ISO. Однако проблема остается.
Кто-нибудь сталкивался с этой проблемой ранее? Есть предложения, как правильно изменить initrd.img
или обеспечить доступность rmdir
во время загрузки?
Спасибо
Вот что я пробовал:
- Извлечь образ:
xzcat initrd.img | cpio -idmv
- Изменить строку 24 для удаления команды
rmdir
:vi usr/sbin/fetch-kickstart-disk
- Заново создать файл образа
find . | cpio -o -H newc | xz --check=crc32 -9 > /WORK/isolinux/initrd.img
- Создать файл ISO
xorriso -as mkisofs -o /RHEL-8-10-0-BaseOS-x86_64.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table /WORK/
Ответ или решение
Теория:
Вы столкнулись с распространенной проблемой при работе с кастомными ISO-образами RHEL, особенно когда дело касается модификации initrd.img
. Ошибка, которую вы наблюдаете – initqueue[1065]: /usr/sbin/fetch-kickstart-disk: line 24: rmdir: command not found
показывает, что команда rmdir
не доступна во время процесса загрузки. Это может произойти по нескольким причинам, включая отсутствие необходимых файлов или утилит в модифицированном Образе Инициализации (initrd.img
).
Сам процесс модификации образа и его дальнейшего создания может быть сложным и подверженным ошибкам, если не учитывать все зависимости и не включить все необходимые файлы. При создании и реконструкции initrd.img
важно убедиться, что все требуемые команды и зависимости доступны в операционной среде загрузки.
Пример:
Предположим, что у вас есть образ initrd.img
, который вы будете модифицировать для включения или удаления определенных утилит или скриптов. Важно помнить, что initrd.img
используется в процессе загрузки для подготовки окружения, прежде чем будет смонтирована основная файловая система. Если какая-то ключевая утилита, такая как rmdir
, отсутствует, это может привести к тому, что скрипты или процессы, требующие эту утилиту, завершатся ошибкой.
Вы уже предприняли несколько шагов, чтобы решить проблему: вы извлекли initrd.img
, внесли изменения в /usr/sbin/fetch-kickstart-disk
, и перекачивали образ, но ошибка сохранилась. Это возможно из-за того, что изменения были неправильно интегрированы или вмешание в скрипт /usr/sbin/fetch-kickstart-disk
вызвало другие проблемы.
Применение:
-
Проверка наличия зависимостей: Убедитесь, что в вашей модифицированной версии
initrd.img
все необходимые утилиты доступны. Для этого проверьте директории, такие как/sbin
,/bin
,/usr/sbin
и/usr/bin
, на предмет наличияrmdir
. -
Интеграция утилиты
rmdir
: Еслиrmdir
отсутствует, вы можете попытаться вручную добавить ее. Это можно сделать, скопировав бинарный файлrmdir
из стандартной установочной версии RHEL и включить его в вашеinitrd.img
в соответствующее место. -
Тестирование обновленного ISO: Прежде чем пересобрать ISO, протестируйте
initrd.img
в изолированной среде, например, с использованием виртуальной машины (VM), чтобы удостовериться, что системные вызовы и скрипты работают корректно. Это поможет минимумизировать риск внесения ошибок на более поздних стадиях. -
Пересборка образа ISO: После успешного тестирования
initrd.img
, заново создайте ISO-образ, как вы уже описали, с использованиемxorriso
или другой подходящей утилиты. Обратите внимание на правильность опций командной строки – не только на использование флага-b
для указания пути к образу загрузочного сектора, но и на обеспечение корректного размещения всех файлов в структуре ISO. -
Диагностика и мониторинг процесса загрузки: При возникновении ошибок загрузки, используйте отладочные и диагностические инструменты, чтобы собрать больше информации. Проверьте логи, исправьте любые обнаруженные проблемы и повторите процесс пересборки до тех пор, пока ISO не заработает должным образом.
Эти шаги помогут вам интегрировать необходимые команды в образ и избежать подобной ошибки при загрузке системы. Уделите внимание каждой детали и особенно тестированию, так как именно оно позволяет избежать проблем перед развертыванием на боевой сервер.