Сетевая загрузка PXE: руководство по массовой установке ОС на рабочие станции
апр, 25 2026
Представьте, что вам нужно подготовить к работе сто новых ноутбуков. Можно потратить два дня, бегая с одной флешкой от одного стола к другому, а можно нажать пару кнопок в консоли сервера и запустить процесс на всех машинах одновременно. Именно для этого создана технология PXE (Preboot Execution Environment) - стандарт, который позволяет компьютеру загружаться по сети, даже если на нем нет жесткого диска или установленной операционной системы. Это база для любого системного администратора, который хочет перестать заниматься рутиной и перейти к автоматизации развертывания инфраструктуры.
Как на самом деле работает PXE загрузка
В отличие от привычного старта с SSD или USB, при сетевой загрузке управление передается сетевой карте. Процесс выглядит как четкая цепочка действий: компьютер включается, BIOS или UEFI активирует стек PXE, и машина начинает "кричать" в сеть, запрашивая помощь.
Сначала в дело вступает DHCP-сервер, который выдает клиенту IP-адрес и, что самое важное, указывает путь к загрузочному файлу и адрес сервера, где этот файл лежит. Затем компьютер обращается к TFTP-серверу (Trivial File Transfer Protocol) - максимально простому протоколу, который передает маленькую программу сетевой загрузки (NBP) прямо в оперативную память клиента. Как только эта программа запускается, она берет на себя управление и начинает скачивать основной образ операционной системы или установщик.
Сценарии использования: от офисных ПК до IoT
Массовая установка ОС - это лишь верхушка айсберга. Если вы управляете парком рабочих станций, PXE пригодится вам в нескольких ключевых сценариях:
- Автоматическое развертывание: Установка стандартного набора ПО и настроек на сотни машин без участия человека.
- Диагностика и восстановление: Загрузка специализированных утилит (например, для проверки памяти или восстановления данных), когда основная ОС вышла из строя.
- Бездисковые станции (Diskless): Использование тонких клиентов, которые вообще не имеют накопителей и загружают систему с сервера при каждом включении.
- Обновление прошивок: Удаленное обновление BIOS или UEFI на большом количестве серверов в дата-центре.
- HPC-кластеры: В системах высокопроизводительных вычислений узлы часто грузятся по сети для обеспечения идентичности среды выполнения.
Поднимаем PXE-сервер на Linux: технический минимум
Для создания полноценного узла развертывания на базе Linux (например, CentOS или Fedora) вам понадобится связка из нескольких сервисов. Начнем с установки необходимых пакетов. В современных дистрибутивах это делается одной командой: dnf install dhcp tftp-server httpd syslinux-tftpboot.
Ключевой момент здесь - правильная настройка
DHCP. В конфигурационном файле обязательно должны быть директивы authoritative (чтобы сервер считался главным в сети) и параметры времени аренды (default-lease-time 3600), чтобы адреса не занимались навечно. Также нужно указать параметр next-server - это IP вашего TFTP-сервера.
Сами файлы загрузки обычно хранятся в /var/lib/pxe/tftpboot. Однако TFTP очень медленный. Чтобы установка ОС не растянулась на часы, профессионалы используют
HTTP-сервер (например, Apache) для передачи тяжелых образов. В этом случае TFTP передает только крошечный загрузчик, который затем переключает клиента на быстрый HTTP-протокол для скачивания основного дистрибутива из каталога /var/lib/pxe/http.
Развертывание в среде Windows: путь через WDS
Если ваша инфраструктура построена на Windows, ручная настройка TFTP может показаться излишне сложной. Для этого существует Windows Deployment Services (WDS) - комплексное решение, которое объединяет в себе и PXE-сервер, и хранилище образов.
Для старта вам понадобится пакет
Windows ADK (Assessment and Deployment Kit) и надстройка Windows PE. Логика работы здесь следующая: клиент запрашивает IP, получает от DHCP параметры 066 (имя сервера) и 067 (имя файла, обычно boot.wim), скачивает его и запускает среду WinPE. Из этой среды уже начинается полноценная установка Windows 10 или Windows Server 2016 на жесткий диск.
| Критерий | Самосборный Linux PXE | Windows Deployment Services (WDS) |
|---|---|---|
| Сложность настройки | Выше (ручная правка конфигов) | Ниже (графический интерфейс) |
| Гибкость | Максимальная (любые ОС) | Ориентирована на экосистему MS |
| Скорость передачи | Зависит от использования HTTP | Оптимизирована под Multicast |
| Требования к лицензиям | Бесплатно (Open Source) | Требуется лицензия Windows Server |
Автоматизация установки: Kickstart и ответы
Просто запустить установщик по сети - это полдела. Если вам нужно поставить ОС на 100 машин, вы не захотите 100 раз вручную выбирать язык, часовой пояс и создавать пользователя. Здесь вступают в игру файлы ответов.
В мире Linux стандартом является Kickstart. Это текстовый файл, в котором заранее прописаны все ответы для установщика: разметка диска, пароль администратора и список пакетов. Сервер PXE просто передает путь к этому файлу клиенту, и установка проходит в режиме "поставил и забыл".
Для Windows используется аналогичный механизм - файлы unattend.xml. Они позволяют полностью автоматизировать процесс развертывания, включая установку драйверов сетевых карт, чтобы машина могла сразу после перезагрузки подключиться к домену.
Подводные камни и советы по оптимизации
Сетевая загрузка кажется магией, пока вы не сталкиваетесь с первыми проблемами. Вот несколько реальных кейсов, на которых обжигаются новички:
- Конфликт DHCP: Если в сети есть другой DHCP-сервер (например, ваш роутер), клиент может получить IP от него, но не получить данные о PXE-сервере. Решение - либо настроить один сервер, либо использовать DHCP-прокси.
- UEFI vs Legacy: Современные компьютеры используют UEFI. Для них нужны другие загрузочные файлы (например,
grubx64.efiвместоpxelinux.0). Если сервер настроен только под Legacy, новые ноутбуки просто не увидят загрузку по сети. - Сетевой шторм: Когда 50 машин одновременно начинают качать образ Windows весом в 5 ГБ, ваша сеть может просто "лечь". Используйте Multicast (многоадресную рассылку), чтобы сервер отправлял одну копию данных, которую слушали бы все клиенты сразу.
- Ограничения TFTP: Этот протокол крайне медленный. Если вы видите, что загрузка ядра длится вечность, переходите на схему
PXE → TFTP → HTTP.
Для более сложных задач, когда нужно не просто установить систему, а клонировать диск со всеми установленными программами и настройками, рекомендую посмотреть в сторону Clonezilla. Она отлично работает через PXE и позволяет буквально "снять слепок» с эталонного компьютера и раскатать его по всей сети.
Нужен ли жесткий диск на клиенте для работы PXE?
Нет, в этом и заключается главная особенность. PXE позволяет загружать операционную систему прямо в оперативную память (RAM-диск). Это используется в тонких клиентах или при установке ОС на новый пустой диск.
Что делать, если компьютер не видит сетевую загрузку в BIOS?
Проверьте, включена ли опция "Network Stack" или "PXE Boot" в настройках BIOS/UEFI. Также убедитесь, что сетевой адаптер установлен в приоритет загрузки (Boot Priority) перед жестким диском.
Можно ли установить Linux и Windows одновременно через один PXE-сервер?
Да, для этого используется многозагрузочный менеджер, такой как Syslinux или GRUB. После загрузки по сети пользователь увидит меню с выбором: какую именно ОС он хочет установить или запустить.
В чем разница между TFTP и HTTP при загрузке?
TFTP - это максимально простой протокол без авторизации и подтверждения доставки каждого пакета, он идеален для передачи крошечных файлов (до нескольких мегабайт). HTTP гораздо быстрее и надежнее, поэтому его используют для передачи тяжелых образов ОС после того, как первичный загрузчик уже получен через TFTP.
Безопасно ли использовать PXE в открытых сетях?
Это небезопасно. Протоколы DHCP и TFTP не шифруют данные. Любой человек в сети может подменить ответ DHCP-сервера и заставить вашу машину загрузить вредоносный код. Используйте PXE только в изолированных VLAN или доверенных корпоративных сетях.
Что делать дальше: план действий
Если вы решили внедрить сетевую загрузку, не пытайтесь сразу настроить всё для всего офиса. Начните с малого:
- Для новичков: Поднимите виртуальную машину с Linux, установите пакеты DHCP и TFTP, и попробуйте загрузить простую консольную оболочку на одном тестовом ноутбуке.
- Для Windows-админов: Разверните роль WDS на пробном сервере Windows Server и настройте интеграцию с существующим DHCP.
- Для профи: Настройте связку с HTTP-сервером и создайте Kickstart-файлы для полной автоматизации развертывания вашего стандартного рабочего образа.
Если в процессе настройки вы столкнулись с тем, что клиент получает IP, но зависает на этапе TFTP Timeout, первым делом проверьте брандмауэр (firewall) на сервере - порты 67 (DHCP) и 69 (TFTP) должны быть открыты.