При включении компьютера без локального диска с системой сетевая карта отправляет широковещательный DHCP-запрос с расширением PXE — и если в сети нет сервера, который ответит адресом загрузочного файла, на экране появляется ошибка вида «PXE-E53: No boot filename received» или «Media test failure, check cable». Именно с этого момента начинается диагностика сетевой загрузки: либо клиент не получил параметры, либо сервер развёртывания настроен неправильно, либо сама технология не включена в прошивке материнской платы.
Загрузка операционной системы по сети — это технология, при которой компьютер получает загрузчик и образ системы не с локального диска, а от сервера в локальной сети. Чаще всего для этого используется стек PXE (Preboot eXecution Environment), поверх которого работают службы развёртывания вроде Windows Deployment Services, Microsoft Configuration Manager или связки DHCP + TFTP + Syslinux в Linux-среде. Технология незаменима при массовой установке ОС на десятки машин, работе бездисковых терминалов и восстановлении систем через загрузочные образы.
Материал рассчитан на системных администраторов и продвинутых пользователей. Ниже разберём принцип работы PXE, настройку оборудования и сервера, а также типичные ошибки и способы их устранения.
Как работает сетевая загрузка: цепочка PXE
Процесс сетевой загрузки состоит из нескольких последовательных этапов, и сбой на любом из них останавливает всю цепочку. Сначала прошивка сетевого адаптера запрашивает IP-адрес через DHCP с указанием, что клиент поддерживает PXE. Затем сервер возвращает не только сетевые параметры, но и адрес TFTP-сервера вместе с именем загрузочного файла (например, pxelinux.0 или bootmgfw.efi для UEFI-систем).
После получения параметров клиент скачивает загрузчик по протоколу TFTP, тот подтягивает конфигурацию и ядро с ramdisk, и только потом начинается собственно установка или запуск системы. В Windows-инфраструктуре роль загрузчика обычно выполняет WDS, который передаёт клиенту образ boot.wim, а затем установочный образ install.wim.
Важно понимать разницу между режимами BIOS (Legacy) и UEFI: им нужны разные загрузочные файлы, и смешивать их нельзя. Клиент в режиме UEFI не сможет загрузиться с файла, подготовленного для Legacy, и наоборот — это одна из самых частых причин неудач при развёртывании.
Требования к оборудованию и инфраструктуре
Прежде чем настраивать сервер, убедитесь, что клиентские машины и сеть соответствуют базовым условиям. Сетевая карта должна поддерживать PXE — в современных материнских платах это стандарт, но в настройках прошивки опцию иногда требуется включить вручную. Скорость сети влияет на время загрузки образа: установочный образ Windows может занимать несколько гигабайт, поэтому для массового развёртывания желателен гигабитный канал.
- 🖥️ Сетевая карта с поддержкой PXE и включённой опцией сетевой загрузки в BIOS/UEFI
- 🌐 DHCP-сервер, способный передавать параметры загрузки (опции 66/67 или встроенный механизм WDS)
- 📦 Сервер развёртывания: WDS, SCCM или Linux-связка TFTP + Syslinux
- 🔌 Клиент и сервер в одном широковещательном домене либо настроенный DHCP Relay (IP Helper) на маршрутизаторе
- 💾 Загрузочный и установочный образы ОС, подготовленные для нужного режима (Legacy или UEFI)
Отдельное внимание — межсетевым экранам. TFTP использует UDP-порт 69 для начального соединения, а передача данных идёт через динамические порты; если файрвол блокирует эти соединения, клиент зависнет на этапе скачивания загрузчика. Проверьте правила фильтрации и на сервере, и на промежуточном оборудовании.
⚠️ Внимание: не разворачивайте второй DHCP-сервер в сети, где уже работает корпоративный DHCP, без согласования с администратором инфраструктуры. Два конфликтующих сервера приведут к хаотичной выдаче адресов и сбоям не только PXE, но и обычной сетевой работы всех клиентов.
Настройка клиента: включение загрузки по сети
На клиентской машине вам нужно войти в настройки прошивки (обычно клавиша Del, F2 или F12 при включении — точная клавиша зависит от производителя) и активировать сетевую загрузку. Названия пунктов различаются: ищите параметры вроде Network Boot, PXE Boot, Boot from LAN или Network Stack. После включения переместите сетевой адаптер на первое место в порядке загрузки либо вызывайте одноразовое загрузочное меню.
Если машина работает в режиме UEFI, проверьте состояние Secure Boot. Стандартные образы WDS обычно совместимы с Secure Boot, но самодельные загрузчики на базе Syslinux или неподписанные сборки могут блокироваться. В таком случае либо используйте подписанный загрузчик, либо временно отключите Secure Boot — конкретная процедура зависит от модели платы, сверяйтесь с её документацией.
☑️ Проверка клиента перед сетевой загрузкой
Полезная проверка: если при старте клиент показывает строку с MAC-адресом и попыткой получить конфигурацию по DHCP — сетевая карта и прошивка работают, проблему ищите на стороне сервера. Если же такой строки нет вообще, PXE просто не включён или не поддерживается адаптером.
Настройка сервера развёртывания
В Windows-инфраструктуре стандартный путь — установка роли Windows Deployment Services на Windows Server. После установки роли WDS нужно инициализировать: указать папку хранения образов (например, RemoteInstall) и выбрать, как сервер будет отвечать клиентам — всем, только известным или никому (режим ручного одобрения). Затем в консоль добавляются загрузочный образ boot.wim и установочный образ из дистрибутива Windows.
Когда DHCP и WDS стоят на одном сервере, необходимо включить в настройках WDS режим совместной работы: служба начинает слушать дополнительный порт и добавляет опцию 60 в DHCP-ответы. Если DHCP находится на другом сервере, опцию 60 включать не нужно — вместо этого на DHCP настраивают опции 66 (адрес сервера загрузки) и 67 (имя загрузочного файла), либо полагаются на стандартный ответ WDS.
В Linux-среде классическая схема выглядит так: ISC DHCP или dnsmasq выдаёт адреса и параметры загрузки, tftpd-hpa отдаёт файлы, а Syslinux или iPXE выполняет роль загрузчика с меню. Пример фрагмента конфигурации dnsmasq для PXE:
dhcp-boot=pxelinux.0
enable-tftp
tftp-root=/var/lib/tftpboot
Параметры и пути приведены как типовой пример — в вашей системе каталоги и имена файлов могут отличаться, сверяйтесь с документацией используемого дистрибутива. Более гибкая альтернатива — iPXE, который умеет загружать образы по HTTP и даже iSCSI, что заметно быстрее и удобнее классического TFTP при больших объёмах.
Типичные ошибки PXE и их диагностика
Большинство сбоев сетевой загрузки сопровождается кодом ошибки, который указывает на конкретный этап цепочки. Ниже — распространённые ситуации и направления проверки. Точные тексты ошибок могут отличаться в зависимости от версии прошивки PXE и серверного ПО.
| Симптом / ошибка | Вероятная причина | Что проверить |
|---|---|---|
| PXE-E53: No boot filename received | DHCP не передал имя загрузочного файла | Опции 66/67 на DHCP или режим ответа WDS |
| PXE-E51: No DHCP or proxyDHCP offers | Клиент не получил ответ от DHCP | Доступность DHCP, VLAN, IP Helper на маршрутизаторе |
| Зависание на этапе TFTP | Блокировка UDP-трафика или неверный путь к файлу | Файрвол на сервере, наличие файла в корне TFTP |
| Клиент сразу уходит на загрузку с диска | PXE не ответил вовремя или не стоит в приоритете | Порядок загрузки, время ответа сервера |
| Ошибка после выбора образа | Несовпадение архитектуры (UEFI/Legacy) | Режим клиента и тип загрузочного файла |
Универсальный инструмент диагностики — анализ сетевого трафика. Запустите Wireshark на сервере или на порту с зеркалированием трафика и посмотрите, доходит ли DHCP-запрос от клиента, что отвечает сервер и начинается ли передача по TFTP. Это позволяет точно локализовать сбойное звено, не перебирая настройки вслепую.
⚠️ Внимание: при изменении настроек DHCP-сервера в действующей сети сначала фиксируйте текущую конфигурацию. Ошибка в опциях 66/67 или случайное включение опции 60 на «чужом» DHCP может нарушить сетевую загрузку для всех клиентов сегмента, а не только для тестовой машины.
Почему UEFI-клиент не видит Legacy-загрузчик
UEFI и BIOS используют разные исполняемые файлы загрузки: для UEFI это EFI-приложения (например, bootmgfw.efi или snponly.efi), для Legacy — код начального загрузчика вроде pxelinux.0. DHCP-сервер может различать архитектуру клиента по идентификатору в запросе и выдавать соответствующий файл — в WDS это происходит автоматически, а в ручных конфигурациях DHCP настраиваются политики по классам архитектур (PXEClient:Arch).
Безопасность и ограничения сетевой загрузки
Протоколы, лежащие в основе PXE, разрабатывались без упора на защиту: TFTP не имеет ни аутентификации, ни шифрования, а DHCP-ответы может подделать любой узел в том же широковещательном домене. Это означает, что злоумышленник внутри сети теоретически способен поднять собственный PXE-сервер и подсунуть клиентам вредоносный загрузочный образ. Поэтому сегменты с сетевой загрузкой стоит изолировать, а на коммутаторах применять функции защиты вроде DHCP Snooping, если оборудование их поддерживает.
Для повышения контроля в WDS можно включить режим одобрения клиентов администратором: сервер не отдаст образ машине, пока её запрос не подтвердят вручную. Также разумно ограничить доступ к папке с образами и вести журналирование обращений к серверу развёртывания.
Ещё одно ограничение — производительность при массовом развёртывании. Одновременная загрузка образов десятками клиентов по TFTP создаёт высокую нагрузку; WDS решает это через многоадресную (multicast) передачу, а в Linux-средах — переходом на iPXE с HTTP. Планируйте инфраструктуру с учётом числа одновременно обслуживаемых машин.
Практические сценарии применения
Где сетевая загрузка даёт максимальный эффект? Прежде всего — массовая установка ОС: вместо обхода каждого компьютера с флешкой администратор включает машины, выбирает образ, и система разворачивается автоматически, в том числе с файлами ответов для unattended-установки. Второй сценарий — бездисковые рабочие станции и тонкие клиенты, которые полностью работают с образа, загруженного по сети.
- 🏢 Развёртывание Windows на парк новых компьютеров через WDS с файлами ответов
- 🛠️ Загрузка диагностических и аварийных сред (Live-образы, антивирусные rescue-системы)
- 💻 Бездисковые терминалы в классах и колл-центрах
- 🔄 Автоматическая переустановка системы при возврате техники от пользователей
Для разовых задач на домашнем ПК сетевая загрузка обычно избыточна — проще загрузочная флешка. Но уже при обслуживании десятка машин вложения в настройку PXE-сервера окупаются экономией времени.
Часто задаваемые вопросы
Можно ли загрузить Windows по сети без домена Active Directory?
Да. WDS способен работать в автономном режиме без домена — потребуется лишь настроенный DHCP с опциями 66/67 или совместное размещение служб. Linux-решения на базе dnsmasq и TFTP вообще не зависят от Active Directory.
Почему клиент получает IP-адрес, но не скачивает загрузчик?
Наиболее вероятные причины: DHCP не передаёт опции 66/67, TFTP-сервис не запущен или его трафик блокируется файрволом, либо загрузочный файл отсутствует в корневом каталоге TFTP. Проверьте журналы сервера и снимите сетевой дамп, чтобы увидеть, на каком этапе обрывается обмен.
Работает ли PXE через Wi-Fi?
Классический PXE в прошивках сетевых адаптеров ориентирован на проводное подключение; поддержка загрузки по Wi-Fi встречается редко и зависит от конкретной платформы. Для беспроводных сценариев обычно используют другие механизмы развёртывания, а не PXE.
Что выбрать: WDS или Linux-решение?
Для развёртывания Windows в корпоративной среде проще всего WDS: он интегрирован в Windows Server и поддерживает multicast. Linux-связка TFTP + Syslinux/iPXE гибче и подходит для смешанных сред, Live-образов и нестандартных сценариев, но требует больше ручной настройки.
Клиент в UEFI-режиме не загружается, а в Legacy всё работает. В чём дело?
Скорее всего, сервер выдаёт загрузочный файл для Legacy-архитектуры. Для UEFI нужен EFI-загрузчик, а DHCP или WDS должны различать архитектуру клиента и отдавать соответствующий файл. Проверьте также настройки Secure Boot — неподписанные загрузчики он блокирует.