Установку любого Linux можно полностью автоматизировать путем создания файла со сценарием ответов на все вопросы инсталлятора. Интегрировав данный сценарий в инсталляционный образ получим полностью самоустанавливаемую систему. Способ автоматической установки называется Preseed. Созданный файл-сценарий ответов (preseed.cfg) пакуется его в initrd инсталляционного ISO-образа любых UNIX\Linux систем.
На выходе получаем обычный ISO-образ, готовый к автоматической установке.
Это удобно, когда нужно развернуть множество одинаковых систем.
Для создания собственного инсталляционного ISO-образа необходимо произвести ряд действий:
Смонтировать образ ISO устанавливаемой системы.
Достать из него initrd
Распаковать initrd
Скопировать в initrd созданный файл preseed.cfg и все необходимое для настройки устанавливаемой системы по завершении установки и собрать обратно ISO образ.
initrd или Initial RAM Disk - временная файловая система, используемая ядром Linux при начальной загрузке. Монтируется в оперативной памяти.
Для других методов автоматической установки нужно указать при загрузке программе установки какой файл использовать при загрузке. Это можно сделать через параметр загрузки ядра, вручную во время загрузки или изменив файл настройки системного загрузчика (например, syslinux.cfg) и добавить параметр в конец строки append для ядра.
Метод автоматизации установки Preseed был создан изначально для операционной системы Debian. А сейчас этот прием стал универсальным и можно применять на разных дистрибутивах.
Далее будет пример автоматической установки Debian.
Извлечение Initrd из образа ISO
Есть как минимум три команды, которые можно использовать для извлечения всех файлов из образа ISO:
bsdtar -C DESTINATION -xf debian-10.2.0-i386-netinst.iso xorriso -osirrox on -indev debian-10.2.0-i386-netinst.iso -extract / DESTINATION 7z x -oDESTINATION debian-10.2.0-i386-netinst.iso
Добавление файла Preseed в Initrd
Теперь у вас есть каталог isofiles со всеми файлами ISO. Сделайте файл initrd.gz доступным для записи пользователем, распакуйте его и добавьте в файл initrd файл preseed. Снова запакуйте initrd и верните initrd.gz в режим только для чтения:
chmod +w -R isofiles/install.386/ gunzip isofiles/install.386/initrd.gz echo preseed.cfg | cpio -H newc -o -A -F isofiles/install.386/initrd gzip isofiles/install.386/initrd chmod -w -R isofiles/install.386/
Пример preseed.cfg
Файл состоит из нескольких сегментов:
Локализация
Раскладка клавиатуры
Сеть
Репозиторий
Временная зона
Пользователи
Разметка диска
Apt setup
Программное обеспечение
Пользовательские скрипты
Каждый сегмент нужно по своему настроить, или использовать значения по умолчанию. Прикрепил стандартный файл конфигурации, т.к. слишком длинный для поста.
Небольшой кусок конфига выглядит так:
Надеюсь будет полезным данный инструмент.
-> Ссылка на все мои публикации <-