Загрузка установщика Astra Linux по сети через PXE (Preboot Execution Environment) позволяет развернуть операционную систему на десятках машин без флешек и дисков: клиент получает загрузчик от сервера и запускает инсталлятор прямо из сетевого ресурса. Перед началом проверьте, что в BIOS/UEFI целевого компьютера включена опция сетевой загрузки (обычно называется Network Boot или PXE Boot) и что сетевая карта клиента находится в том же широковещательном сегменте, что и сервер развёртывания, либо на маршрутизаторе настроен DHCP-relay.
Технология актуальна для организаций, где требуется массовое развёртывание Astra Linux Special Edition или Common Edition на однотипном парке машин. Схема строится на трёх службах: DHCP выдаёт клиенту адрес и параметры загрузки, TFTP передаёт загрузчик и ядро, а NFS или HTTP отдаёт содержимое установочного диска. Ниже разберём настройку каждого компонента и типичные ошибки, из-за которых клиент «не видит» сервер или зависает на этапе загрузки.
Что потребуется для организации PXE-сервера
В качестве сервера развёртывания удобно использовать отдельную машину с уже установленной Astra Linux, хотя подойдёт и любой другой Linux-дистрибутив. Серверу нужен статический IP-адрес — без него DHCP-служба не сможет корректно работать. Также потребуется ISO-образ установочного диска той редакции и версии Astra Linux, которую планируется ставить на клиенты.
Минимальный набор компонентов выглядит так:
- 🖥️ DHCP-сервер (например, isc-dhcp-server) — выдаёт адреса и указывает клиенту, где искать загрузчик.
- 📦 TFTP-сервер (tftpd-hpa) — передаёт файлы pxelinux, ядро и initrd на этапе начальной загрузки.
- 🌐 NFS- или HTTP-сервер — раздаёт содержимое установочного ISO.
- 💾 ISO-образ Astra Linux — источник пакетов и загрузочных файлов.
- 🔌 Изолированный или контролируемый сегмент сети — чтобы ваш DHCP не конфликтовал с корпоративным.
⚠️ Внимание: запуск собственного DHCP-сервера в сети, где уже работает корпоративный DHCP, приведёт к конфликтам — клиенты начнут получать адреса от случайного сервера. Перед настройкой согласуйте с администратором сети выделенный VLAN или используйте отдельный коммутатор для стенда.
Установка и настройка DHCP-сервера
Установите пакет и задайте статический адрес серверу. Вам нужно отредактировать конфигурацию /etc/dhcp/dhcpd.conf, указав подсеть, диапазон адресов и два ключевых параметра для PXE: next-server (адрес TFTP-сервера) и filename (имя загрузочного файла).
Примерный фрагмент конфигурации:
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.100 192.168.10.200;
next-server 192.168.10.1;
filename "pxelinux.0";
}
После правки перезапустите службу командой systemctl restart isc-dhcp-server и проверьте её статус. Если служба не стартует, причина чаще всего в синтаксической ошибке конфигурации или в том, что интерфейс сервера не входит в объявленную подсеть — смотрите журнал через journalctl -u isc-dhcp-server.
Настройка TFTP и подготовка загрузочных файлов
TFTP-сервер обслуживает корневой каталог, из которого клиент забирает загрузчик. Для tftpd-hpa это обычно /srv/tftp. Сюда необходимо поместить файлы сетевого загрузчика SYSLINUX/PXELINUX, а также ядро vmlinuz и образ начальной загрузки initrd.gz, взятые из каталога netboot или аналогичного на установочном диске Astra Linux — расположение может отличаться в зависимости от версии дистрибутива, поэтому сверяйтесь с документацией к вашему релизу.
Типовая структура каталога выглядит так:
/srv/tftp/
├── pxelinux.0
├── ldlinux.c32
├── pxelinux.cfg/
│ └── default
└── astra/
├── vmlinuz
└── initrd.gz
В файле pxelinux.cfg/default описывается пункт загрузки. В нём указывается ядро, initrd и параметры, среди которых — адрес источника установки:
DEFAULT astra
LABEL astra
KERNEL astra/vmlinuz
APPEND initrd=astra/initrd.gz url=nfs:192.168.10.1:/srv/nfs/astra
Точный синтаксис параметра источника зависит от установщика конкретной версии — варианты могут включать url=, inst.repo= или другие ключи. Неправильный параметр источника — самая частая причина, по которой установщик загружается, но не находит репозиторий с пакетами. Проверяйте документацию к вашей версии Astra Linux.
Публикация установочного диска по NFS
Содержимое ISO нужно смонтировать и сделать доступным по сети. Создайте каталог, смонтируйте образ и скопируйте файлы либо экспортируйте точку монтирования напрямую:
mkdir -p /srv/nfs/astra
mount -o loop astra-linux.iso /mnt
cp -r /mnt/* /srv/nfs/astra/
Затем настройте экспорт в /etc/exports, указав каталог и разрешённую подсеть с правом чтения, и примените изменения командой exportfs -ra. Убедитесь, что служба NFS запущена, а межсетевой экран сервера пропускает обращения к NFS, TFTP и DHCP со стороны клиентов.
☑️ Готовность PXE-сервера к развёртыванию
Загрузка клиента и запуск установки
На целевой машине включите в BIOS/UEFI сетевую загрузку и поставьте её первой в приоритете, либо вызовите загрузочное меню (клавиша зависит от производителя — обычно F12, но уточняйте для вашей модели). Если всё настроено верно, клиент получит адрес, скачает pxelinux.0, затем ядро и initrd, после чего запустится установщик Astra Linux.
Дальнейшая установка почти не отличается от локальной: разметка диска, выбор пакетов, создание пользователя. Для массового развёртывания имеет смысл изучить механизм автоматических ответов установщика (kickstart-подобные сценарии или preseed — в зависимости от того, какой установщик используется в вашей версии), чтобы не отвечать на вопросы вручную на каждой машине.
Типичные ошибки и их диагностика
Большинство проблем PXE-установки диагностируется по этапу, на котором процесс останавливается. Сведём основные симптомы в таблицу:
| Симптом | Вероятная причина | Что проверить |
|---|---|---|
| Клиент не получает IP-адрес | DHCP не отвечает или конфликт серверов | Статус службы, журнал, изоляцию сегмента |
| Ошибка «PXE-E32: TFTP open timeout» | TFTP недоступен или файрвол блокирует порт 69/UDP | Службу tftpd-hpa и правила межсетевого экрана |
| «File not found» после получения адреса | Неверный путь в параметре filename | Расположение pxelinux.0 в корне TFTP |
| Зависание после загрузки ядра | Установщик не находит источник пакетов | Параметры APPEND и доступность NFS-экспорта |
| Клиент UEFI не загружается, BIOS — работает | Для UEFI нужен другой загрузчик (например, grubnet или syslinux.efi) | Режим загрузки клиента и соответствующий filename |
⚠️ Внимание: загрузчик для режима Legacy BIOS и для UEFI — разные файлы. Если в парке есть машины с обоими режимами, необходимо настроить в DHCP раздачу нужного загрузчика в зависимости от архитектуры клиента (параметр 93 в DHCP-запросе), иначе часть машин не сможет загрузиться.
Особенности для Astra Linux Special Edition
В защищённой редакции дистрибутива могут действовать дополнительные требования: использование сертифицированных носителей и репозиториев, контроль целостности пакетов, ограничения на сетевые службы. Перед развёртыванием сверьтесь с эксплуатационной документацией именно вашей версии Special Edition — порядок настройки сетевой загрузки там может отличаться от общего случая, а некоторые сетевые механизмы могут требовать отдельного разрешения в политиках безопасности.
Также учтите, что обновления и дополнительные пакеты удобно раздавать через отдельный локальный репозиторий, чтобы клиенты после установки не обращались к внешним источникам. Это особенно важно в изолированных контурах, где доступ в интернет отсутствует по определению.
Как посмотреть, что происходит на этапе PXE-загрузки
Запустите на сервере tcpdump с фильтром по портам 67, 68 (DHCP) и 69 (TFTP): tcpdump -i eth0 port 67 or port 68 or port 69 -n. Вы увидите, приходит ли запрос от клиента, отвечает ли DHCP и запрашивает ли клиент файл по TFTP. Это самый быстрый способ локализовать проблемный этап.
Часто задаваемые вопросы
Можно ли использовать один PXE-сервер для разных версий Astra Linux?
Да. Создайте отдельные каталоги для каждой версии в TFTP и NFS, а в файле pxelinux.cfg/default добавьте несколько пунктов меню с собственными ядром, initrd и источником пакетов. При загрузке клиент выберет нужный вариант из меню.
Работает ли PXE-установка через Wi-Fi?
Нет, стандартный PXE работает только через проводной сетевой адаптер — поддержка сетевой загрузки реализована в прошивке Ethernet-контроллера. Для беспроводных машин используйте установку с USB-носителя.
Клиент получает адрес, но сообщает об отсутствии загрузочного файла. Что делать?
Проверьте, что файл, указанный в параметре filename конфигурации DHCP, действительно лежит в корневом каталоге TFTP-сервера и что путь задан относительно этого корня. Также убедитесь, что у файла есть права на чтение.
Нужен ли отдельный сервер или всё можно разместить на одной машине?
Все три службы — DHCP, TFTP и NFS — спокойно работают на одном сервере, этого достаточно для большинства стендов и небольших сетей. Разнесение имеет смысл только при большой нагрузке или особых требованиях к инфраструктуре.
Как автоматизировать ответы установщика при массовом развёртывании?
Изучите механизм файлов ответов, поддерживаемый установщиком вашей версии Astra Linux: параметры автоматизации передаются через строку APPEND в конфигурации PXE. Точный формат файла ответов зависит от версии дистрибутива — ориентируйтесь на официальную документацию.