Вопрос или проблема
Я создаю пользовательский ISO для CentOS 7, и на данный момент я просто намерен сделать это абсолютно минимальной установкой (по сути, это доказательство концепции).
Я пересоздаю ISO с помощью mkisofs. Введенная команда:
Mkisofs –o custom.iso –b isolinux.bin –c boot.cat –no-emul-boot –V ‘CentOS’ –boot-load-size 4 –boot-info-table –R –J –v –T isolinux/
Это успешно создало ISO и позволило мне смонтировать его в оптическом дисководе VirtualBox. При установке я получаю ошибку в rdsosreport.txt, которая гласит:
localhost dracut-initqueue[581]: Внимание: Не удалось загрузить.
localhost dracut-initqueue[581]: Внимание: /dev/root не существует
На данный момент я:
скопировал .treeinfo, .discinfo в корневую директорию, где я создаю ISO. Создал подкаталог /isolinux со всеми данными /isolinux из последней версии CentOS-7-x86_64-Minimal-1503-01, а также каталоги /images и /LiveOS. Я также скопировал файл репозитория .xml в корневую директорию.
Я попробовал множество файлов kickstart, но текущая версия, которую я использую, ультра-минималистична, просто чтобы заставить это работать в какой-то момент.
install
cdrom
text
keyboard us
lang en_US.UTF-8
rootpw --iscrypted $6$XRIetvtFyLXRFVzZ$jX7xRxsN6M.DIqwJ9DQui9ytaqK3IAzauSqB4zeRNvMKJo6xCJQAk90XIaxh.SBn0IBtyZM7ZlHK8eSk55VnG0
timezone America/New_York --isUtc
clearpart --none --initlabel
%packages
@core
%end
Мой ks.cfg находится в isolinux/ks/ks.cfg, и когда я загружаюсь в систему, я запускаю linux inst.ks=cdrom:/dev/cdrom:/ks/ks.cfg
Я немного потерян в том, где мне дальше расследовать, так как все, что я пытаюсь сделать, это загрузить очень простой файл kickstart, чтобы получить Linux для однокнопочной установки. Мне не обязательно нужно, чтобы мне говорили, просто укажите правильное направление, так как я пробовал довольно много различных конфигураций kickstart и все равно получал одну и ту же ошибку.
редактировать:
Я заставил это работать, изменив файл isolinux.cfg и изменив идентификатор тома на мой идентификатор -V, установленный в mkisofs, а затем выбрав этот вариант меню во время установки.
append initrd=initrd.img inst.stage2=hd:LABEL=CentOS quiet inst.ks=cdrom:/dev/cdrom:/ks/ks.cfg
У меня есть другие ошибки в ISO, которые я сейчас исследую из-за того, что мой файл kickstart настолько скуден.
Если /dev/root
существует в основной файловой системе и если связанное устройство не ожидается как динамически создаваемое во время загрузки, вы можете стать жертвой mkisofs
, который не является правильным mkisofs и работает не так, как ожидалось.
Рекомендую сначала проверить это:
find isolinux/ -name root -ls
чтобы проверить, существует ли /dev/root в мастер-копии, а затем вызвать:
isoinfo -i custom.iso -R -J -find -name root -ls
чтобы проверить, содержит ли ISO-образ также /dev/root.
Кстати, всякий раз, когда вы видите dracut
(как ваш dracut-initqueue
), это означает, что вы находитесь в initrd
. initrd
— это небольшой образ, который загружается в ОЗУ и отвечает за монтирование вашего root
раздела, затем переключается на него и вызывает init
. Мой предположение состоит в том, что именно ваш inst.stage2
конкретно исправил вашу проблему, он говорит initrd
, где найти раздел root
(раздел с меткой “CentOS”).
Ответ или решение
При создании пользовательского ISO для CentOS 7 вы столкнулись с ошибкой, указывающей на то, что /dev/root
не существует. Это часто связано с тем, что процесс установки не может найти корневую файловую систему. В этом ответе мы проанализируем вашу проблему и предложим несколько шагов для ее решения.
Проблема
Ошибка, связанная с отсутствием /dev/root
, появляется, когда загрузочная среда не может корректно идентифицировать и смонтировать корневую файловую систему во время начальной загрузки. Это может произойти по различным причинам, включая неправильные параметры сконфигурированного ISO или ошибки в файле kickstart.
Основные причины
- Неправильный путь к параметрам установки: Для вашего ISO-образа могут быть неверно указаны параметры размещения файлов или их путь.
- Ошибки в конфигурации bootloader`а: Надо убедиться, что файл конфигурации isolinux.cfg правильно настроен на использование вашего ISO.
- Неправильное назначение метки (label) на корневой носитель: Необходимо, чтобы метка в параметрах bootloader соответствовала той, которая указана в ISO-образе.
- Проблемы с mkisofs: Возможно, используемая вами версия mkisofs не поддерживает необходимые функции или не правильно создает нужные файловые структуры.
Решение
-
Проверка конфигурации isolinux.cfg:
Ваш файл isolinux.cfg должен содержать корректное указание на метку ISO:append initrd=initrd.img inst.stage2=hd:LABEL=CentOS quiet inst.ks=cdrom:/dev/cdrom:/ks/ks.cfg
Убедитесь, что
LABEL=CentOS
совпадает с меткой, указанной при создании ISO с помощьюmkisofs -V
. -
Проверка структуры ISO:
Используйте команды, чтобы убедиться, что все необходимые файлы присутствуют в вашем ISO:find isolinux/ -name root -ls isoinfo -i custom.iso -R -J -find -name root -ls
Это поможет вам понять, существует ли
/dev/root
действительно в вашем образе. -
Проверка версии mkisofs:
Убедитесь, что используете правильную и актуальную версию mkisofs. Есть примеры, когда более старая версия была причиной подобных ошибок. Попробуйте использовать другие утилиты, такие какgenisoimage
, которые могут обеспечить лучшую совместимость. -
Тестирование с различными конфигурациями kickstart:
Хотя вы уже пробовали несколько вариантов kickstart, убедитесь, что конфигурация достаточно полная. Ваша kickstart может быть слишком минималистичной для решения всех задач, необходимых для установки:install cdrom text keyboard us lang en_US.UTF-8 rootpw --iscrypted [ваш_пароль] timezone America/New_York --isUtc clearpart --none --initlabel %packages @core %end
Убедитесь, что все модули, необходимые для вашего конкретного варианта установки, включены.
-
Логи установки:
Обратите внимание на другие сообщения об ошибках, которые могут помочь определить дополнительные проблемы при установке. Логи могут содержать подсказки, которые помогут выявить другие ошибки в вашей конфигурации.
Заключение
Ошибка /dev/root does not exist
может быть вызвана множеством факторов, но с помощью описанных выше шагов вы должны быть в состоянии диагностировать и исправить проблему. Следует обратить особое внимание на параметры конфигурации вашего bootloader`а и проверку структуры ISO. Если проблема не будет решена, попробуйте обратиться к сообществу CentOS или документации для получения дополнительной помощи.