Установка пользовательского ISO CentOS – /dev/root не существует

Вопрос или проблема

Я создаю пользовательский 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.

Основные причины

  1. Неправильный путь к параметрам установки: Для вашего ISO-образа могут быть неверно указаны параметры размещения файлов или их путь.
  2. Ошибки в конфигурации bootloader`а: Надо убедиться, что файл конфигурации isolinux.cfg правильно настроен на использование вашего ISO.
  3. Неправильное назначение метки (label) на корневой носитель: Необходимо, чтобы метка в параметрах bootloader соответствовала той, которая указана в ISO-образе.
  4. Проблемы с mkisofs: Возможно, используемая вами версия mkisofs не поддерживает необходимые функции или не правильно создает нужные файловые структуры.

Решение

  1. Проверка конфигурации 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.

  2. Проверка структуры ISO:
    Используйте команды, чтобы убедиться, что все необходимые файлы присутствуют в вашем ISO:

    find isolinux/ -name root -ls
    isoinfo -i custom.iso -R -J -find -name root -ls

    Это поможет вам понять, существует ли /dev/root действительно в вашем образе.

  3. Проверка версии mkisofs:
    Убедитесь, что используете правильную и актуальную версию mkisofs. Есть примеры, когда более старая версия была причиной подобных ошибок. Попробуйте использовать другие утилиты, такие как genisoimage, которые могут обеспечить лучшую совместимость.

  4. Тестирование с различными конфигурациями 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

    Убедитесь, что все модули, необходимые для вашего конкретного варианта установки, включены.

  5. Логи установки:
    Обратите внимание на другие сообщения об ошибках, которые могут помочь определить дополнительные проблемы при установке. Логи могут содержать подсказки, которые помогут выявить другие ошибки в вашей конфигурации.

Заключение

Ошибка /dev/root does not exist может быть вызвана множеством факторов, но с помощью описанных выше шагов вы должны быть в состоянии диагностировать и исправить проблему. Следует обратить особое внимание на параметры конфигурации вашего bootloader`а и проверку структуры ISO. Если проблема не будет решена, попробуйте обратиться к сообществу CentOS или документации для получения дополнительной помощи.

Оцените материал
Добавить комментарий

Капча загружается...