Исправление ошибки Ubiquity при установке кастомного ISO Ubuntu

Вы собираетесь создать свой дистрибутив на базе Ubuntu и сталкиваетесь с внезапным крахом установщика? Такая проблема часто возникает из-за незаметных нюансов конфигурации, которые легко пропустить. Давайте разберёмся, как найти корень ошибки и сделать процесс установки стабильным, даже если логи кажутся запутанными.

Где искать причины сбоя

Первое, на что стоит обратить внимание – логи установки. В примере выше ошибки в /var/log/casper.log указывают на проблемы с определением FQDN (полного доменного имени хоста) и DNS. Это может казаться второстепенным, но для Ubiquity (графического установщика Ubuntu) такие сбои часто становятся критичными.

Что проверить в первую очередь:

  • Наличие корректного имени хоста в файле /etc/hosts внутри собранного образа (например, через chroot перед упаковкой ISO).
  • Работоспособность сетевых настроек в виртуальной машине – иногда DHCP-клиент не успевает получить адрес до начала установки.

Но в данном случае ключевая подсказка скрывалась в syslog: ошибка ubiquity-slideshow-foo отсутствует в системе. Этот пакет отвечает за слайд-шоу во время установки, и без него Ubiquity может завершать работу аварийно. Как это исправить?

# В конфигурации live-build (папка config/package-lists/)  
echo "ubiquity-slideshow-ubuntu" >> desktop.list.chroot_install  

Кстати, если вы используете собственную тему установки, замените «ubuntu» на её название. Пропуск этого шага – частая ошибка при кастомизации, особенно если вы удаляете «лишние» пакеты из базового образа.

Тонкая настройка live-build и патчинг

Даже после добавления слайд-шоу проблема может повториться из-за багов в самом Ubiquity. Например, в Launchpad есть открытый тикет с аналогичными симптомами. Если официальное исправление ещё не добавлено в репозитории, можно вручную применить патч из обсуждения:

Важно: Перед изменением скриптов установщика создайте резервную копию образа – некоторые правки могут нарушить цифровые подписи пакетов.

Пример исправления для файла /usr/lib/ubiquity/plugins/ubi-usersetup.py (основано на предложенном патче):

# Заменить строку  
self.db.get('passwd/user-password-crypted'))  
# На  
self.db.get('passwd/user-password'))  

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

Дополнительные шаги для стабильной сборки

Чтобы избежать проблем в будущем, рекомендую:

  1. Всегда включать отладочные пакеты в образ – casper, ubiquity-debug, systemd-logind.
  2. Проверять зависимости через apt-rdepends перед исключением компонентов (например, apt-rdepends ubiquity покажет критичные связи).
  3. Тестировать ISO не только в Virtual Manager, но и на реальном железе – некоторые драйверы или службы могут вести себя иначе.

Если после всех правок установщик всё равно падает, попробуйте собрать образ с ключом --debug в live-build. Это сохранит временные файлы и chroot-окружение, что позволит вручную проверить, какие данные передаются в Ubiquity на этапе конфигурации.

И помните: даже незначительные опечатки в конфигах (вроде пропущенной точки с запятой или неправильного расширения файла) могут привести к часам бесплодных поисков. Удачи в создании идеального дистрибутива!

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

Все поля обязательны к заполнению. Ваш адрес email не будет виден никому.

Новое
Интересное