Назад | Перейти на главную страницу

Файл конфигурации кикстарта Ubuntu не работает с ошибкой: файл может быть поврежден

Я пытаюсь установить свои серверы ubuntu с iPXE. Я создал файл кикстарта с помощью system-config-kickstart, но после того, как он был загружен установочным сервером, синтаксический анализ завершился ошибкой:

The installer failed to process the preconfiguration file from http://... The file may be corrupt

При просмотре / var / lib / preseed / log последняя строка всегда

Syntax error: unable to determine template name

что не очень помогает при поиске в Google.

Вот рабочий (но неполный) файл кикстарта:

preseed mirror/country string manual
preseed mirror/http/hostname string 192.168.1.70
preseed mirror/http/directory string /ubuntu
preseed apt-setup/security_host string 192.168.1.70
preseed apt-setup/security_path string /ubuntu

Когда я добавляю любую другую строку (например, "lang en_US"), отображается описанная ошибка.

Очевидно, есть ошибка в интерпретации файла kickstart.cfg, но я не вижу где. Есть ли у кого-нибудь ключ к разгадке этого вопроса?

РЕДАКТИРОВАТЬ: есть ли какой-либо порядок при создании файла конфигурации? Может беда в том, что инструкции не в нужном порядке? Боюсь, я начинаю изучать менее актуальные идеи: /

Большое спасибо!

EDIT2: вот мой нерабочий файл:

preseed mirror/country string manual
preseed mirror/http/hostname string 192.168.1.70
preseed mirror/http/directory string /ubuntu
preseed apt-setup/security_host string 192.168.1.70
preseed apt-setup/security_path string /ubuntu
lang en_US

EDIT3: вот инструкции iPXE, позволяющие клиенту загрузить файл кикстарта:

:ubuntu-amd64
echo Install Ubuntu
set base-url http://$my_ip_address/
kernel ${base-url}/ubuntu/linux
initrd ${base-url}/ubuntu/initrd.gz
imgargs linux auto=true hostname=ubuntu domain=my_domain interface=eth0 preseed/url=${base-url}/ubuntu/kickstart.cfg
boot

Загружается соответствующий файл. Я подозреваю, что возникла проблема с интерпретацией инструкций, содержащихся в этом кикстарте.

Изменить:

preseed/url=${base-url}/ubuntu/kickstart.cfg

в:

ks=${base-url}/ubuntu/kickstart.cfg

Вариант загрузки preseed/url ожидает найти файл конфигурации Preseed, но у вас есть файл конфигурации KickStart. Это две разные системы, поэтому вы получаете сообщение об ошибке. С помощью ks= сообщает системе, что загружает файл ks, а не файл ps.

Для получения дополнительной информации: Preseed создан Debian и поэтому может автоматизировать практически все, что связано с установкой Ubuntu. KickStart разработан RedHat, и есть проект по поддержке Kickstart в Ubuntu. Этот проект довольно надежен - большую часть установки Ubuntu можно автоматизировать с помощью файла Kickstart. Однако, если вы хотите автоматизировать некоторые из более мелких вещей, выполняемых установщиком Debian, вам нужно использовать preseed. Обратите внимание, что файл кикстарта может содержать большинство команд с предустановкой, просто добавляя к этим командам префикс «preseed» и отбрасывая «d-i». Вот что вы делаете с такими строками, как preseed mirror/country string manual - на самом деле это команда preseed, которую вы вызываете из своей конфигурации кикстарта. Надеюсь, это поможет!

Кроме того, случайное замечание - для простых локальных зеркал компакт-дисков вы, вероятно, можете удалить большинство команд mirror / * и просто использовать ключевое слово kickstart «url», которое правильно понимает установщик ubuntu для указания местоположения установочного носителя.