UEFI BIOS позволяет осуществлять загрузку системы по сети с использованием протокола PXE (Preboot Execution Environment). Это особенно полезно в корпоративных средах, где необходимо загружать операционные системы или восстановительные образы на множество компьютеров без необходимости использовать физические носители.
Для настройки загрузки по сети в UEFI необходимо активировать соответствующую опцию в BIOS и убедиться, что сетевой интерфейс поддерживает PXE. После этого BIOS станет искать загрузочный сервер в локальной сети, что обеспечивает быстрое развертывание и управление системами.
Расширяем функционал WDS: добавление возможности загрузки в UEFI
В этой статье изложены шаги, которые необходимо предпринять для интеграции функции загрузки в режиме UEFI в ваш WDS.
Другими словами, данная инструкция предполагает, что у вас имеется примерно следующая конфигурация:
1. Windows Server 2012R2 (или более новая версия) 2. Полностью сконфигурированный DHCP для взаимодействия с WDS 3. Состоящий WDS 4. IIS 5. Виртуальная машина или компьютер с Ubuntu
Также здесь описаны действия, которые не принесли мне желаемого результата. Я привел их, чтобы облегчить вам поиск информации и сэкономить ваше время.
Предисловие
Сделал как-то на работе WDS с множеством плюшек, т.к. устал постоянно бегать с кучей флешек и перезаписывать их.
Это выглядит следующим образом
И всё было хорошо, добавлялись новые образы для загрузки, образ winPE обрастал новыми фичами и всё работало.
Однако, не все устройства в настоящее время поддерживают режим загрузки BIOS/Legacy, и даже если такая поддержка есть, активация этого режима может оказаться довольно запутанной.
К тому же, установка Windows в режиме Legacy, когда доступен UEFI, выглядит не совсем логично.
В конечном итоге я пришёл к выводу добавить функцию загрузки в UEFI и отправился на поиски информации в Гугле.
Но я так и не нашёл четких сведений о том, как правильно настроить WDS с поддержкой UEFI, поэтому решил написать эту статью.
Перед тем как начать, я опишу проблему, которая отняла больше всего времени.
При интеграции UEFI в WDS может возникнуть довольно неожиданная ситуация:
Если вы загружаете образ в WDS и при попытке загрузки на UEFI-устройстве видите сообщение: The selected boot device failed. Press to Continue. Или Boot Device Not Found, но при этом загрузка в legacy-режиме проходит успешно, то одной из причин может быть отсутствие файла wdsmgfw.efi по следующему пути: %WDSpath%Bootx64wdsmgfw.efi
Взять его можно тут: C:WindowsSystem32RemInstbootx64wdsmgfw.efi Либо, если у вас отсутствует по какой-то причине этот файл, я его выложил на google. За это решение, спасибо ребятам с реддита.
На решение этой задачи у меня ушло больше всего времени, потому что я предполагал, что проблема заключается в настройках WDS или DHCP.
Настраивал политики, путём добавления Vendor Classes(Классы поставщиков) для различных архитектур, и настройкой опций DHCP 060, 066, 067. Инструкция по настройке политик DHCP.
Архитектурные версии в ASCII для конфигурации DHCP
PXEClient:Arch:00000 — BIOS/Устаревший PXEClient:Arch:00006 — UEFI x86 PXEClient:Arch:00007 — UEFI x64
Так же, пробовал различные варианты загрузочных файлов .efi
Также пытался выявить проблему в журнале событий. Нажал win + r -> eventvwr -> Журналы приложений и служб -> Microsoft -> Windows -> Диагностика служб развертывания
Но, как я уже говорил выше, проблема крылась в файле wdsmgfw.efi. Либо я его сам случайно удалил, либо он не скопировался при установке и настройке WDS.
Инструкция
Этап 1 — Проверка работоспособности WDS
Используйте любое оборудование или виртуальную машину, поддерживающую загрузку через UEFI по сети, и попытайтесь загрузиться.
Вы должны увидеть следующую картину:
Если так, то отлично, можно продолжать. Если же нет, то смотрите, что я написал в предисловии.
Этап 2 — Сборка загрузочного файла iPXE
Запускаем предварительно настроенную Ubuntu, открываем консоль и вводим следующую команду:
git clone https://git.ipxe.org/ipxe.git ipxe
Тут хотелось бы сделать небольшое замечание, о том, что возможно вам в Ubuntu придётся добавить пакеты, необходимые для компиляции C и C++. Просто у меня они уже были установлены.
Загружено? — Замечательно! Теперь необходимо создать конфигурационный файл для сборки. В терминале введите:
cd ipxe/src gedit chain.ipxe
Затем вставьте в этот файл следующий код и сохраните изменения:
#!ipxe dhcp chain http://%IP-address-your-IIS-server%/install.ipxe
Идём опять в терминал и запускаем компиляцию:
собрать bin-x86_64-efi/ipxe.efi ВСТАВИТЬ=chain.ipxe
В случае, если все хорошо, вы увидите следующий результат в терминале:
И файл ipxe.efi, по пути: ipxe/src/bin-x86_64-efi/ipxe.efi Если у вас по какой-то причине не получилось скомпилировать самостоятельно, я приложил свой файл. Он скомпилирован для загрузки с http://192.168.0.100/install.ipxe
На этом этапе с Ubuntu завершено.
Шаг 3 — Внедрение ipxe.efi в WDS
Скопируйте файл, полученный на втором этапе, в следующую папку: %WDSpath%Bootx64%your-boot-folder%EFIBOOT После этого измените его название на BOOTX64.EFI. Это не является обязательным, но так будет удобнее.
Потом запускаем cmd от имени администратора, и пишем следующие команды:
wdsutil /set-server /bootprogram:Bootx64%your-boot-folder%EFIBOOTBOOTX 64.EFI /architecture:x64uefi и wdsutil /set-server /N12bootprogram:Bootx64%your-boot-folder%EFIBOOTBOOTX 64.EFI /architecture:x64uefi
При этом мы зададим необходимый файл для загрузки через WDS.
wdsutil /get-server /Show:Config
Я так же скопировал файл ipxe.efi, переименовал его в BOOTIA32.EFI и сконфигурировал загрузку для него, на всякий случай. architecture:x86uefi Но по большому счёту в этом нет смысла, т.к. файл Bootmgfw.efi не поддерживает x86
Давайте проверим, что у нас вышло. Замечательно, WDS начал загрузку нашего файла, и он, в свою очередь, обращается к конфигурации по следующему адресу: http://192.168.0.100/install.ipxe
Шаг 4 — Настройка меню
Перейдите в главную папку вашего веб-сайта. Обычно это: C:inetpubwwwroot
Создаём текстовый файл install.ipxe.
Мы настраиваем его в соответствии с документами и вашими требованиями. Также доступно описание команд на русском языке. Я использовал данную инструкцию при настройке своего WDS.
Пример конфигурации install.ipxe
#!ipxe :start menu Please choose an operating system to start/install item —gap Start Win PE item WinPE-x64 WinPE x64 item —gap ipxe shell item shell Drop to iPXE shell choose target goto $ :failed echo Booting failed, dropping to shell goto shell :shell echo Type ‘exit’ to get the back to the menu shell set menu-timeout 0 set submenu-timeout 0 goto start :WinPE-x64 kernel http://192.168.0.100/wimboot initrd http://192.168.0.100/peSE/Boot/bcd initrd http://192.168.0.100/peSE/Boot/boot.sdi initrd http://192.168.0.100/peSE/Boot/peSE64.wim boot || goto failed
Информацию о настройках для загрузки winPE можно найти здесь.
Шаг 5 — Типы MIME
По завершении разработки меню и загрузки всех нужных файлов в корневую директорию IIS, следует предоставить к ним доступ.
Т.к. даже если вы попробуете из браузера скачать файл, по его адресу то получите ошибку: HTTP 404.3 — Not Found .
Для этого требуется в интерфейсе управления IIS добавить MIME-типы в соответствии с расширениями файлов, которые вы планируете загружать через http.
Я не искал какой тип MIME подходит для этих целей лучше, и задал application/octet-stream , после чего всё заработало.
Для файлов без расширения применяйте точку.
BootDev
В предыдущих материалах, касающихся сетевой загрузки, все рассматриваемые загрузчики и процесс загрузки с применением технологии PXE выполнялись в Legacy-режиме, который является стандартом старого BIOS. Я принял решение расширить эту тему, проанализировав сетевую загрузку в актуальном стандарте UEFI.
В Чем Отличия
Кардинальных отличий в реализации загрузки с использованием технологии PXE для UEFI BIOS нет. Я даже скажу больше, все необходимые настройки полностью идентичны. Но, обо всем по порядку.
Технология PXE состоит из трех ключевых элементов:
1. TFTP-сервер. Предназначен для загрузки файлов по сети. На данном сервере хранятся все загрузочные файлы, с последующим предоставлением их по требованию, без какой-либо авторизации.
2. DHCP-сервер. Он предназначен для автоматического предоставления сетевых параметров в сети без необходимости настройки этих параметров вручную на устройствах, которые имеют соответствующий DHCP-клиент. То есть, когда вы подключаете устройство с активированным DHCP-клиентом в сеть, где имеется DHCP-сервер, оно может использовать сеть. Также стоит отметить, что помимо стандартных сетевых параметров (IP-адрес, маска подсети, шлюз и IP-адрес DNS-сервера), DHCP-сервер, участвующий в PXE, должен передавать информацию о TFTP-сервере и имя основного загружаемого файла.
3. Загрузочный клиент. Это программный код, который встроен в прошивку сетевой карты или UEFI BIOS материнской платы. Его основная задача заключается в получении необходимых сетевых настроек, установлении соединения с TFTP-сервером и загрузке загрузочного файла для его выполнения.
Сервера TFTP и DHCP при этом могут быть запущенны на совершенно разных машинах, единственное требование, чтобы они располагались в одной сети.
Все перечисленное относится как к Legacy BIOS, так и к UEFI BIOS. Главное отличие для UEFI PXE заключается в том, что необходимо задать исполняемый файл в конфигурации DHCP-сервера, который предназначен именно для UEFI BIOS.
Учитывая все вышесказанное, настоятельно рекомендую прочитать про установку и настройку DHCP и TFTP сервера, а так же про установку и настройку загрузчика Windows Boot Manager на TFTP-сервер. Данные статьи полностью актуальны на данный момент времени, и информация из них будет использоваться далее по тексту.
Необходимые Программы
Чтобы выполнить загрузку в UEFI PXE, необходимо наличие следующих программ и файлов:
1. Программа Tftp32(64). Удобный инструмент, который объединяет функции TFTP, DHCP, DNS и Syslog.
2. Программа BOOTICE. Невероятно мощный инструмент для создания и работы с загрузочными дисками.
3. Установочный образ операционной системы Windows в формате *.ISO. Его можно загрузить совершенно бесплатно с официального сайта Microsoft, без необходимости регистрации. Для скачивания используется программа MediaCreationTool.
4. Один из загрузочных WinPE, мультизагрузочной сборки 2k10.
Настройка TFTP-сервера
Как упоминалось ранее, процесс установки и настройки программы Tftp32(64) уже был подробно изложен в этой статье, поэтому я представлю только краткий демонстрационный скринкаст.
В этом скринкасте показана конфигурация TFTP-сервера, используя корневую директорию D:TFTP, а также настройка DHCP-сервера, но без указания имени загружаемого исполняемого файла.
Имя загрузочного файла будет добавлено в следующем разделе.
В данное время каталог D:TFTP не содержит файлов.
Данная директория является корневой для TFTP-сервера, и будет содержать все необходимые загрузочные файлы.
Установка UEFI-загрузчика
В роли загрузчика будет использоваться Windows Boot Manager (BOOTMGR). Процесс установки этого загрузчика на TFTP-сервер также обсуждался ранее. Принцип остается тем же, лишь отличаются файлы, которые необходимо скопировать.
Сначала необходимо извлечь из установочного *.ISO образа операционной системы Windows папку efimicrosoftboot и поместить её в корневую директорию TFTP-сервера D:TFTP.
Следующим, копируем файл efibootbootx64.efi, так же в корневую директорию TFTP-сервера.
Скопируйте файл bootboot.sdi в папку boot (D:TFTPboot) в корне каталога TFTP-сервера.
Установочным ISO-образом ОС Windows на этом покончено. Переходим к мультизагрзочному диску 2k10.
В корневом каталоге TFTP-сервера создадим папку sources (D:TFTPsources).
Переносим файл 2k10WinPEW1064PE.wim в только что созданную папку из загрузочного ISO-образа мультизагрузочной версии 2k10.
Переименуем скопированный файл в boot.wim.
Теперь приступим к настройке загрузчика. Вместо того чтобы подробно объяснять процесс, я представлю вам скринкаст, поскольку все шаги аналогичны тем, которые описаны в данной статье.
Запускаем BOOTICE. Открываем в нем конфигурационный файл скопированного загрузчика D:TFTPbootbcd. И выполняем действия приведенные в скринкасте.
Настройка охватывала два аспекта: первый параметр отвечал за появление устаревшей загрузочной полосы вместо вращающихся кружков, а второй отключал встроенную проверку загружаемых файлов *.wim.
Теперь необходимо было добавить имя исполняемого загрузочного файла в настройки DHCP-сервера. В нашем случае этот файл располагается по адресу D:TFTPbootx64.efi.
Загрузчик, и тестовое содержимое на этом установлены.
Загрузка Тестового BOOT.WIM
Мы будем проводить тестирование сетевой загрузки в виртуальной машине VMware Workstation Player.
Тестовая виртуальная машина обязательно должна смотреть в вашу реальную сеть.
Запускаем приложение Tftp32(64), если оно было завершено. Затем запускаем виртуальную машину и выбираем загрузку через сеть в режиме UEFI.
Запустится клиент UEFI PXE.
После получения всех необходимых сетевых настроек, запустится скачивание загрузчика и всех необходимых ему файлов с нашего TFTP-сервера.
После загрузки всех требуемых файлов в оперативную память виртуальной машины, они будут инициализированы. В моём случае будет активирована WinPE, использованная с мультизагрузочного диска 2k10.
Загрузка в UEFI PXE режиме прошла успешно.
В данной статье обсуждаются следующие вопросы: Как выполнить загрузку в режиме UEFI PXE? Как настроить TFTP32(64) для загрузки в UEFI? Как установить загрузчик UEFI на TFTP-сервер?
Как можно заметить, процесс сетевой загрузки в UEFI и Legacy режиме практически идентичен. Основное отличие заключается только в указании загружаемого исполняемого файла и связанных с ним файлах. То же самое касается и других загрузчиков — для них также нужно просто использовать версии для UEFI.
Установка Windows 10 и 11 по сети через PXE
itpro
Операционная система Windows 10 и Windows 11
комментариев 20
В данной статье мы изучим процесс установки Windows 10 или 11 посредством сети без необходимости использования загрузочной USB флешки или установочного DVD. Для организации загрузки компьютера по сети с помощью PXE мы воспользуемся небольшим сервером Tiny PXE Server. Данная инструкция подходит для установки Windows на устройства как с UEFI, так и с BIOS прошивкой.
В корпоративных средах для развертывания образов Windows по сети зачастую применяются более продвинутые решения, такие как Windows Deployment Services (WDS) и Microsoft Deployment Toolkit (MDT). В этой статье мы покажем, как легко запустить PXE сервер на любом доступном компьютере (независимо от того, работает ли он на Windows или Linux) и использовать его для сетевой установки Windows на другие компьютеры в той же локальной сети с помощью простых инструментов.
Создаем загрузочный образ Windows PE с помощью ADK
Скачайте Windows ADK для Windows 11 и Windows PE add-on for the Windows ADK по ссылкам на странице https://docs.microsoft.com/en-us/windows-hardware/get-started/adk-install .
Выбирая установку Windows ADK, остановитесь на минимальной конфигурации с инструментами развертывания.
Затем аналогично установите Windows PE add-on for Windows ADK.
Когда установка будет завершена, откройте инструмент Deployment and Imaging из меню "Пуск" в Windows. Либо выполните команду вручную:
"C:Program Files (x86)Windows Kits10Assessment and Deployment KitDeployment ToolsDandISetEnv.bat"
Теперь скопируйте файлы для среды WinPE в указанный каталог (создавать не нужно):
копировать amd64 C:toolswinpe
В данном случае я создаю файлы для среды WinPE x64. Можно использовать другие опции в зависимости от архитектуры: x86, arm или arm64.
Теперь существует возможность формирования загрузочного ISO-образа с WinPE:
MakeWinPEMedia /ISO C:toolswinpe c:toolsWinPE.iso
В некоторых случаях нужно загрузить дополнительные драйвера в файл boot.wim согласно инструкции Интеграция драйверов в установочный образ Windows .
Подготовка сервера сетевой установки TinyPXE
Теперь необходимо выполнить настройку вашего PXE сервера:
- Распакуйте файл pxesrv.zip в каталог C:toolspxesrv;
- Затем перейдите в папку C:toolspxesrv и создайте текстовый документ pxe_menu.txt с следующим содержанием:
#!ipxe set boot-url http://$ #================ Главное меню ================= menu iPXE загрузочное меню элемент WinPEISO WindowsPE ISO выбор цели goto $ #============ Опции Главного Меню ============= :WinPEISO sanboot $/iso/WinPE.iso загрузка


Итак, ваш PXE сервер запущен и готов к работе. Если в Windows включен брандмауэр (проще), отключите его или разрешите входящий трафик для процесса pxesrv.exe по протоколам DHCP, PXE, HTTP, TFTPS и SMB.
Сетевая установка Windows 10 и 11 с PXE сервера
Теперь необходимо произвести загрузку вашего компьютера, на который планируется установка Windows, с PXE-сервера. Убедитесь, что ваш компьютер находится в одной локальной сети (VLAN) с PXE-сервером.
В настройках BIOS/UEFI вашего устройства установите PXE в качестве основного загрузочного устройства.
При запуске среды PXE компьютер обнаружит в сети DHCP сервер, получит IP адрес и получит доступных опции в меню iPXE.
Компьютер осуществит загрузку через сеть в окружении WinPE.
В моем случае при тестировании загрузки с PXE сервера виртуальной машины VMWare с UEFI прошивкой появилась ошибка:
Не удалось описать устройства SAN: операция не поддерживается. Не удалось загрузить образ: операция не поддерживается https://ipxe.org/err/3c2220. Выяснилось, что в UEFI прошивке виртуальной машины на моем хосте VMware ESXi имеется ошибка:
Эта ошибка указывает на то, что в вашей UEFI прошивке присутствует баг, который мешает установке таблицы загрузки по iSCSI (iBFT). Переключитесь на загрузку в режиме "наследственного" BIOS вместо UEFI режима.
В результате мне пришлось переключить виртуальную машину в режим BIOS и запустить PXE сервер с опцией ipxe.pxe. После этого установка Windows по сети прошла успешно.
Вам осталось подключить по SMB сетевой каталог, в котором хранится ваш установочный ISO образ Windows 11.
По завершении инициализации окружения с помощью команды wpeinit подключите сетевой каталог, где смонтирован образ установки Windows. Введите следующую команду:
Net use E: \192.168.13.202e
В данном случае 192.168.13.202 обозначает компьютер, на котором расположен установочный образ, а E – это название общей директории. Укажите имя пользователя, который имеет права на доступ к вашей Windows с PXE-сервером.
Запустите привычный мастер установки Windows.
При установке Windows 11 не забывайте, что компьютер должен соответствовать определенным аппаратным требованиям. Но можно установить Windows 11 и без проверки наличия TPM, Secure Boot и т. д.
Статья передняя Статья последующая