Astra Linux PXE: установка операционной системы по сети

Загрузка установщика 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-сервера к развёртыванию

Выполнено: 0 / 6

Загрузка клиента и запуск установки

На целевой машине включите в BIOS/UEFI сетевую загрузку и поставьте её первой в приоритете, либо вызовите загрузочное меню (клавиша зависит от производителя — обычно F12, но уточняйте для вашей модели). Если всё настроено верно, клиент получит адрес, скачает pxelinux.0, затем ядро и initrd, после чего запустится установщик Astra Linux.

Дальнейшая установка почти не отличается от локальной: разметка диска, выбор пакетов, создание пользователя. Для массового развёртывания имеет смысл изучить механизм автоматических ответов установщика (kickstart-подобные сценарии или preseed — в зависимости от того, какой установщик используется в вашей версии), чтобы не отвечать на вопросы вручную на каждой машине.

📊 Для какой задачи вы настраиваете PXE с Astra Linux
Массовое развёртывание в организации
Тестовый стенд или лаборатория
Установка на один компьютер без USB
Изучаю технологию в учебных целях

Типичные ошибки и их диагностика

Большинство проблем 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. Точный формат файла ответов зависит от версии дистрибутива — ориентируйтесь на официальную документацию.