Компьютер при сетевой загрузке выдаёт ошибку PXE-E53: No boot filename received — это почти всегда означает, что DHCP-сервер отвечает клиенту, но не передаёт имя загрузочного файла, и вся цепочка PXE обрывается на первом же этапе. Именно с таких симптомов начинается знакомство большинства администраторов с технологией сетевой загрузки.
PXE (Preboot Execution Environment) — это среда, которая позволяет компьютеру загрузиться по сети без локального диска, флешки или DVD. Технология незаменима, когда нужно развернуть операционную систему на десятки машин, запустить диагностические утилиты или загрузить тонкий клиент. В этой статье разберём, как поднять PXE-сервер на Windows, какое ПО выбрать и как избежать типичных ошибок.
Как работает PXE-загрузка: краткий принцип
Процесс сетевой загрузки состоит из нескольких последовательных этапов, и сбой на любом из них приводит к характерной ошибке. Клиент с включённым PXE в BIOS/UEFI отправляет в сеть широковещательный запрос DHCP Discover, дополненный PXE-расширениями. Сервер отвечает адресом и параметрами загрузки: адресом TFTP-сервера и именем загрузочного файла (например, pxelinux.0 или bootmgfw.efi).
Далее клиент скачивает загрузчик по протоколу TFTP, тот подтягивает конфигурацию и основной образ — и управление передаётся загруженной системе. Важно понимать: DHCP и TFTP могут работать на разных машинах, а могут на одной — для небольшой сети второй вариант проще.
Отдельный нюанс — различие между Legacy BIOS и UEFI. Этим режимам нужны разные загрузочные файлы, и если клиент в UEFI-режиме получает загрузчик для Legacy, загрузка завершится ошибкой. Это одна из самых частых причин «неработающего» PXE.
Выбор программного обеспечения
На Windows существует несколько рабочих вариантов организации PXE-сервера. Выбор зависит от масштаба задачи и того, есть ли в сети домен.
- 🖥️ Serva — лёгкая портативная утилита, объединяющая DHCP, TFTP и HTTP в одном окне; удобна для быстрого развёртывания Windows и Linux из ISO.
- ⚙️ Tftpd64 — классический TFTP- и DHCP-сервер с минимальным интерфейсом; хорош как основа для связки с Syslinux/PXELINUX или iPXE.
- 🏢 WDS (Windows Deployment Services) — роль Windows Server для развёртывания образов
.wim; стандартный выбор в корпоративной среде с Active Directory. - 🚀 iPXE — расширенный загрузчик с поддержкой HTTP и скриптов; обычно используется вместе с одним из перечисленных серверов.
Для домашней лаборатории или небольшого офиса разумнее всего начать с Serva или Tftpd64 — они не требуют серверной ОС и настраиваются за полчаса. WDS оправдан там, где нужна интеграция с доменом и централизованное управление образами.
Подготовка сети и DHCP
Ключевое требование — статический IP-адрес у машины, которая будет PXE-сервером. Если адрес сервера изменится, клиенты перестанут находить загрузчик. Также заранее решите, кто будет выдавать адреса в сети: если DHCP уже работает на роутере, у вас два пути — либо перенастроить его (если он позволяет указать опции 66 и 67), либо использовать режим proxyDHCP, который умеет, например, Serva.
Опции DHCP, которые критичны для PXE:
- 📌 Опция 66 — IP-адрес TFTP-сервера (Boot Server Host Name).
- 📌 Опция 67 — имя загрузочного файла, например
pxelinux.0для Legacy илиipxe-x86_64.efiдля UEFI. - 📌 Опция 60 — идентификатор
PXEClient; нужна, когда DHCP и PXE-сервис совмещены на одном сервере (типично для WDS).
⚠️ Внимание: два активных DHCP-сервера в одном сегменте сети приведут к конфликтам — клиенты начнут получать адреса от случайного из них. Перед запуском PXE-сервера со своим DHCP убедитесь, что другой сервер в сети отключён или настроен режим proxyDHCP.
Пошаговая настройка на примере Serva и Tftpd64
Рассмотрим общий порядок действий, который применим к обеим программам с небольшими отличиями в интерфейсе.
☑️ Чек-лист запуска PXE-сервера
Первым делом создайте корневой каталог TFTP, например C:\PXE, и поместите туда загрузчик. Для связки с Syslinux это файлы pxelinux.0, ldlinux.c32, menu.c32 и папка pxelinux.cfg с файлом конфигурации default. В Serva структура каталогов создаётся автоматически при первом запуске — останется скопировать дистрибутивы в соответствующие папки.
Затем настройте сетевые параметры. В Tftpd64 на вкладке DHCP указываются пул адресов, маска, а также поля Boot File и адрес сервера. В Serva DHCP-вкладка предлагает режимы proxyDHCP (если в сети уже есть DHCP) и полноценный сервер. После запуска служб проверьте, что брандмауэр Windows не блокирует трафик.
netsh advfirewall firewall add rule name="TFTP" dir=in protocol=UDP localport=69 action=allow
netsh advfirewall firewall add rule name="DHCP-PXE" dir=in protocol=UDP localport=67,68 action=allow
На клиентской машине включите в BIOS/UEFI сетевую загрузку (Network Boot, PXE Boot) и поставьте её первой в приоритете. Название пункта зависит от производителя материнской платы — сверьтесь с документацией конкретной модели.
Для первой проверки используйте лёгкий загрузчик с меню (например, PXELINUX с memtest или небольшим Live-образом). Так вы отладите цепочку DHCP→TFTP до того, как начнёте передавать тяжёлые установочные образы.
Сравнение решений для PXE на Windows
| Решение | Сложность настройки | Поддержка UEFI | Типовой сценарий |
|---|---|---|---|
| Serva | Низкая | Да (в актуальных версиях) | Быстрая установка ОС из ISO |
| Tftpd64 + Syslinux | Средняя | Требует отдельных EFI-загрузчиков | Меню загрузки, утилиты, Live-системы |
| WDS | Высокая | Да | Корпоративное развёртывание Windows |
| iPXE + HTTP | Средняя | Да | Гибкие скрипты загрузки, загрузка по HTTP |
Заметное преимущество связки с iPXE — передача образов по HTTP вместо TFTP. TFTP прост, но медленен и не имеет нормального контроля ошибок; на больших образах (несколько гигабайт) загрузка по HTTP проходит заметно быстрее. Для этого на той же машине поднимается любой веб-сервер, а скрипт iPXE указывает на URL образа.
Типичные ошибки и диагностика
Большинство проблем PXE диагностируется по коду ошибки, который клиент выводит на экран. Разберём самые частые.
- 🔧 PXE-E51: No DHCP or proxyDHCP offers received — клиент не получил ответ. Проверьте, что сервер виден в том же сегменте сети, что DHCP-служба запущена и что между клиентом и сервером нет фильтрации широковещательного трафика (некоторые управляемые коммутаторы требуют настройки DHCP relay / IP helper).
- 🔧 PXE-E53: No boot filename received — DHCP ответил, но опция 67 не задана или пуста. Проверьте конфигурацию DHCP.
- 🔧 PXE-E32 / TFTP timeout — загрузчик не скачивается. Обычно это закрытый порт 69 UDP в брандмауэре, неверный путь к файлу или антивирус, блокирующий TFTP-службу.
- 🔧 NBP file downloaded successfully, но дальше чёрный экран — как правило, несоответствие загрузчика режиму (Legacy вместо UEFI или наоборот).
⚠️ Внимание: если клиент и сервер находятся в разных VLAN, широковещательные DHCP-запросы не пройдут без настройки DHCP Relay (IP Helper) на маршрутизаторе или L3-коммутаторе. Без этого PXE за пределами одного сегмента работать не будет.
Полезный инструмент диагностики — встроенный лог Tftpd64 (вкладка Log viewer) или анализатор трафика Wireshark. По журналу видно, дошёл ли запрос до сервера, какой файл запросил клиент и на каком этапе оборвалась передача.
Почему UEFI-клиент не грузится, хотя Legacy работает
UEFI и BIOS используют разные загрузочные файлы и разные значения архитектуры клиента в DHCP-запросе. Если сервер всем выдаёт один и тот же pxelinux.0, UEFI-клиент его не исполнит. Решение — настроить раздачу разных файлов по типу архитектуры (в WDS это делается штатно, в Serva — автоматически, в связке с Tftpd64 — через условия в DHCP или переход на iPXE). Либо временно переключите клиента в Legacy/CSM-режим, если это допустимо.
Безопасность и эксплуатационные нюансы
PXE-инфраструктура по своей природе доверчива: любой клиент в сети может запросить загрузку, а протоколы DHCP и TFTP не предполагают аутентификации. Поэтому PXE-сервер стоит держать включённым только на период развёртывания либо ограничивать его доступность сетевыми средствами.
Практические меры: размещайте PXE в отдельном VLAN для развёртывания, не храните в общих каталогах TFTP конфиденциальные данные и файлы ответов с паролями в открытом виде, а после завершения работ останавливайте службы. Если используется WDS в домене, права на установку образов регулируются штатными механизмами авторизации.
Рабочая PXE-схема на Windows строится из трёх элементов: правильно настроенный DHCP (опции 66/67 или proxyDHCP), доступный TFTP с корректным загрузчиком под режим клиента (BIOS/UEFI) и открытые порты в брандмауэре. Проверяйте цепочку поэтапно — сначала получение адреса, затем скачивание загрузчика, затем основного образа.
Часто задаваемые вопросы
Можно ли поднять PXE-сервер на обычной Windows 10/11 без серверной ОС?
Да. Serva и Tftpd64 работают на десктопных версиях Windows и не требуют Windows Server. Роль WDS доступна только на серверных редакциях, но для большинства задач она не обязательна.
Что делать, если в сети уже есть роутер с DHCP и его нельзя отключить?
Используйте режим proxyDHCP — его поддерживает, например, Serva. В этом режиме роутер продолжает выдавать IP-адреса, а PXE-сервер лишь дополняет ответ параметрами загрузки. Альтернатива — настроить на роутере опции 66/67, если прошивка это позволяет.
Почему загрузка большого образа по PXE идёт очень медленно?
Вероятная причина — протокол TFTP, который передаёт данные небольшими блоками и не оптимизирован для больших файлов. Решение — перейти на загрузчик iPXE и раздавать основной образ по HTTP с любого веб-сервера.
Как загрузить по сети установку Windows, а не Linux?
Для Windows есть два основных пути: WDS с образами .wim (штатный механизм Microsoft) либо загрузка среды WinPE через PXE с последующим запуском установки из сетевого ресурса. Serva также умеет развёртывать Windows из дистрибутива — потребуется скопировать содержимое установочного ISO в соответствующий каталог и добавить драйверы сетевого адаптера, если WinPE не определит сетевую карту.
Клиент получает IP-адрес, но TFTP-загрузка обрывается на середине. В чём причина?
Частые причины — блокировка порта 69 UDP брандмауэром или антивирусом, а также особенности некоторых коммутаторов. Проверьте журнал TFTP-сервера: если запросы от клиента вообще не видны, проблема в сетевой фильтрации; если передача начинается и обрывается — попробуйте другой TFTP-сервер или снизьте нагрузку на сеть.