Ошибка PXE-E53: No boot filename received или циклическое сообщение PXE-M0F: Exiting PXE ROM при включении компьютера почти всегда означает одно из двух: либо машина пытается загрузиться по сети из-за неверного порядка загрузки в BIOS, либо PXE-сервер в сети не отвечает корректно. Прежде чем менять настройки, проверьте, стоит ли Network Boot первым в списке загрузочных устройств — если вы не настраивали сетевую загрузку намеренно, это и есть причина.
Сетевая загрузка PXE (Preboot Execution Environment) — технология, позволяющая компьютеру загружать операционную систему или установщик не с локального диска, а по сети с удалённого сервера. Она активно применяется в корпоративных средах для массового развёртывания Windows и Linux, запуска диагностических утилит и работы бездисковых рабочих станций. В этой статье разберём принцип работы PXE, настройку серверной и клиентской части, а также типичные ошибки.
Как работает PXE: этапы загрузки
Процесс сетевой загрузки состоит из нескольких последовательных этапов, и сбой на любом из них приводит к характерной ошибке. Сначала сетевая карта с поддержкой PXE отправляет в сеть DHCP-запрос с расширенными опциями, сообщая, что клиенту нужна не только сетевая конфигурация, но и адрес загрузочного сервера. DHCP-сервер (или отдельный proxyDHCP) отвечает IP-адресом клиента, адресом TFTP-сервера и именем загрузочного файла.
Далее клиент обращается по протоколу TFTP (Trivial File Transfer Protocol) к указанному серверу и скачивает загрузчик — например, pxelinux.0 для BIOS-режима или bootx64.efi для UEFI. Загрузчик получает управление, подгружает конфигурацию и ядро операционной системы, после чего стартует установка или запуск среды вроде Windows PE.
- 🔌 DHCP — выдача IP-адреса и параметров загрузки (опции 66 и 67).
- 📡 TFTP — передача начального загрузчика клиенту.
- 📦 HTTP/NFS/SMB — доставка основного образа ОС на поздних этапах.
- 🧭 NBP (Network Bootstrap Program) — сам загрузочный файл, запускаемый клиентом.
Что нужно для организации PXE-загрузки
Для работающей инфраструктуры сетевой загрузки потребуется несколько компонентов. Во-первых, DHCP-сервер, способный передавать дополнительные опции: адрес сервера загрузки (опция 66, next-server) и имя загрузочного файла (опция 67, bootfile-name). Подойдёт как сервер на базе ISC DHCP или dnsmasq в Linux, так и роль DHCP в Windows Server.
Во-вторых, нужен TFTP-сервер с размещёнными загрузочными файлами. Популярные варианты — tftpd-hpa на Linux или встроенный TFTP в составе WDS (Windows Deployment Services). В-третьих, клиентские машины должны иметь сетевую карту с поддержкой PXE — она есть практически во всех современных материнских платах и ноутбуках.
Отдельно учитывайте режим прошивки клиента. Загрузочный файл для Legacy BIOS и для UEFI — разные, и неверный выбор NBP является одной из самых частых причин неудачной загрузки. Если в сети есть оба типа клиентов, DHCP-сервер настраивают на выдачу разных имён файлов в зависимости от архитектуры клиента.
Настройка клиента: BIOS и UEFI
На стороне клиента настройка сводится к включению сетевой загрузки и выбору её приоритета. Войдите в BIOS/UEFI (обычно клавишей Del или F2 при включении, но комбинация зависит от производителя — сверьтесь с документацией вашей платы или ноутбука) и найдите раздел загрузки, обычно называемый Boot.
Необходимо активировать опцию вроде Network Boot, PXE Boot или LAN Boot ROM — название зависит от версии прошивки. Затем переместите сетевой адаптер на нужную позицию в порядке загрузки. В UEFI-режиме может потребоваться отключить Secure Boot, если загрузчик не подписан доверенным сертификатом — это частая причина мгновенного возврата в меню загрузки без видимой ошибки.
☑️ Проверка клиента перед PXE-загрузкой
⚠️ Внимание: если PXE-загрузка не нужна, оставлять сетевой адаптер первым в списке загрузки не стоит — при недоступности локального диска или случайном изменении порядка компьютер будет каждый раз тратить время на попытку сетевой загрузки и завершать её ошибкой PXE-M0F.
Настройка сервера: общий порядок
Конкретные шаги зависят от выбранной платформы, поэтому ниже — универсальный порядок, применимый к большинству решений. Для Windows-среды стандартным вариантом является роль WDS, для Linux — связка dnsmasq или ISC DHCP + tftpd-hpa + загрузчик Syslinux/PXELINUX или iPXE.
Общая последовательность такова: установите и настройте DHCP с опциями 66 и 67, разверните TFTP-сервер и разместите в его корневом каталоге загрузочные файлы, затем подготовьте конфигурацию меню загрузки и сами образы ОС. После этого проверьте, что порты не заблокированы брандмауэром: DHCP использует UDP 67/68, TFTP — UDP 69.
Пример фрагмента конфигурации dnsmasq для выдачи параметров PXE:
dhcp-boot=pxelinux.0
enable-tftp
tftp-root=/srv/tftp
Если DHCP уже обслуживается другим сервером, который нельзя менять, настройте dnsmasq в режиме proxyDHCP — он будет отвечать только PXE-клиентам, дополняя ответы основного сервера, не конфликтуя с ним.
Сравнение популярных решений для PXE
Выбор инструмента зависит от масштаба сети и целевых систем. Ниже — сравнение распространённых вариантов по ключевым признакам.
| Решение | Платформа | Основное назначение | Сложность настройки |
|---|---|---|---|
| WDS | Windows Server | Развёртывание Windows | Средняя |
| Microsoft SCCM/MECM | Windows Server | Крупные корпоративные развёртывания | Высокая |
| dnsmasq + PXELINUX | Linux | Универсальная загрузка, небольшие сети | Низкая |
| iPXE | Кроссплатформенный | Расширенные сценарии, загрузка по HTTP | Средняя |
| FOG Project | Linux | Клонирование и развёртывание образов | Средняя |
Для небольшой сети или тестового стенда проще всего начать с dnsmasq: один сервис закрывает и DHCP, и TFTP. Если задача — регулярная установка Windows на десятки машин, логичнее рассмотреть WDS, который нативно интегрируется с инфраструктурой Microsoft.
Типичные ошибки PXE и их диагностика
Коды ошибок PXE стандартизированы, и по ним можно сузить поиск. Возможная причина каждой ошибки определяется этапом, на котором оборвалась загрузка, поэтому важно точно записать код и момент его появления.
- ❌ PXE-E51 — не получены ответы от DHCP или proxyDHCP. Проверьте доступность DHCP-сервера и настройку ретрансляции (DHCP Relay / IP Helper), если клиент в другой подсети.
- ❌ PXE-E53 — DHCP-ответ получен, но без имени загрузочного файла. Проверьте опции 66/67 или конфигурацию proxyDHCP.
- ❌ PXE-E32 — тайм-аут TFTP. Файл не скачивается: проверьте, запущен ли TFTP-сервис и открыт ли UDP-порт 69.
- ❌ PXE-M0F — клиент выходит из PXE, не найдя загрузочный сервер. Часто следствие предыдущих ошибок или отсутствия PXE-инфраструктуры в сети.
⚠️ Внимание: если клиент и сервер находятся в разных подсетях, широковещательные DHCP-запросы не пройдут через маршрутизатор без настройки DHCP Relay (агента ретрансляции) на сетевом оборудовании. Это одна из самых частых причин «невидимого» PXE-сервера в сегментированных сетях.
Полезный метод диагностики — захват трафика на стороне сервера. Если в дампе виден DHCP Discover от клиента, но нет ответа — проблема в DHCP. Если ответ есть, а TFTP-запроса не следует — клиент не получил или не понял параметры загрузки. Такой поэтапный анализ быстрее, чем перебор настроек вслепую.
Почему UEFI-клиент не грузится, хотя BIOS-клиенты работают
DHCP выдаёт всем клиентам один и тот же файл pxelinux.0, который предназначен только для Legacy BIOS. UEFI-клиенту нужен EFI-загрузчик (например, bootx64.efi или snponly.efi для iPXE). Решение — настроить на DHCP раздачу разных имён файлов в зависимости от опции 93 (Client System Architecture), которую клиент сообщает в запросе.
Безопасность и производительность PXE-сети
PXE по своей природе не шифрует трафик: TFTP передаёт файлы в открытом виде, а любой клиент в сети может запросить загрузку. В изолированной инсталляционной VLAN это приемлемо, но в общей сети стоит ограничить доступ к TFTP-серверу и использовать выделенный сегмент для развёртывания. Если применяется iPXE, возможна загрузка по HTTPS, что заметно повышает защищённость.
По производительности учтите, что TFTP — медленный протокол с подтверждением каждого блока. Для передачи больших образов лучше использовать связку, где по TFTP скачивается только маленький загрузчик, а основной образ тянется по HTTP или SMB. Так работает, в частности, iPXE, и выигрыш во времени развёртывания может быть существенным.
Часто задаваемые вопросы
Можно ли использовать PXE без отдельного сервера?
Нет, серверная часть обязательна — клиенту нужно откуда-то получить загрузчик. Однако в роли сервера может выступать обычная рабочая станция с установленным dnsmasq или аналогичным ПО, выделенное оборудование не требуется.
Почему компьютер при включении показывает PXE-E61: Media test failure?
Эта ошибка означает, что клиент не обнаружил сетевое соединение — возможная причина в отключённом кабеле, неисправном порте коммутатора или отключённом сетевом адаптере в BIOS. Если вы не планировали сетевую загрузку, просто уберите сетевой адаптер из начала списка загрузочных устройств.
Работает ли PXE через Wi-Fi?
Классический PXE рассчитан на проводные сетевые адаптеры: поддержка загрузки по Wi-Fi в прошивках встречается редко и зависит от конкретной модели устройства. На практике для беспроводных сценариев используют загрузку с USB-носителя с последующим доступом к сети.
Чем iPXE отличается от обычного PXE?
iPXE — расширенный загрузчик с открытым кодом, который поддерживает загрузку по HTTP/HTTPS, скрипты, аутентификацию и другие возможности, недоступные базовому PXE-ROM сетевой карты. Его можно запустить как цепочку после штатного PXE.
Опасно ли включать PXE в домашней сети?
Само по себе включение сетевой загрузки на клиенте безопасно — без PXE-сервера в сети машина просто перейдёт к следующему загрузочному устройству. Риск появляется, если в сети работает посторонний DHCP/PXE-сервер: тогда возможна загрузка нежелательного образа, поэтому в недоверенных сетях сетевую загрузку лучше держать выключенной.