PXE: загрузка WinPE через PXElinux v5 и wimboot
Быстрые ссылки
- Обзор
- Обновление PXElinux до v5.01
- WIMboot
- Файлы с диска Windows
- Добавление пункта меню
- Консоль восстановления Windows

Кредит фото: Alfred Hermida via Compfight cc
Обзор
Windows Preinstallation Environment (WinPE) — это облегчённая версия Windows, известная как среда, которая загружается с установочного диска. Многие администраторы и инженеры используют WinPE для обслуживания — восстановления, обновления BIOS, диагностики и запуска простых инсталляторов. В этом руководстве описан способ загрузить WinPE по сети (PXE) с помощью PXElinux v5 и wimboot, без необходимости внедрять WAIK/WDS.
Краткая последовательность действий:
- Обновить PXElinux до v5.01, если у вас более старая версия.
- Добавить модуль wimboot в каталог библиотек TFTP.
- Скопировать образ WIM и сопутствующие файлы с установочного диска Windows в каталог TFTP.
- Добавить пункт меню PXE, который вызывает wimboot с перечислением файлов.
- Загрузиться в WinPE и запустить нужную утилиту (например, обновление BIOS).
Важно: этот метод служит для запуска среды восстановления и утилит. Начать установку Windows вы сможете, но завершить штатную установку (через обычный GUI-инсталлятор) обычно не получится — это ожидаемое ограничение.
Актуальность и совместимость
- Мы используем Syslinux/PXElinux v5.01, потому что в ветке v5 изменена архитектура COM32-модулей (ELF). Это требует наличия библиотек ldlinux.c32 и других модулей в TFTP.
- Некоторые гипервизоры (в частности, старые настройки Citrix Xen HVM) могут иметь проблемы с загрузкой beyond PXE-меню; VMware, Hyper-V и VirtualBox обычно работают корректно.
- Для корректной работы Dell BIOS-утилит иногда требуется 32-битная версия WinPE.
Обновление PXElinux до v5.01
Если в вашей системе репозиторий поставляет Syslinux 4.x, нужно вручную скачать и распаковать версию 5.01 и поместить нужные модули в TFTP-переменные.
Получение и распаковка исходников:
wget https://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-5.01.tar.bz2
tar xvhf syslinux-5.01.tar.bz2Создайте директорию для библиотек:
mkdir -p /tftpboot/howtogeek/libsСкопируйте необходимые библиотеки в каталог, доступный клиенту во время загрузки через TFTP:
cp -av syslinux-5.01/com32/lib/libcom32.c32 /tftpboot/howtogeek/libs/
cp -av syslinux-5.01/com32/libutil/libutil.c32 /tftpboot/howtogeek/libs/
cp -av syslinux-5.01/com32/modules/linux.c32 /tftpboot/howtogeek/libs/Добавьте путь к новым библиотекам в глобальный конфигурационный файл меню PXE (например, pxelinux.cfg/default). Это делает директорию доступной для поиска модулей:
echo "PATH howtogeek/libs" >> /tftpboot/pxelinux.cfg/defaultСкопируйте ldlinux.c32 в корень TFTP:
cp -av syslinux-5.01/com32/elflink/ldlinux/ldlinux.c32 /tftpboot/Обновите графический движок меню (vesamenu.c32) до версии из 5.01:
cp -av syslinux-5.01/com32/menu/vesamenu.c32 /tftpboot/После этого PXE-сервер может загружать модули v5 и пользоваться новым API. Если у вас ранее всё работало, то, как правило, работа не нарушится.
WIMboot — зачем и как
wimboot — это загрузчик из проекта iPXE, специализированный для образов формата .wim. Ключевая идея: wimboot позволяет смонтировать WIM как RAM-диск и загрузить WinPE без больших накладных расходов на память.
Описание от проекта:
wimbootявляется загрузчиком для Windows Imaging Format (.wim) файлов. Он позволяет загружать WinPE в RAM-диск без лишнего расхода памяти.
Скачивание и установка:
wget http://git.ipxe.org/releases/wimboot/wimboot-latest.zipУстановите unzip на сервере, если его нет:
aptitude install unzipРаспакуйте архив:
unzip wimboot-latest.zipСкопируйте бинарник wimboot в каталог библиотек TFTP, который вы создали на шаге выше:
cp -va wimboot*/wimboot /tftpboot/howtogeek/libs/Теперь wimboot доступен как com32-модуль и его можно вызывать из записи меню PXE.
Копирование файлов с установочного диска Windows
Создайте целевой каталог на TFTP-сервере:
mkdir -p /tftpboot/howtogeek/WinPE/Поместите оригинальный установочный диск Windows (в примере использовано Windows 7) в CD-ROM и скопируйте в каталог следующие файлы:
\bootmgr \\boot\\bcd \\boot\\boot.sdi \\sources\\boot.wimПримечание: путь с обратными слешами в Windows. Для TFTP достаточно скопировать сами файлы в каталог /tftpboot/howtogeek/WinPE, сохранять исходную структуру папок с диска не обязательно.
Важно: для совместимости с некоторыми утилитами Dell предпочтительна 32-битная версия WinPE.
Добавление записи в меню PXE
Отредактируйте файл меню Utils (или другой файл меню, который вы используете в своей конфигурации):
sudo vim /tftpboot/howtogeek/menus/utils.cfgДобавьте следующую запись:
label WinPE
com32 linux.c32 howtogeek/libs/wimboot
APPEND wimboot initrdfile=/howtogeek/WinPE/bootmgr,/howtogeek/WinPE/bcd,/howtogeek/WinPE/boot.sdi,/howtogeek/WinPE/boot.wimПосле сохранения перезагрузите клиент и выберите в меню пункт WinPE. При загрузке будет происходить передача файла boot.wim по TFTP — это сравнительно большой файл (~100–200 МБ), поэтому появившееся «зависание» на этапе передачи нормально.

