Вопрос или проблема
Я хочу предварительно настроить установщик Ubuntu 12.04, используя индивидуальный рецепт разделения. Моя конфигурация диска довольно сложная, как и сама синтаксис рецепта. Создание такого рецепта вручную кажется трудоемким и подверженным ошибкам.
Существует ли инструмент, который просто создаст рецепт из существующего диска, включая его разделы и конфигурацию LVM?
Я не нашел такого инструмента и не хочу писать его. То, что я сделал, это рассматривать экспертные рецепты как обычные текстовые файлы, которые я редактирую онлайн с помощью редактора ACE. Прежде чем отправить рецепт в файл предварительной настройки в шаблоне mako, я использую эту функцию, чтобы преобразовать текст в форму, готовую для debconf.
https://github.com/umeboshi2/paella/blob/master/src/paella/paella/managers/util.py#L25
Эту функцию можно расширить, чтобы позволить вам добавлять комментарии в рецепт, если он достаточно сложен для этого.
Вы можете использовать Kickstart.
Отрывок из https://gist.github.com/ludo/3652811 примера:
bootloader --location=mbr
zerombr yes
clearpart --all --initlabel
part /boot --fstype=ext2 --size=64
part swap --size=1024
part / --fstype=ext4 --size=1 --grow
Я не совсем уверен, что вы имеете в виду под “предварительной настройкой”. Если вы говорите о KickStart или автоматической установке, хороший инструмент для этого — это anaconda.
Я использовал его extensively для автоматической установки RedHatLinux. Согласно Debian Wiki, он также поддерживается в Debian. Поскольку Ubuntu является производным от Debian, он должен быть пригоден для использования.
Вы контролируете разделы с помощью команды part.
Основная идея автоматической установки состоит в том, что вы предоставляете файл конфигурации kickstart, и anaconda выполняет всю работу.
Предварительная настройка встроена в установщик Debian. Kickstart — это аналогичный инструмент, используемый с RHEL. Я не знаю ни одного инструмента, как GUI-инструмент Red Hat system-config-kickstart или Anaconda, который позволял бы вам графически создавать файл конфигурации. Если вам часто нужно автоматизировать установку систем Debian (и, возможно, по сети), вам стоит обратить внимание на FAI – Полностью Автоматическая Установка – его возможности выходят за рамки того, что может сделать предварительная настройка, и у него довольно гибкие возможности разделения.
Но, конечно, вы также можете выполнить эту задачу с помощью предварительной настройки. Руководство по установке Debian GNU/Linux говорит
Самый простой способ создать файл предварительной конфигурации — использовать пример файла, связанный в Разделе B.4, “Содержимое файла предварительной конфигурации (для buster)”, в качестве основы и работать оттуда.
Альтернативный метод — выполнить ручную установку, а затем, после перезагрузки, использовать
debconf-get-selections
из пакетаdebconf-utils
, чтобы сбросить как базу данных debconf, так и базу данных cdebconf установщика в один файл:$ echo "#_preseed_V1" > file $ debconf-get-selections --installer >> file $ debconf-get-selections >> file
Тем не менее, файл, сгенерированный таким образом, будет содержать некоторые элементы, которые не должны быть предварительно настроены, и пример файла является более хорошей отправной точкой для большинства пользователей.
Чтобы проверить возможные значения для вопросов, вы можете использоватьnano
, чтобы изучить файлы в/var/lib/cdebconf
во время установки. Просмотритеtemplates.dat
для сырьевых шаблонов иquestions.dat
для текущих значений и значений, присвоенных переменным.Чтобы проверить, действителен ли формат вашего файла предварительной конфигурации перед началом установки, вы можете использовать команду
debconf-set-selections -c preseed.cfg
.
Если вы уже завершили установку, я бы рекомендовал проверить /var/log/installer
, который может содержать информацию, необходимую для создания конфигурации предварительной настройки.
Ответ или решение
Инструменты для создания рецепта предустановки для разбиения диска в Ubuntu 12.04
Если вы хотите автоматизировать процесс установки Ubuntu 12.04 с помощью предустановленных параметров разбиения диска, вам потребуется учесть несколько аспектов, включая сложность схемы разбиения и синтаксиса самого рецепта. Создание уникального рецепта вручную может быть трудоемким и подверженным ошибкам процессом. Однако существует несколько подходов и инструментов, которые могут упростить эту задачу.
Использование существующих инструментов
-
Preseed
-
Preseed — это встроенная функция установщика Debian (и его производных, таких как Ubuntu), которая позволяет автоматизировать установку, задавая параметры в виде конфигурационного файла. Чтобы собрать информацию для предустановленного файла, вы можете воспользоваться следующими шагами:
-
Шаг 1: Выполните ручную установку Ubuntu на тестовом сервере.
-
Шаг 2: После завершения установки используйте команду
debconf-get-selections
для создания файла с предустановенными параметрами. Это может выглядеть так:$ echo "#_preseed_V1" > file $ debconf-get-selections --installer >> file $ debconf-get-selections >> file
-
Шаг 3: Перед использованием файла в процессе установки проверьте его на корректность. Это можно сделать с помощью команды:
$ debconf-set-selections -c preseed.cfg
-
-
-
FAI (Fully Automatic Installation)
- FAI — это еще один инструмент, который предлагает более широкие возможности для автоматизированной установки, чем Preseed. Он поддерживает гибкие параметры разбиения и может использоваться для установки Ubuntu через сеть. В документации FAI вы найдете расширенные возможности сценариев, которые могут помочь в создании сложных схем разбиения.
-
Kickstart
- Kickstart — это метод, который изначально был разработан для установок Red Hat, но может использоваться и в Ubuntu, так как она имеет схожую основу с Debian. Kickstart позволяет создать конфигурационный файл, который включает команды для разбиения. Пример использования:
bootloader --location=mbr zerombr yes clearpart --all --initlabel part /boot --fstype=ext2 --size=64 part swap --size=1024 part / --fstype=ext4 --size=1 --grow
- Kickstart — это метод, который изначально был разработан для установок Red Hat, но может использоваться и в Ubuntu, так как она имеет схожую основу с Debian. Kickstart позволяет создать конфигурационный файл, который включает команды для разбиения. Пример использования:
Самостоятельное редактирование рецептов
Если вы не хотите использовать сторонние инструменты, можно обработать шаблоны конфигурации вручную. Рекомендуется сохранять оригинальный текст в текстовом файле и редактировать его с помощью веб-редактора, как ACE editor. Для работы с уже готовыми параметрами, можно написать скрипт, который будет преобразовывать исходный текст в нужный вам формат для использования с debconf.
Заключение
Ваша задача по созданию рецепта предустановки для разбиения диска в Ubuntu 12.04 может быть упрощена через использование существующих инструментов, таких как Preseed, FAI и Kickstart. Эти методы предложат вам более высокий уровень автоматизации и минимизацию ошибок при создании конфигурационного файла. Выбор подходящего инструмента зависит от ваших предпочтений и конкретных требований к разбиению.