Настройка сетевой установки под себя

Вступление

При установке любого дистрибутива ALT Linux (в том числе и входящего в ПСПО), чуть менее чем все шаги установки (кроме разметки диска) после успешного её завершения будут записаны в файл /root/autoinstall.scm, который с незначительными модификациями (добавлением инструкций разметки диска) можно использовать для автоматической установки этого дистрибутива с этими настройками. Но зачастую выбор настроек, предлагаемых языком autoinstall.scm, недостаточен, и необходимо вставить в процесс установки что-то своё, родное. Для этого есть как минимум два пути:

Собственно говоря, минимальной необходимостью для сетевой установки являются две машины, соединённые в сеть, причём: одна из них умеет загружаться по PXE, а на другой настроены некоторые службы и лежат некоторые файлы. Некоторыми службами являются демоны nfsd, tftpd, dhcpd, xinetd и rsync, а файлами --- развёрнутый установочный образ дистрибутива с теми самыми некоторыми модификациями.

В общих чертах о процессе

Загрузка "клиентской" машины, то есть той, на которую устанавливается система, будет происходить следующим образом. Первое --- при включении она получает от DHCP-сервера (предоставляемого dhcpd) специальный пакет с указанием её адреса и адресом к образу загрузчика pxelinux.0. Далее, этот самый pxelinux.0 скачивается по TFTP (его отдаёт, как нетрудно догадаться, tftpd), и сразу же начинает исполняться, а именно: загружает ядро, и монтирует по NFS необходимый для установки каталог (соответственно, раздаваемый unfsd). После чего запускается Alterator, в зависимости от настроек PXE, в ручном или автоматическом режиме, и начинает установку.

Маленькие модификации

Немного о том, как устроен установочный диск дистрибутива ALTLinux. К примеру, посмотрим в корень установочного DVD с ПСПО Линукс Мастер:

altinst  ALTLinux  Documentation  isolinux  license.ru.txt  license.txt  Metadata  rescue  RPM-GPG-KEY

Самое интересное всмысле модификации установки находится в двух местах --- каталоге Metadata и файле altinst. В первом могут находиться конфигурационные файлы Alterator для автоматической установки (тот самый autoinstall.scm и произвольные другие файлы, которые могут потребоваться установщику (в частности, именно в этом каталоге должны находиться файлы, которые могут потребоваться модифицирующим скриптам), среди них --- описание разбивки диска при установке), а второй --- это образ файловой системы squashfs, который являет собой полную систему, из котороый, собственно, и исполняется Alterator, производящий установку.

У любопытного читателя, наверное, возник вопрос --- нельзя ли дописать желаемые модификации в исполняемый установщиком autoinstall.scm? Ответ на этот вопрос скорее отрицателен, ибо в autoinstall.scm записываются только те действия, которые может выполнять установщик, как-то: разбивка диска, настройка и установка загрузчика, установка групп пакетов. Вставить собственный код непосредственно в этот файл, к сожалению, невозможно.

Но в процессе своей работы --- вернее даже, перед её завершением --- установщик выполняет скрипты, которые находятся в /usr/share/alterator/postinstall.d/, просто в порядке их нахождения в этом каталоге.

Этот каталог располагается внутри образа squashfs, из которого разворачивается минимальная система для исполнения Alterator, а пересборка оного образа не сильно лучше пересборки всего дистрибутива.

Обходная хитрость --- распаковать образ в одноимённый каталог в том же месте в дереве. Тогда установка будет происходить с использованием этого каталога вместо образа. А в этот-то каталог (вернее, в его подкаталог usr/share/alterator/postinstall.d/) и стоит внедрять всякие модификации.

Пример модификации

Модификациями в данном случае будут сценарии на shell, которые работают с некоторыми определёнными установщиком функциями и созданными установщиком каталогами. Для примера рассмотрим сценарий, задача которого --- распаковать в целевую систему некоторый архив:

#!/bin/sh -efu

. install2-init-functions

cp-metadata $destdir/root/synchrone.tar
exec_chroot tar xf /root/synchrone.tar --no-overwrite-dir --no-same-owner -C /
exec_chroot chkconfig --add synchrone

Строка . install2-init-functions включает в сценарий заданные установщиком функции и переменные. Среди которых cp-metadata --- позволяет взять данные из каталога Metadata, о котором было сказано выше, и exec_chroot --- выполнить команду внутри целевой системы. Переменная destdir определяет каталог, в котором находится целевая система в процессе установки.

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


Сведения о ресурсах

Готовность (%)

Продолжительность (ак. ч.)

Подготовка (календ. ч.)

Полный текст (раб. д.)

Предварительные знания

Level

Maintainer

Start date

End date

90

1

1

1

1

MaximByshevskiKonopko, DmitryChistikov, VsevolodKrishchenko


CategoryLectures CategoryPspo CategoryMpgu CategoryUneex

PspoClasses/080722/04NetInstallHacking (last edited 2008-12-17 08:41:16 by eSyr)