На изображении приведён пример виртуальной машины, загруженной по PXE в WinPE.
Консоль восстановления Windows и применение утилит
Как только WinPE загрузится, вы увидите начальное диалоговое окно установщика Windows. Чтобы попасть в консоль восстановления:
- Нажмите “Next” (Далее).
- Выберите “Repair your computer” (Восстановление системы).
- Выберите “Use recovery tools” (Использовать инструменты восстановления) и нажмите “Next”.
- Выберите “Command Prompt” (Командная строка).



В командной строке нужно определить букву, присвоенную вашему USB-накопителю (Disk-on-Key). Для этого используйте:
wmic logicaldisk get nameЗатем перебирайте подозрительные буквы (кроме A: и X:, возможно C:) и вводите:
Driveletter:
dirКогда обнаружите USB-накопитель с нужной утилитой (например, обновлением BIOS от Dell), выполните её и следуйте инструкциям.

Поздравляем — вы загрузили WinPE по PXE и успешно запустили утилиту.
Критерии приёмки
- Клиент может выбрать пункт WinPE в PXE-меню.
- TFTP-передача файлов boot.wim/boot.sdi/bootmgr/bcd успешно завершается (время передачи зависит от сети).
- WinPE загружается до состояния диалога восстановления, и доступна командная строка.
- Из командной строки можно обнаружить и запустить исполняемые файлы с USB-накопителя.
Проверка и тесты при внедрении (Acceptance)
- Тест 1 — чистая VM: PXE-загрузка в виртуальной машине (VMware/VirtualBox/Hyper-V) и запуск командной строки.
- Тест 2 — физическая машина: загрузка с реального клиента, проверка передачи большого файла (boot.wim).
- Тест 3 — утилита: запуск простого скрипта с USB и валидация результата (например, вывод версии BIOS).
Отладка: частые проблемы и решения
- Долго передаётся boot.wim: проверьте пропускную способность TFTP (UDP) и нагрузку на сеть. Решение — временно использовать HTTP/HTTPS через iPXE или настроить более быстрый TFTP-сервер.
- PXE не доходит до меню v5: убедитесь, что ldlinux.c32 и vesamenu.c32 обновлены в корне /tftpboot и что PATH в pxelinux.cfg/default ссылается на howtogeek/libs.
- wimboot не запускается: проверьте, что бинарник wimboot имеет права на исполнение и находится в howtogeek/libs.
- Клиент «зависает» на этапе загрузки, ничего не происходит: проверьте логи DHCP/TFTP, а также совместимость BIOS/UEFI клиента с PXE-изображением (legacy PXE vs UEFI). WIMboot чаще используется в режиме legacy BIOS; для UEFI нужны другие параметры загрузки.
Ментальные модели и альтернативные подходы
- Модель «копия с CD» — минимальная и быстрая: напрямую копируйте файлы с ISO/CD; идеальна для разовых задач.
- Mодель WDS/WAIK — официальная, но сложнее: подходит для полноценной сетевой установки Windows с поддержкой установки, изображений и централизованного управления.
- Mодель iPXE+HTTP — более производительная, особенно в больших сетях: замените TFTP на HTTP для передачи больших WIM.
Альтернативы:
- Использовать WDS/MDT на Windows Server для полноценной деплой-платформы.
- Использовать iPXE с цепочной загрузкой по HTTP для ускоренной передачи.
- Применять FOG/UDAgent для массового клонирования дисков, если цель — клонирование, а не запуск утилит.
Роли и чек-листы (кто что делает)
- Сетевой администратор:
- Открывает/настраивает DHCP и TFTP/HTTP на сервере.
- Проверяет доступность файлов по сети.
- Системный администратор:
- Скачивает syslinux 5.01, копирует необходимые c32-модули.
- Устанавливает wimboot и размещает файлы WinPE.
- Инженер по сопровождению (field engineer):
- Тестирует загрузку на реальных устройствах и запускает утилиты.
Процесс восстановления/плейбук (короткий SOP)
- Поместить файлы WinPE в /tftpboot/howtogeek/WinPE.
- Убедиться, что в /tftpboot находятся ldlinux.c32 и vesamenu.c32 версии 5.x.
- В каталоге /tftpboot/howtogeek/libs разместить libcom32.c32, libutil.c32, linux.c32 и wimboot.
- Добавить запись меню и перезапустить клиент.
- Загрузиться в WinPE и выполнить требуемую задачу.
Безопасность и приватность
- Не размещайте на общем TFTP-сервере конфиденциальные данные. TFTP не шифрует трафик.
- Для более безопасной передачи образов используйте iPXE+HTTP(S) или защищённые сетевые сегменты.
- Ограничьте доступ к DHCP/TFTP серверам и логам только уполномоченным администраторам.
Краткая методология внедрения (минимальная дорожная карта)
- Шаг 0: Резервная копия конфигураций DHCP/TFTP.
- Шаг 1: Локальная проверка в VM (триала) — 1–2 дня.
- Шаг 2: Тест на паре физических машин — 1 день.
- Шаг 3: Развёртывание в производственной сети, мониторинг — 1–2 дня.
Факты и подсказки
- boot.wim обычно весит 100–250 МБ (в зависимости от версии и включённых пакетов).
- TFTP использует UDP и плохо масштабируется при передаче больших файлов.
- wimboot позволяет уменьшить накладные расходы памяти при загрузке образа.
Глоссарий (1 строка)
- PXE — сетевой протокол загрузки (Preboot Execution Environment).
- WinPE — облегчённая предустановочная среда Windows.
- WIM — Windows Imaging Format (формат образа, .wim).
- wimboot — загрузчик для .wim, позволяющий запускать WinPE по сети.
Частые вопросы (FAQ)
Нужно ли лицензировать WinPE?
WinPE распространяется Microsoft с ограничениями на использование; обычно для обслуживания и восстановления достаточно использовать среду в рамках лицензии установленной ОС. Для массовых деплой-сцен проверьте требования Microsoft.
Подходит ли этот метод для UEFI?
wimboot и PXElinux чаще используются в legacy BIOS. Для UEFI обычно применяют отдельные загрузчики и профиль загрузки (например, iPXE с EFI-образом).
Можно ли заменить TFTP на HTTP?
Да. Для передачи больших WIM рекомендуется использовать iPXE с HTTP(S), так как HTTP намного эффективнее и надёжнее при передаче больших файлов.
Короткая сводка: обновите PXElinux до v5.01, добавьте wimboot и нужные библиотеки, скопируйте с диска Windows набор файлов bootmgr/bcd/boot.sdi/boot.wim в каталог TFTP и добавьте запись меню. После этого вы сможете загружаться в WinPE по сети и запускать утилиты восстановления и обслуживания.
Похожие материалы
Как защитить папку паролем в Windows 11
Клонирование USB в Windows 10 — как создать и записать образ
AirPlay на Mac: приём и трансляция
Установка и удаление Google Chrome — полное руководство
Экранная блокировка Nintendo Switch: включение и советы