Сетевая установка RED OS через PXE упирается в три обязательных компонента: DHCP-сервер, который выдаёт клиенту адрес и параметры загрузки, TFTP-сервер с файлами загрузчика и источник установочных файлов (HTTP, NFS или FTP). Если хотя бы один из них настроен неверно, клиент либо не получает адрес, либо останавливается на этапе TFTP open timeout, либо не находит образ системы.
Ниже разберём, как собрать рабочую связку для загрузки RED OS по сети, какие файлы понадобятся из установочного образа и как диагностировать типичные сбои. Инструкция ориентирована на администраторов, разворачивающих ОС на нескольких машинах в локальной сети. Точные имена пакетов и пути могут отличаться в зависимости от версии дистрибутива на сервере — сверяйтесь с официальной документацией RED OS и используемого серверного ПО.
Как работает PXE-загрузка и что нужно подготовить
PXE (Preboot Execution Environment) — механизм, встроенный в сетевую карту и прошивку компьютера (BIOS или UEFI), который позволяет загрузиться по сети без локального носителя. Клиент отправляет широковещательный DHCP-запрос, получает IP-адрес, адрес TFTP-сервера и имя загрузочного файла, скачивает загрузчик и дальше действует по сценарию, заданному в его конфигурации.
Для развёртывания потребуется:
- 🖥️ Отдельный сервер или виртуальная машина в той же сети, что и клиенты, с установленными
dhcpd(или dnsmasq) иtftp-server. - 💿 Установочный ISO-образ RED OS нужной редакции, скачанный с официального ресурса разработчика.
- 🌐 HTTP-, NFS- или FTP-сервер для раздачи содержимого образа — загрузчик по PXE передаёт только начальную стадию, а основные пакеты установщик забирает по сети.
- 🔧 Права администратора на сервере и доступ к настройкам сети.
⚠️ Внимание: если в сети уже работает DHCP-сервер (например, на роутере), запуск второго DHCP приведёт к конфликту — клиенты будут получать адреса от случайного сервера. Либо настройте PXE-параметры на существующем DHCP, либо используйте режим proxyDHCP, если ваше ПО его поддерживает.
Настройка DHCP-сервера для PXE
Задача DHCP — помимо IP-адреса передать клиенту два ключевых параметра: next-server (адрес TFTP-сервера) и filename (имя загрузочного файла). В классическом ISC DHCP это делается внутри блока подсети в конфигурационном файле /etc/dhcp/dhcpd.conf.
Пример фрагмента конфигурации:
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
next-server 192.168.1.10;
filename "pxelinux.0";
}
Здесь 192.168.1.10 — адрес самого PXE-сервера, а pxelinux.0 — загрузчик из пакета syslinux для клиентов с legacy BIOS. После правки конфигурации перезапустите службу и проверьте, что она не сообщила об ошибках синтаксиса: systemctl restart dhcpd и systemctl status dhcpd.
Важный нюанс: машины с UEFI не могут использовать pxelinux.0 — им нужен EFI-загрузчик, например grubx64.efi или BOOTX64.EFI. Если в сети смешанный парк устройств, в DHCP настраивают условную выдачу имени файла в зависимости от архитектуры клиента, которую тот сообщает в запросе. Конкретный синтаксис условий зависит от DHCP-сервера — проверьте его документацию.
Настройка TFTP и размещение загрузчика
TFTP-сервер отдаёт файлы начальной загрузки. Корневым каталогом обычно служит /var/lib/tftpboot — именно туда помещают загрузчик и его конфигурацию. После установки пакета убедитесь, что служба включена и слушает порт 69/udp.
Минимальный набор файлов в корне TFTP для legacy-загрузки через syslinux: сам pxelinux.0, необходимые библиотеки (ldlinux.c32, menu.c32 или vesamenu.c32 — зависит от версии syslinux) и каталог pxelinux.cfg с файлом default, описывающим меню загрузки.
Ядро (vmlinuz) и initramfs (initrd.img) возьмите из установочного ISO RED OS — они обычно расположены в каталоге образа с загрузочными файлами. Смонтируйте ISO и скопируйте их в отдельный подкаталог TFTP, например redos/, чтобы не смешивать с файлами других систем.
☑️ Проверка готовности TFTP-сервера
Файл конфигурации меню загрузки
Файл pxelinux.cfg/default определяет, что увидит клиент и какие параметры получит ядро. Критично правильно указать путь к репозиторию установки — без него инсталлятор RED OS не найдёт пакеты.
Примерная структура записи:
DEFAULT menu.c32
PROMPT 0
TIMEOUT 100
LABEL redos
MENU LABEL Install RED OS (network)
KERNEL redos/vmlinuz
APPEND initrd=redos/initrd.img inst.repo=http://192.168.1.10/redos
Параметр inst.repo указывает установщику источник пакетов. Точное имя параметра зависит от версии установщика: в системах на базе Anaconda используется inst.repo, в более старых — repo или method. Если установщик не подхватывает репозиторий, проверьте в документации RED OS актуальный синтаксис для вашей версии.
Раздача установочных файлов по HTTP или NFS
Самый простой вариант источника — HTTP. Установите веб-сервер (например, nginx или apache), смонтируйте ISO RED OS и скопируйте его содержимое в каталог, доступный веб-серверу, например /var/www/html/redos. Проверьте доступность с любой машины сети, открыв в браузере адрес http://192.168.1.10/redos/ — должно отобразиться содержимое образа.
| Компонент | Назначение | Порт |
|---|---|---|
| DHCP (dhcpd / dnsmasq) | Выдача адреса, next-server и filename | 67/udp |
| TFTP (tftp-server) | Передача загрузчика, ядра и initrd | 69/udp |
| HTTP (nginx/apache) | Репозиторий пакетов установщика | 80/tcp |
| NFS (опционально) | Альтернативный источник установки | 2049 |
Альтернатива — NFS: смонтированный ISO экспортируется через /etc/exports, а в параметрах ядра указывается путь вида nfs:192.168.1.10:/mnt/redos. NFS иногда удобнее при установке на машины без доступа к веб-серверу, но требует корректной настройки прав экспорта.
Настройка клиента: BIOS и UEFI
На целевой машине включите загрузку по сети. В BIOS/UEFI эта опция обычно называется Network Boot, PXE Boot или LAN Boot; также сетевой адаптер нужно поставить первым в порядке загрузки или выбрать его одноразово через boot-меню (клавиша вызова зависит от производителя платы).
Для UEFI-клиентов проверьте два момента. Во-первых, Secure Boot может блокировать неподписанные PXE-загрузчики — если загрузка обрывается сразу после получения файла, временно отключите Secure Boot или используйте подписанный загрузчик, если он предусмотрен дистрибутивом. Во-вторых, убедитесь, что DHCP выдаёт UEFI-клиентам именно EFI-файл, а не pxelinux.0.
Как отличить legacy BIOS от UEFI на клиенте
В настройках прошивки ищите переключатель Boot Mode: значения Legacy/CSM означают legacy-режим, UEFI — соответственно UEFI. В уже установленной Linux-системе признаком UEFI служит наличие каталога /sys/firmware/efi.
Диагностика типичных ошибок PXE
Если клиент не загружается, начинайте с этапа, на котором происходит сбой — сообщение на экране почти всегда указывает причину.
- 🔌
PXE-E51: No DHCP or proxyDHCP offers received— клиент не получил ответ от DHCP. Проверьте, запущен ли dhcpd, попадает ли клиент в нужную подсеть и не блокирует ли файрвол порт 67/udp. - 📄
TFTP open timeoutилиFile not found— загрузчик недоступен. Проверьте имя файла в DHCP (регистр и путь важны), права на файлы в TFTP-корне и состояние службы. - 💾 Установщик запустился, но не находит репозиторий — ошибка в параметре
inst.repo: проверьте URL в браузере, синтаксис параметра и доступность веб-сервера с клиента. - 🔐 Мгновенный сброс загрузки на UEFI — вероятный конфликт с Secure Boot или неверный EFI-загрузчик.
⚠️ Внимание: для анализа обмена между клиентом и сервером используйте tcpdump на сервере — например, фильтр по портам 67–69 покажет, доходит ли DHCP-запрос и запрашивает ли клиент файл по TFTP. Это самый быстрый способ локализовать проблему без перебора настроек вслепую.
Автоматизация установки
Когда машин много, ручное прохождение установщика неудобно. Установщики семейства Anaconda поддерживают файлы ответов kickstart (ks.cfg), где заранее описаны разметка диска, пакеты, пользователи и настройки сети. Путь к файлу передаётся параметром ядра, например inst.ks=http://192.168.1.10/ks.cfg.
Проверьте в документации RED OS, поддерживается ли kickstart в вашей версии и какие секции файла обязательны. Начните с минимального файла и добавляйте параметры постепенно, тестируя на одной машине или виртуалке с включённой сетевой загрузкой.
⚠️ Внимание: kickstart с автоматической разметкой перезаписывает диск без подтверждений. Перед массовым применением убедитесь, что в файле указан правильный целевой диск, иначе можно уничтожить данные на машине с несколькими накопителями.
Частые вопросы о PXE и RED OS
Можно ли использовать один PXE-сервер для разных дистрибутивов?
Да. Создайте отдельные подкаталоги в TFTP и на веб-сервере для каждой системы, а в pxelinux.cfg/default добавьте несколько пунктов меню LABEL с собственными ядром, initrd и параметрами репозитория.
Работает ли PXE через Wi-Fi?
Как правило, нет: стандартный PXE реализован в прошивке проводных сетевых адаптеров. Беспроводная сетевая загрузка возможна лишь в отдельных UEFI-реализациях и сильно зависит от оборудования.
Чем заменить связку dhcpd + tftp-server?
Часто применяют dnsmasq, объединяющий DHCP, proxyDHCP и TFTP в одной службе — конфигурация получается компактнее. Также существуют комплексные решения вроде Foreman или Cobbler для управления сетевой установкой в крупных инфраструктурах.
Клиент получает адрес, но меню загрузки не появляется. Что проверить?
Убедитесь, что файл pxelinux.cfg/default существует и читаем, что в TFTP-корне лежат все библиотеки syslinux нужной версии (несовпадение версий pxelinux.0 и *.c32 — частая причина чёрного экрана), а также посмотрите логи TFTP-сервера на предмет запрошенных клиентом файлов.
Нужен ли отдельный сервер или всё можно поставить на одну машину?
DHCP, TFTP и HTTP спокойно сосуществуют на одном сервере — именно так чаще всего и делают. Главное, чтобы у машины был статический IP-адрес и она находилась в одной сети с клиентами (либо на маршрутизаторе был настроен DHCP-relay с параметрами PXE).