DollyPapper
@DollyPapper

Как работают установщики OS Linux?

Добрый день! Собираю на данный момент по рабочей задаче под тонкие клиенты "свой линукс". На текущий момент сборка делается так
1) Подготавливаются необходимые изменения в таргет ОС
2)Загружаюсь с любой другой ОС, ставлю необходимые утилиты по типу xorriso для записи ISO
3)Запускаю свой сборочный скрипт который качает systemrescue-cd образ основанный на арче, распаковывает его squashfs, пакую туда архив с таргет системой (прям вот gzip всей системы), собираю обратно squashfs, пишу исошник.
4)Загружается с флешку этот systemrescuecd на арче, из него опять же скриптом установки распаковываю всю систему, форматирую диски, назначаю новый хостнейм и прочие дела.

Вопрос собственно в том, на сколько это "плохой" путь. Интересует именно вопрос пакования таргет системы в архив и распаковка его на новом железе отличающемся от того на котором система была изначально установлена и допилена под свои нужды. Есть ли у данного метода какие-то подводные камни которые которые стоит учесть? Например привязка каких нибудь файлов или функций ОС или ядра к оборудованию или что-то подобное.
Имеет ли вообще такая установка право на жизнь?

Как работают установщики других ОС? Убунты например? Они тоже грузят сначала не целевую систему и из нее ставят целевую, или как то иначе?
  • Вопрос задан
  • 149 просмотров
Решения вопроса 1
Adamos
@Adamos
А что, в арче нет preseed? Ну, Ansible-то точно есть...
Зачем эти запаковки всей системы, как в виндах каких-нибудь?
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@pfg21
ex-турист
инсталяк убунту-лайв просто рсинкает свой развернутый в памяти образ на будущий рутовый раздел.
потом запускает скрипты, которые модифицируют получившийся рутовый раздел под текущую аппаратную реалию: меняют fstab, устаналивают груб в загрузочную запись, создают новые идентификаторы, ключи и все остальное необходимое для уникальной индивидуальности каждой системы.
Ответ написан
jamakasi666
@jamakasi666 Куратор тега Linux
Просто IT'шник.
Тут есть вопрос о железе на которое будет все раскатываться и конечной цели.
Если предположить что везде будет uefi совместимая загрузка, пользователи локальные то я бы сделал так.
Взял арч.
Написал скрипт.
1) Разметка диска скриптом через sfdisk. Грубо на 2 части, /boot и / .Первый vfat на пол гига, все остальное ext4 под / . Назначение единнообразных лейблов разделам чтобы потом грузится по ним а не по UUID, скажем arch_boot и arch_root.
2) Установка базовой ОС. Локаль, часовой пояс, hostname и прочая мелочь.
3) Установка дополнительных пакетов необходимых, DE и прочее именно необходимое.
4) Установка systemd-boot в качестве бутлоадера. Максимально просто. Копирование заранее созданного конфига для бута ОС. Создание правила пакмана для обновления systemd-boot после обновы пакета с ним.
5) Включение службы systemd-timesyncd . Копирование конфига для него с прописанным сервером времени.
6) Отключение службы сети от DE и включение службы systemd-networkd, копирование конфига или конфигов нужных. Включение systemd-resolved (если необходимо то конфиг с прописанными dns нужными).
7) Запуск systemd-homed , копирование "рыбы"(или старого хомяка ) директории пользователя с конфигами софта который будет использоваться. (внезапно это удобно, если не заморачиваться с luks).
8) Накатка административных кофигов, ssh\ftp и прочего.

Т.е. весь скрипт фактически сводится к автоматической разметке диска, установке пачки пакетов. Копирование конфигов и хомяка, включение служб. В случае арча я бы еще пошаманил в конфигах пакмана запретив распаковывать некоторые файлы, типа исходников, ненужных локалей и прочего ненужного обычному пользователю в целях уменьшения итоговой системы. Единожды подготовив все можно получить универсальный скрипт инсталяции в котором всегда будет свежая система.
Конечно если у вас там ldap и большая завязка на что то, то вероятно, такой способ будет не совсем удобным.
Если все в пределах локалки то тут скорее всего в разы удобнее будет pxe загрузка какого нибудь thinstation.

Касательно изначального вопроса про упаковку всей системы в tar.gz архив, вариант не очень хороший по многим причинам но имеет право жизни если вы будете учитывать все нюансы этого подхода.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы