В этой статье мы рассмотрим, как установить 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 на компьютеры в этой же LAN с помощью простых средств.
Нам понадобятся:
- Установочный ISO образ с Windows 10 или 11 (проще всего создать его с помощью Windows Media Creation Tool согласно инструкции https://winitpro.ru/index.php/2013/12/31/sozdaem-zagruzochnuyu-fleshku-s-windows-7-dlya-uefi-sistemy/ )
- Образ Windows PE — можно использовать свой образ WinPE, извлечь его из образа восстановления MS DART, получить оригинальный WinPE с помощью Windows Assessment and Deployment Kit (Windows ADK), или использовать готовый образ типа Hiren’s BootCD PE.
- Сервер Tiny PXE (http://reboot.pro/files/file/303-tiny-pxe-server/ )
Содержание:
- Создаем загрузочный образ Windows PE с помощью ADK
- Подготовка сервера сетевой установки TinyPXE
- Сетевая установка Windows 10 и 11 с PXE сервера
Создаем загрузочный образ 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 выберите минимальную установку Deployment Tools.
Затем аналогично установите Windows PE add-on for Windows ADK.
После окончания установки запустите Deployment and Imaging Tool из стартового меню Windows. Или запустите вручную команду:
"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\DandISetEnv.bat"
Теперь скопируйте файлы для среды WinPE в указанный каталог (создавать не нужно):
copype amd64 C:\tools\winpe
В данном случае я создаю файлы для среды WinPE x64. Можно использовать другие опции в зависимости от архитектуры: x86, arm или arm64.
Теперь можно создать загрузочный ISO образ с WinPE:
MakeWinPEMedia /ISO C:\tools\winpe c:\tools\WinPE.iso
Подготовка сервера сетевой установки TinyPXE
Теперь нужно настроить ваш PXE сервер:
- Распакуйте архив pxesrv.zip в каталог C:\tools\pxesrv;
- Перейдите в каталог C:\tools\pxesrv и создайте текстовый файл pxe_menu.txt со следующим содержимым:
#!ipxe set boot-url http://${dhcp-server} #================ Main Menu ================= menu iPXE boot menu item WinPEISO WindowsPE ISO choose target && goto ${target} #============ Main Menu Options ============= :WinPEISO sanboot ${boot-url}/iso/WinPE.iso boot
- Скопируйте полученный ранее файл WinPE.iso в каталог C:\tools\pxesrv\files\iso;
- Смонтируйте установочный ISO образ в виртуальный привод Windows и откройте общий сетевой доступ к нему (если хотите, можете открыть к нему анонимный доступ, но это не обязательно);
- Запустите файл pxesrv.exe с правами администратора;
- Включите опцию HTTPd;
- Если ваш компьютер сам будет раздавать IP адреса по DHCP (Tiny PXE это умеет), отключите опцию ProxyDHCP. Убедитесь, что в полях Option 54 DHCP Server и Next-Server указан IP адрес вашего компьютера. В поле IP Pool start указано начало диапазона DHCP, убедитесь что этот диапазон не занят в вашей сети;
- В разделе Boot File укажите ipxe.pxe (для загрузки на BIOS устройствах) или ipxe-x86_64.efi (для UEFI устройств);
- В поле Filename if user-class=gPXE or IPXE укажите имя файла меню, который вы создали ранее pxe_menu.txt;
- Запустите PXE сервер, нажав кнопку Online;
Итак, ваш 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 прошивкой появилась ошибка:
Could not describe SAN devices: Operation not supported
Could not boot image: Operation not supported https://ipxe.org/err/3c2220
Как оказалось, в UEFI прошивки виртуальной машины на моем хосте VMware ESXi есть баг:
This error indicates that your UEFI firmware has a bug that prevents the installation of the iSCSI boot firmware table (iBFT). Switch to booting in “legacy” BIOS mode rather than UEFI mode.
Пришлось переключить ВМ в режим BIOS и запускать PXE сервер с опцией ipxe.pxe. После этого пошла нормальная установка Windows по сети.
Вам осталось подключить по SMB сетевой каталог, в котором хранится ваш установочный ISO образ Windows 11.
После инициализации среды командой
wpeinit
подключите ваш сетевой каталог, в который смонтирован установочный образ Windows. Выполните команду:
Net use E: \\192.168.13.202\e
Где
192.168.13.202
– имя компьютера на котором хранится установочный образ, а
E
– название общей папки.
Введите имя пользователя, с правами доступа к вашей Windows с PXE сервером.
Запустите знакомый мастер установки Windows.
В этой статье мы расскажем, как установить Windows 10 или 11 по сети без использования загрузочной USB флешки или установочного DVD диска. Для загрузки компьютера по сети через PXE мы будем использовать компактный Tiny PXE Server. Инструкция применима для установки Windows на устройствах с прошивкой UEFI и BIOS.
В корпоративных сетях для разливки образов Windows по сети часто применяются решения, такие как Windows Deployment Services (WDS) и Microsoft Deployment Toolkit (MDT). Однако в этой статье мы покажем, как быстро запустить PXE сервер на любом компьютере и использовать его для сетевой установки Windows на устройства в локальной сети с минимальными ресурсами.
Приобрести оригинальные ключи активации Windows всегда можно у нас в каталоге от 1099 ₽
Вам понадобятся:
— Установочный ISO образ с Windows 10 или 11 (можно создать с помощью Windows Media Creation Tool).
— Образ Windows PE — можно использовать свой образ WinPE, извлечь его из образа восстановления MS DART, или скачать оригинальный WinPE с помощью Windows ADK.
— Сервер Tiny PXE.
Создаем загрузочный образ Windows PE с помощью ADK
1. Скачайте Windows ADK с официального сайта, для Windows 11 и Windows PE add-on for the Windows ADK.
2. При установке выберите минимальный набор Средств развертывания.
3. Затем установите Windows PE add-on.
4. Запустите Deployment and Imaging Tool через меню или вручную с помощью команды:
"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\DandISetEnv.bat"
5. Скопируйте файлы для среды WinPE:
copype amd64 C:\tools\winpe
6. Создайте загрузочный ISO образ с WinPE:
MakeWinPEMedia /ISO C:\tools\winpe c:\tools\WinPE.iso
Подготовка сервера сетевой установки TinyPXE
1. Распакуйте архив pxesrv.zip в каталог C:\tools\pxesrv.
2. Создайте текстовый файл pxe_menu.txt с содержимым:
#!ipxe
set boot-url http://${dhcp-server}
menu iPXE boot menu
item WinPEISO WindowsPE ISO
choose target && goto ${target}
:WinPEISO
sanboot ${boot-url}/iso/WinPE.iso
boot
3. Скопируйте WinPE.iso в каталог C:\tools\pxesrv\files\iso.
4. Смонтируйте установочный ISO образ и откройте общий доступ к нему.
5. Запустите pxesrv.exe от имени администратора, включите опцию HTTPd.
6. Укажите IP адрес компьютера в полях Option 54 DHCP Server и Next-Server.
7. Установите ipxe.pxe (для BIOS) или ipxe-x86_64.efi (для UEFI) в качестве Boot File.
8. Укажите pxe_menu.txt в поле Filename.
9. Запустите PXE сервер, нажав кнопку Online.
Сетевая установка Windows 10 и 11 с PXE сервера
Теперь вам нужно загрузить ваш компьютер, на который вы хотите установить Windows, с PXE сервера. Компьютер должен находится в той же локальной сети (VLAN), что и компьютер с PXE сервером.
1. Настройте компьютер, на который вы хотите установить Windows, для загрузки через PXE в BIOS/UEFI.
2. Компьютер получит IP адрес через DHCP и увидит меню iPXE.
3. После загрузки WinPE командой wpeinit, подключитесь к сетевому каталогу с установочным образом Windows с помощью команды:
Net use E: \\192.168.13.202\e
Где 192.168.13.202 — это IP компьютера с PXE сервером, а E — имя общей папки.
После этого можно запустить мастер установки Windows и продолжить установку, как при обычной загрузке с USB или DVD.
Лицензионный ключ активации Windows 11 от
В предыдущей части мы закончили на том, что по сети успешно загрузили дистрибутив Linux. Теперь немного перейдем в сторону Windows и попробуем загрузить установщик Windows так, чтобы он нашел себя и дал установиться по сети на локальный диск.
Часть 1: Теория и анализ предложений
Часть 2: Первые грабли в процессе загрузки MemTest86+
Часть 3: Добавляем поддержку UEFI
Часть 4: Загружаем Strelec WinPE
Часть 5: Загружаем полноценный дистрибутив Linux Ubuntu
Часть 6: Загружаем Windows Installer и ставим ОС
Часть 7: Устанавливаем Windows на iSCSI диск по сети
Часть 8: Жонглируем пунктами iPXE меню
Часть 9: Обслуживание сервера и обновление образов
Неудачные попытки
Казалось бы, ничего сложного. Сначала я пробовал загрузить образ через memdisk – не вышло из-за требований по ОЗУ. Потом я нашел проект FiraDisk. Суть в том, что он подгружает драйвер в установочную WinPE (boot.wim), который монтирует виртуальный привод напрямую из файла. Сначала выглядит неплохо, но у него есть пару фатальных недостатков:
- Предварительно драйвер необходимо интегрировать в установочный образ Windows, то есть если образов несколько, то в каждый. Долго и неудобно.
- Даже с интегрированным драйвером у меня не получилось с помощью FiraDisk установить Win7 или Win10 (уже не помню)
Также я пробовал загружать установщик по iSCSI, таким же образом, как Strelec WinPE, однако установщик отказывался ставить ОС на локальный диск, так как “Данный компьютер не поддерживает загрузку с этого диска”.
В общем эту идею решено было забросить и придумать что-то получше. Тут появляется wimboot, часть проекта iPXE.
Алгоритм работы
Итак, wimboot – legacy/uefi загрузчик образов winpe с поддержкой http. В результате алгоритм загрузки следующий:
- Из-под iPXE запускаем wimboot. Как аргументы кормим: сам boot.wim, bcd и скрипт, который нужно сделать после загрузки WinPE
- После того, как WinPE загружается, скриптом монтируем по SMB в роли сетевой папки установщик Windows и запускаем setup.exe.
- setup.exe видит образ, локальные диски и успешно дает установить ОС.
Настройка Samba
Так как установочные файлы будут лежать на сетевом хранилище SMB, приступим к него настройке. Создадим и настроим папку, где будут лежать установочные файлы Windows, также расшарим корневую /pxe для удобства обслуживания.
apt install samba -y
systemctl enable smbd
systemctl enable nmbd
mkdir /pxe/win_installer
cat > /etc/samba/smb.conf << EOF
workgroup = WORKGROUP
server string = PXEServer
netbios name = PXEServer
security = user
map to guest = bad user
level2 oplocks = no
oplocks = no
socket options = TCP_NODELAY
read raw = Yes
write raw = Yes
use sendfile = true
[pxe]
path = /pxe
read only = no
guest ok = yes
public = yes
writable = yes
force user = root
force group = root
[win_installer]
path = /pxe/win_installer
read only = yes
guest ok = yes
public = yes
writable = no
force user = root
force group = root
EOF
service smbd restart
Распаковывать ISO образы напрямую неудобно и долго, поэтому будем монтировать. Находим где-нибудь установочный образ Windows и копируем его в /pxe/images. Я скачал последний образ Windows 10 и скопировал в папку с именем Windows.10.x64.20H2.oct20.iso. Теперь монтируем.
mkdir /pxe/win_installer/10x64
mount -o loop /pxe/images/Windows.10.x64.20H2.oct20.iso /pxe/win_installer/10x64
Команда mount в данном случае случится c WARNING: source write-protected, mounted read-only: это нормально, ведь в смонтированный ISO мы записывать ничего не собирались.
Далее нужно создать папку с файлами конфигурации монтирования установщика Windows и создаем файл, монтирующий папку после запуска WinPE.
mkdir /pxe/win_installer/configs
cat > /pxe/win_installer/configs/winpeshl.ini << EOF
[LaunchApps]
"install.bat"
EOF
mkdir /pxe/win_installer/configs/10x64
cat > /pxe/win_installer/configs/10x64/install.bat << EOF
@echo off
echo Initializing WinPE...
wpeinit
echo.
echo Mounting setup share...
net use \\\\192.168.9.1\\win_installer\\10x64
echo Run setup.exe...
\\\\192.168.9.1\\win_installer\\10x64\\setup.exe
EOF
Имейте в виду, так как я использую cat для записи файлов конфигурации, обратный слеш заэкранирован. Также обратите внимание, что здесь указан IP адрес сервера загрузок и если он у вас другой, то его нужно будет сменить.
Настраиваем iPXE
Скачиваем wimboot с официального репозитория или отсюда.
Закидываем в /pxe/win_installer/.
Теперь дополняем наше меню iPXE.
# вставляем четвертым пунктом меню
item win10installer Install Windows 10
.....
# в конце файла дописываем
:win10installer
# устанавливаем http путь до корня
set srvaddr http://${srvip}
# устанавливаем переменные с устанавливаемой системой
set osimage 10x64
set bootimage 10x64/sources/boot.wim
set installerdir ${srvaddr}/win_installer
# смотрим параметры для отладки
echo Boot Image: ${installerdir}/${bootimage}
echo OS Image: ${installerdir}/${osimage}
echo WinConfig: ${installerdir}/configs/${osimage}/install.bat
echo Wimboot image: ${installerdir}/wimboot
echo
sleep 3
# устанавливаем настройки для загрузки и стартуем
kernel ${installerdir}/wimboot
initrd ${installerdir}/configs/${osimage}/install.bat install.bat
initrd ${installerdir}/configs/winpeshl.ini winpeshl.ini
initrd ${installerdir}/${osimage}/boot/bcd BCD
initrd ${installerdir}/${osimage}/boot/boot.sdi boot.sdi
initrd ${installerdir}/${bootimage} boot.wim
boot
Готово. Осталось проверить.
Проверка
Для проверки потребуется к виртуальной машине добавить диск, я создам и добавлю vhdx на 20Гб. Этого хватит для установки ОС, а больше и не надо. После добавления пробую загрузить.
-
Загрузка boot.wim через iPXE -
Инсталлятор запустился -
Пошел процесс копирования файлов -
После перезагрузки система загрузилась с локального диска, проходит OOBE -
Чистая система готова
Как и требовалось, установка успешно проходит как в Legacy, так и в UEFI режимах.
Что может пойти не так:
- Особенно при тестировании, как я предполагаю с одного IP адреса, samba бывает не дает за какой-то промежуток времени несколько раз монтировать директорию, поэтому стартовый скрипт может подвисать на Mounting share. Можно либо подождать, либо перезапустить samba: service smbd restart.
Несмертельно, но неприятно. - Успешность установки сильно зависит от
настроенияboot.wim, личной его неприязни к железу и к wimboot.
В некоторых конфигурациях внутри boot.wim нет драйверов на сетевую карту => он не может смонтировать папку и ваши полномочия заканчиваются. Решается пересбором boot.wim с добавлением драйверов.
В некоторых конфигурациях boot.wim вообще отказывается загружаться: перезагружается сразу после монтирования папки или до, выпадает в BSOD на этапе копирования и прочее. Из вариантов пробовать только другие boot.wim, благо подсунуть его можно отдельно от устанавливаемой ОС.
Количество просмотров: 3 682
In this article, we will look at how to deploy Windows 10 or 11 over the network without using local installation media (USB flash drive, DVD, ISO image) and without USB ports. We will use a small portable Tiny PXE Server to boot a computer over the network via PXE. This guide will help you to deploy Windows on devices both with UEFI and BIOS firmware.
Contents:
- Creating a Windows PE Boot Image Using ADK
- How to Configure a TinyPXE Network Installation Server?
- Using PXE Server to Install Windows 10 or 11 Over the Network
We will need:
- An installation Windows 10 or 11 ISO image (it is easier to create it using Windows Media Creation Tool according to the post: https://woshub.com/how-to-create-uefi-bootable-usb-drive-to-install-windows-7/);
- A Windows PE image — you can use your own WinPE image, extract it from an MS DART recovery image, get an original WinPE using Windows Assessment and Deployment Kit (Windows ADK), or use a pre-built image like Hiren’s BootCD PE;
- A Tiny PXE Server (http://reboot.pro/files/file/303-tiny-pxe-server/).
In corporate networks, Windows Deployment Services (WDS) or Microsoft Deployment Toolkit (MDT) with more features are used to deploy Windows images to user computers over a network. In this article, we’ll show how to quickly start a PXE server on any computer (no matter if it is running Windows or Linux) and use it to deploy Windows OS on the computers in the same LAN using simple tools.
Creating a Windows PE Boot Image Using ADK
Download Windows ADK for Windows 11 and Windows PE add-on for the Windows ADK following the links at https://docs.microsoft.com/en-us/windows-hardware/get-started/adk-install.
When installing the Windows AD, select the Deployment Tools only.
Then install the Windows PE add-on for Windows ADK in the same way.
After the installation is over, run the Deployment and Imaging Tool from the Windows Start menu. Or use the command:
"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\DandISetEnv.bat"
Then copy files for WinPE to your target folder:
copype amd64 C:\tools\winpe
In this case, I’m creating environment files for WinPE x64. You can use other options depending on your architecture: x86
, arm
, or arm64
.
Then generate a bootable WinPE ISO image:
MakeWinPEMedia /ISO C:\tools\winpe c:\tools\WinPE.iso
How to Configure a TinyPXE Network Installation Server?
Then configure your PXE server:
- Extract pxesrv.zip to C:\tools\pxesrv;
- Go to C:\tools\pxesrv and create a text file pxe_menu.txt with the following contents:
#!ipxe set boot-url http://${dhcp-server} #================ Main Menu ================= menu iPXE boot menu item WinPEISO WindowsPE ISO choose target && goto ${target} #============ Main Menu Options ============= :WinPEISO sanboot ${boot-url}/iso/WinPE.iso boot
- Copy the WinPE.iso file you got earlier to C:\tools\pxesrv\files\iso;
- Mount the Windows install ISO image to your virtual drive Windows and share it on the network (if you want, you may allow anonymous access to it, but it is optional);
- Run pxesrv.exe as administrator;
- Enable the HTTPd option;
- If you want your computer to assign IP addresses on the local network via DHCP (Tiny PXE can do this), disable the ProxyDHCP option. Make sure that the IP address of your computer is specified in the
Option 54 DHCP Server
andNext-Server
fields. The IP Pool start field shows the beginning of the DHCP range, so make sure that the range is not busy in your network; - In the Boot File section, specify ipxe.pxe (for BIOS devices) or ipxe-x86_64.efi (for UEFI devices);
- In the Filename if user-class=gPXE or IPXE field, enter the name of the menu file you created earlier: pxe_menu.txt;
- Start your PXE server by clicking Online.
So, your PXE server is up and running. If a firewall is enabled in Windows, disable it or allow inbound traffic for pxesrv.exe over DHCP, PXE, HTTP, TFTPS, and SMB protocols.
Using PXE Server to Install Windows 10 or 11 Over the Network
Then you must boot the computer on which you want to install Windows from a PXE server. The computer must be in the same local network (VLAN) as the PXE server host.
Select PXE as a primary boot device in BIOS/UEFI settings of the computer.
After running PXE, the computer will find the DHCP server in the network, get an IP address and available options in the iPXE menu.
The computer will boot over the network in the WinPE environment.
When I tested booting from a PXE server on a VMWare virtual machine with UEFI, an error appeared:
Could not describe SAN devices: Operation not supported Could not boot image: Operation not supported https://ipxe.org/err/3c2220
As it turned out, there was a bug in the virtual machine UEFI firmware on my VMware ESXi host:
This error indicates that your UEFI firmware has a bug that prevents the installation of the iSCSI boot firmware table (iBFT). Switch to booting in “legacy” BIOS mode rather than UEFI mode.
I had to switch the VM to BIOS mode and start the PXE server with the ipxe.pxe option. Then the Windows is normally deployed over the network.
Now you need to map a shared folder with your Windows 11 ISO image using the SMB protocol.
Initialize the environment using the wpeinit
command and mount the shared folder with Windows installation files:
Net use E: \\192.168.103.202\E
(192.168.103.202 is the name of the computer the installation image is located on, and E is the name of the shared folder).
Enter the user credentials that are allowed to access the Windows host with the PXE server.
Run Windows Setup with the setup.exe
command.