В этой статье мы рассмотрим, как установить 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 от
Прочитано: 7 649
Итак, я плавно со своим PXE сервером развернутым на Ubuntu 18.04 Server подошел к этапу, когда нужно в дополнении к автоматизированным установкам Ubuntu 18.04 Desktop & Server дополнить функционал. Уже сделал, что можно загрузившись через LiveCD инструмент сбросить Windows пароль, проверить жесткий диск на предмет заражения вирусами т. д. А вот моя мечта это возможность устанавливать Windows 7,10 и серверную линейку из среды Ubuntu. Использовать WDS, пожалуй нет. Я специализируюсь на Ubuntu системах, а значит и пишу и делаю исходя из своего предпочтения. В этой заметке я для себя разобрал, как сделать Windows загрузку из под Ubuntu 18.04 PXE.
Подготавливаю систему Ubuntu 18.04 Server amd64 под первоначальное использование:
ekzorchik@srv-bionic:~$ hg clone --insecure https://172.33.33.7/hg/dproject
ekzorchik@srv-bionic:~$ sudo ./dproject/default
Устанавливаю пакет Samba на нем, точнее с его помощью у меня будет файловый ресурс где будет храниться образа Windows 7, как x86/amd64:
ekzorchik@srv-bionic:~$ sudo apt-get install samba samba-common -y
ekzorchik@srv-bionic:~$ sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.backup
ekzorchik@srv-bionic:~$ sudo nano /etc/samba/smb.conf
[global]
workgroup = WORKGROUP
server string = Samba Server Version %v
log file = /var/log/samba/log.%m
max log size = 50
idmap config * : backend = tdb
cups options = raw
netbios name = pxe
map to guest = bad user
dns proxy = no
public = yes
## For multiple installations the same time - not lock kernel
kernel oplocks = no
nt acl support = no
security = user
guest account = nobody
[install]
comment = Windows 7 Image
path = /windows
read only = no
browseable = yes
public = yes
printable = no
guest ok = yes
oplocks = no
level2 oplocks = no
locking = no
acl allow execute always = true
На заметку: Параметр “acl allow execute always = true
” в smb.conf
необходим для возможности запускать на исполнение файлы exe.
ekzorchik@srv-bionic:~$ sudo testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing
rlimit_max (1024) to minimum Windows limit (16384)
ekzorchik@srv-bionic:~$ sudo mkdir -p /windows/x32
ekzorchik@srv-bionic:~$ sudo mkdir -p /windows/x64
Монтирую ISO образ Windows 7 на каталог Samba сервиса:
ekzorchik@navy:~$ scp /media/ekzorchik/iso/SW_DVD5_Win_Pro_7w_SP1_64BIT_Russian_-2_MLF_X17-59431.ISO ekzorchik@172.33.33.25:/home/ekzorchik
ekzorchik@srv-bionic:~$ sudo mount -o loop SW_DVD5_Win_Pro_7w_SP1_64BIT_Russian_-2_MLF_X17-59431.ISO /mnt
mount: /mnt: WARNING: device write-protected, mounted read-only.
ekzorchik@srv-bionic:~$ sudo cp -fr /mnt/* /windows/x64/
ekzorchik@srv-bionic:~$ sudo umount /mnt
ekzorchik@navy:~$ scp /media/ekzorchik/iso/SW_DVD5_Win_Pro_7w_SP1_32BIT_Russian_MLF_X17-28979.ISO ekzorchik@172.33.33.25:/home/ekzorchik
ekzorchik@srv-bionic:~$ sudo mount -o loop SW_DVD5_Win_Pro_7w_SP1_32BIT_Russian_MLF_X17-28979.ISO /mnt
ekzorchik@srv-bionic:~$ sudo cp -fr /mnt/* /windows/x32/
ekzorchik@srv-bionic:~$ sudo umount /mnt
ekzorchik@srv-bionic:~$ sudo chmod -R 755 /windows/
ekzorchik@srv-bionic:~$ sudo chown -R nobody:nogroup /windows/
ekzorchik@srv-bionic:~$ sudo /etc/init.d/smbd restart
ekzorchik@srv-bionic:~$ sudo /etc/init.d/nmbd restart
Устанавливаю PXE сервис:
Устанавливаю в систему пакет tftpd-hpa:
ekzorchik@srv-bionic:~$ sudo apt-get install tftpd-hpa -y
ekzorchik@srv-bionic:~$ sudo mkdir /media/pxeboot
ekzorchik@srv-bionic:~$ sudo chmod -R 777 /media/pxeboot/
ekzorchik@srv-bionic:~$ sudo chown -R nobody:nogroup /media/pxeboot/
ekzorchik@srv-bionic:~$ sudo cp /etc/default/tftpd-hpa /etc/default/tftpd-hpa.backup
ekzorchik@srv-bionic:~$ sudo nano /etc/default/tftpd-hpa
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/media/pxeboot"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="--secure --create --verbose"
Перезапускаю сервис tftpd-hpa:
ekzorchik@srv-bionic:~$ sudo service tftpd-hpa restart && sudo service tftpd-hpa status | head -n 5
ekzorchik@srv-bionic:~$ sudo apt-get install pxelinux syslinux -y
ekzorchik@srv-bionic:~$ sudo cp /usr/lib/syslinux/modules/bios/vesamenu.c32 /media/pxeboot/
ekzorchik@srv-bionic:~$ sudo cp /usr/lib/syslinux/modules/bios/libcom32.c32 /media/pxeboot/
ekzorchik@srv-bionic:~$ sudo cp /usr/lib/syslinux/modules/bios/libutil.c32 /media/pxeboot/
ekzorchik@srv-bionic:~$ sudo cp /usr/lib/PXELINUX/pxelinux.0 /media/pxeboot/
ekzorchik@srv-bionic:~$ sudo cp /usr/lib/syslinux/memdisk /media/pxeboot/
ekzorchik@srv-bionic:~$ sudo cp /usr/lib/syslinux/modules/bios/ldlinux.c32 /media/pxeboot/
ekzorchik@srv-bionic:~$ sudo mkdir /media/pxeboot/pxelinux.cfg/
ekzorchik@srv-bionic:~$ sudo nano /media/pxeboot/pxelinux.cfg/default
#Секция по умолчанию, если пользователь не выбрал никакого варианта или нажал
клавишу Enter
DEFAULT vesamenu.c32
#Секция времени в секундах, в течении которого отображается загрузочное меню
TIMEOUT 600
#Секция отображения строки для выбора варианта загрузки (1 - view, 0 - hidden)
PROMPT 0
MENU TITLE PXE MENU
# загрузка системы с диска
LABEL Boot from first hard disk
localboot 0x80
label Install Windows 7 x32/x64
KERNEL memdisk
INITRD windows/winpe_amd64.iso
APPEND iso raw
ekzorchik@srv-bionic:~$ sudo chown -R nobody:nogroup /media/pxeboot/
ekzorchik@srv-bionic:~$ ss -l4 | grep tftp
udp UNCONN 3072 0 0.0.0.0:tftp 0.0.0.0:*
Далее на VM под управлением Windows 7 x64 устанавливаю пакет Windows AIK (KB3AIK_RU.iso
размером 1.2 Gb
) и через инструмент Deployment Tools Command Prompt
Win + Все программы — Microsoft Windows AIK – «Командная стройка средств развертывания» (запускаю через правый клик с правами администратора)
(для amd64 создаю winpe образ)
C:\Program Files\Windows AIK\Tools\PETools>copype amd64 c:\winPE_x64
c:\winPE_x64>copy "c:\Program Files\Windows AIK\Tools\PETools\amd64\winpe.wim" c:\winPE_x64\ISO\sources\Boot.wim
c:\winPE_x64>copy "c:\Program Files\Windows AIK\Tools\amd64\imagex.exe" c:\winPE_x64\ISO\
c:\winPE_x64>oscdimg -n -bC:\winPE_x64\etfsboot.com c:\winPE_x64\ISO c:\winPE_x64\winpe_amd64.iso
Computing directory information complete
Image file is 170760192 bytes
Writing 22 files in 9 directories to c:\winPE_x64\winpe_amd64.iso
100% complete
Final image file is 170760192 bytes
Done.
(для x86 создаю winpe образ)
C:\Program Files\Windows AIK\Tools\PETools>copype x86 c:\winPE_x86
c:\winPE_x86>copy "c:\Program Files\Windows AIK\Tools\PETools\x86\winpe.wim" c:\winPE_x86\ISO\sources\Boot.wim
c:\winPE_x86>copy "c:\Program Files\Windows AIK\Tools\x86\imagex.exe" c:\winPE_x86\ISO\
c:\winPE_x86>oscdimg -n -bC:\winPE_x86\etfsboot.com c:\winPE_x86\ISO c:\winPE_x86\winpe_x86.iso
Computing directory information complete
Image file is 145268736 bytes
Writing 18 files in 8 directories to c:\winPE_x86\winpe_x86.iso
100% complete
Final image file is 145268736 bytes
Done.
Копирую получившийся iso файл на SAMBA сервис в каталог \\172.33.33.25\install
ekzorchik@srv-bionic:~$ sudo mkdir /media/pxeboot/windows/
ekzorchik@srv-bionic:~$ sudo mv /windows/winpe_amd64.iso /media/pxeboot/windows/
ekzorchik@srv-bionic:~$ sudo mv /windows/winpe_x86.iso /media/pxeboot/windows/
Теперь беру VM и выставляю ей что она сперва должна произвести загрузку по сети
Вижу запрос на нажатие клавиши нажимаю клавишу Enter и производится загрузка с диска, а диск у меня это iso образ. Тем самым стартует загрузка Windows, но не привычная установка а приглашение командной строки:
В этом приглашении следует уже подмонтировать SAMBA ресурс и запустить установку ОС, т. е. Windows 7 Pro x64
X:\windows\system32> net use M: \\172.33.33.25\install\x64
где M:
– это произвольное буква на которую монтирую доступ к ресурсу.
Затем перехожу на букву M:
и запускаю файл инсталляции операционной системы:
X:\windows\system32\cd /d M:
M:\>setup.exe
Указываю метод ввода (я предпочитаю чтобы дефолтным был английский язык, а не русский)
Нажимаю «Далее» – «Установить» и начинается обыденный процесс инсталляции операционной системы Windows, как если бы я просто записал образ на болванку или USB Flash Drive, выставил в BIOS с чего загружаться и загрузился.
Вообще следует разделить установку Windows в default файле:
LABEL Boot from first hard disk
localboot 0x80
LABEL Install Windows 7 Pro SP1 x64
KERNEL memdisk
INITRD windows/winpe_amd64.iso
APPEND iso raw
LABEL Install Windows 7 Pro SP1 x86
KERNEL memdisk
INITRD windows/winpe_x86.iso
APPEND iso raw
Далее, для того, чтобы автоматизировать установку системы, можно с помощью “диспетчера образов системы Windows” подготовить файл ответов Autounattend.xml
(именно так должен именовать файл ответов), и запускать установку с файлом ответов:
M:\setup.exe /unattend: Autounattend.xml
Исходя из этого, становится возможным на большом количестве персональных компьютеров которые необходимо вот прям, завтра, или сейчас ввести в эксплуатацию установить ось задействовав текущий PXE сервис и общий ресурс в роли SAMBA сервиса на который взгромоздить подготовленный ранее файл ответом или ставить все в ручную.
О том, как подготовить файл ответов будет в следующей заметке.
А пока я прощаюсь, на этом всё, с уважением автор блога Олло Александр aka ekzorchik
Discover how to install Windows 10 over PXE Linux server in just a few steps! Don’t miss out—learn the efficient, sysadmin-friendly method to deploy Windows OS remotely like a pro. #centlinux #linux #pxe
Table of Contents
Problem Statement
In our previous posts, we have configured a PXE boot server for automated installation of RHEL 7.5 operating system that supports both BIOS and UEFI based clients. Later on, we added RHEL 6 and Ubuntu 18.10 installation options in our PXE boot server. We have also written Kickstart files for automated installations of both operating systems.
Before concluding our PXE configuration series, we decided to write an article to add the installation option of a Microsoft’s operating system. Therefore, we have selected the Microsoft Windows 10 (the latest OS at the time of this writeup) as the candidate for our PXE boot server.
Linux Server Specification
In this article, we will install Windows 10 over PXE Server.
We use the same Linux server that we have configured as PXE Boot Server in our previous article. These specifications have been re-mentioned below for convenience of the readers.
- CPU – 2 Core (2.4 Mhz)
- Memory – 2 GB
- Storage – 50 GB
- Operating System – RHEL 7.5
- Hostname – pxe-server.itlab.com
- IP Address – 192.168.116.41/24
Furthermore, we need a client system to create Windows PE iso file. Here, we are using a MS Windows 8.1 machine for this purpose, however, you can use other versions of MS Windows as well (be noted that configurations are slightly different in MS Windows versions prior to 8.1).
Recommended Training: The Linux Command Line Bootcamp: Beginner To Power User from Colt Steele
Read Also: How to install Linux over PXE Server
Install Samba Server on Linux
We used Samba server to share installation media of MS Windows 10 Operating System with PXE clients.
Connect to pxe-server.itlab.com using ssh and install Samba server.
yum install -y samba
Create a directory to share Windows 10 installation media.
mkdir /smbshare
Adjust SELinux permissions.
semanage fcontext -a '/smbshare(/.*)?' -t samba_share_t
restorecon -Rv /smbshare
Create an user to control access to Samba share.
useradd -s /sbin/nologin ahmer
smbpasswd -a ahmer
Change owner of the shared directory with user ahmer.
chown ahmer:ahmer /smbshare/
Allow Samba service in Linux Firewall.
firewall-cmd --permanent --add-service=samba
firewall-cmd --reload
Add directives in /etc/samba/smb.conf to share the directory /smbshare with clients.
cat >> /etc/samba/smb.conf << EOF
[install]
comment = Installation Media
path = /smbshare
public = yes
writable = no
printable = no
browseable = yes
EOF
Start and enable Samba services.
systemctl start smb nmb
systemctl enable smb nmb
Attach MS Windows 10 ISO/DVD and mount it at /mnt/iso (you can use any mountpoint, according to your choice).
mount -t iso9660 /dev/cdrom /mnt/iso
Output:
mount: /dev/sr0 is write-protected, mounting read-only
Copy contents of /mnt/iso to /smbshare/windows10 directory.
cp -rf /mnt/iso /smbshare/windows10
Create a Customized Windows PE ISO
Connect to MS Windows 8.1 client.
We required Windows ADK (Assessment and Deployment Kit) to create our Windows PE iso. Therefore, we have downloaded it from Microsoft’s website and installed it on our Windows 8.1 client.
After installation, run Deployment and Imaging Tools Environment as Administrator.
Run the following command to create working directories for Win PE. (Command output has been trimmed to show only success status)
cd C:\Program Files (x86)\Windows Kits\8.0\Assessment and Deployment Kit\Windows Preinstallation Environment
copype x86 c:\WinPE_x86\
Output:
---
186 File(s) copied
1 file(s) copied.
1 file(s) copied.
1 file(s) copied.Success
We will customize the startup script startcmd.net, so MS Windows 10 setup will start automatically. Therefore, mount the image file and customize it accordingly.
Dism /Mount-Image /ImageFile:"c:\WinPE_x86\media\sources\boot.wim" /index:1 /MountDir:"c:\WinPE_x86\mount"
Output:
Deployment Image Servicing and Management tool
Version: 6.2.9200.16384Mounting image
[==========================100.0%==========================]
The operation completed successfully.
Now, edit startnet.cmd.
notepad c:\WinPE_x86\mount\Windows\System32\Start\net.cmd
And add following lines therein.
wpeinit
net use z: \\192.168.116.41\install\windows10 /user:ahmer@123
z:\setup.exe
Save and unmount the image file.
Dism /Unmount-Image /MountDir:"c:\WinPE_x86\mount" /commit
Output:
Deployment Image Servicing and Management tool
Version: 6.2.9200.16384Saving image
[==========================100.0%==========================]
Unmounting image
[==========================100.0%==========================]
The operation completed successfully.
Generate winpe.iso file.
MakeWinPEMedia /ISO c:\WinPE_x86 c:\winpe.iso
Output:
Creating c:\winpe.iso...100% complete
Success
Transfer winpe.iso file to pxe-server-itlab.com and copy it to /var/lib/tftpboot/networkboot/windows10/
directory.
Now, connect to pxe-server.itlab.com again using ssh.
Copy Kernel boot image for MS Windows in tftpboot directory.
cp /usr/lib/syslinux/memdisk /var/lib/tftpboot/
Edit PXE boot menu for BIOS based clients.
vi /var/lib/tftpboot/pxelinux.cfg/default
And add following menu option at the end of file.
label Install MS Windows 10
menu label Install MS Windows 10
kernel memdisk
initrd /networkboot/windows10/winpe.iso
append iso raw
Connect a new client to your network and turn it on. It should get the IP address from DHCP server and display our PXE boot Menu as follows:
Select Install MS Windows 10 option and press <ENTER>.
We have successfully added the MS Windows 10 installation option in our Linux based PXE server.
Frequently Asked Questions (FAQs)
What is PXE booting, and how does it help install Windows 10?
PXE (Preboot Execution Environment) allows a computer to boot and install an operating system over a network instead of using physical media. A Linux server can host the Windows 10 installation files for remote deployment.
Do I need a Windows server to set up PXE for Windows 10?
No, you can use a Linux server (like Ubuntu or CentOS) to configure a PXE boot environment for Windows 10 installation with the right tools and configurations.
What files are required on the Linux server for Windows 10 PXE installation?
You’ll need the Windows 10 ISO (or extracted files), a TFTP server to host boot files, a DHCP server to assign IPs, and a network share (SMB/NFS) for the Windows installation files.
Can I use PXE to install Windows 10 on multiple computers at once?
Yes! Once the PXE server is set up, any device connected to the same network can boot and install Windows 10 simultaneously (depending on network bandwidth and server capacity).
Are there any risks when installing Windows 10 over PXE?
If configured incorrectly, you might face boot failures or network issues. Ensure proper DHCP settings, correct file paths, and compatible hardware (PXE-supported network cards). Always back up data before installation.
Final Thoughts
By now, you’ve seen how straightforward it can be to install Windows 10 over a PXE Linux server. From setting up the TFTP and DHCP services to booting the Windows installer remotely, you’re just steps away from streamlining your deployment process.
If you’re still manually installing operating systems or juggling bootable USBs, you’re already falling behind. Modern sysadmins automate and scale—and PXE booting is at the heart of that transformation.
Don’t let outdated methods slow you down. Get ahead, save time, and take control of your infrastructure.
✅ Ready to level up your deployment game? Start implementing PXE boot with Linux today—your future self will thank you.
Struggling with Linux server management? I offer professional support to ensure your servers are secure, optimized, and always available. Visit my Fiverr profile to learn more!
Looking for something?
Latest Articles
Напоминаем, что попытки повторить действия автора могут привести к потере гарантии на оборудование и даже к выходу его из строя. Материал приведен исключительно в ознакомительных целях. Если же вы собираетесь воспроизводить действия, описанные ниже, настоятельно советуем внимательно прочитать статью до конца хотя бы один раз. Редакция 3DNews не несет никакой ответственности за любые возможные последствия.
Ранее мы уже познакомились с процессом массированного разворачивания по сети готового образа жёсткого диска с предустановленной Windows 7 сразу на множество машин. Использовали мы для этого связку из DRBL и Clonezilla. Ключевой недостаток данного подхода заключается в отсутствии гибкости, связанном с вынужденным ограничением на использование однотипной конфигурации клиентских ПК. Развивая тему сетевой загрузки, мы рассмотрели создание универсального PXE-реаниматора. В этом случае ПК при старте подгружает с сервера в оперативную память live-образ той или иной ОС и работает с ним.
Аналогичным образом мы можем загрузить по сети среду предустановки Windows (PE), подмонтировать расшаренную папку с установочными файлами и запустить оттуда инсталлятор. Похожим образом работают и фирменные сервисы Microsoft RIS или WDS, однако они требуют наличия Windows Server. В случае не очень большого числа клиентских машин можно обойтись бесплатными решениями. Пример «классической» реализации такой схемы мы и рассмотрим. На одном из компьютеров с Windows Vista/7 будет поднят DHCP/TFTP/SMB-сервер.
О требованиях к железу уже говорилось в предыдущих материалах. Тем не менее ещё раз кратко пробежимся по ним. Во-первых, в BIOS всех компьютеров должна быть включена сетевая загрузка. Во-вторых, все машины необходимо на время объединить в изолированную локальную сеть, желательно гигабитную. Естественно, их конфигурация должна удовлетворять требованиям 32-битной Windows 7, так как установку именно этой ОС мы и будем рассматривать. Но в общих чертах описываемый метод подойдёт и для Windows Vista. Про «восьмёрку», пожалуй, говорить ещё рано.
Нам опять понадобится Windows Automated Installation Kit (WAIK). Скачиваем ISO-образ, распаковываем или монтируем его и устанавливаем этот набор утилит. В главном меню выбираем Microsoft Windows AIK → Deployment Tools Command Prompt. Перед нами откроется консоль, в которой надо ввести следующую команду:
copype.cmd x86 C:\WinPE
Эта команда копирует в каталог C:\WinPE файлы, необходимые для создания образа с предустановочным окружением 32-разрядной Windows 7. Для 64-битной версии надо указать параметр amd64 вместо x86. Сразу же создайте ещё одну папку C:\TFTP\, которая будет корневой для TFTP-сервера, а в ней сделайте директорию Boot. В последней будут храниться загрузочные файлы. Чтобы получить оные, нужно смонтировать базовый wim-образ Windows PE и скопировать их оттуда.
imagex /mountrw winpe.wim 1 mount copy mount\Windows\Boot\PXE\*.* C:\TFTP\Boot
Команда imagex всего лишь распаковывает файлы из wim-образа в подпапку mount. Их можно отредактировать или, к примеру, добавить свои, а потом снова упаковать в единый архив. Этим займёмся чуть позже, а пока закроем и снова откроем Deployment Tools Command Prompt, скопируем ещё один важный файл и отмонтируем образ.
copy x86\boot\boot.sdi C:\TFTP\Boot cd /d C:\WinPE imagex /unmount mount
Скопируем файл winpe.wim в каталог C:\TFTP\Boot под именем boot.wim и приступим к созданию загрузочного меню Windows (BCD).
copy winpe.wim C:\TFTP\Boot\boot.wim cd /d C:\TFTP\Boot bcdedit -createstore BCD
В простейшем случае нам достаточно указать параметры для RAM-диска.
bcdedit -store BCD -create {ramdiskoptions} /d "Ramdisk options" bcdedit -store BCD -set {ramdiskoptions} ramdisksdidevice boot bcdedit -store BCD -set {ramdiskoptions} ramdisksdipath \boot\boot.sdi bcdedit -store BCD -create /d "PE Boot Image" /application osloader
Обратите внимание на вывод последней выполненной команды. В нём содержится GUID, который надо скопировать и подставить вместо {guid} в командах ниже.
bcdedit -store BCD -set {guid} systemroot \Windows bcdedit -store BCD -set {guid} detecthal Yes bcdedit -store BCD -set {guid} winpe Yes bcdedit -store BCD -set {guid} osdevice ramdisk=[boot]\Boot\boot.wim,{ramdiskoptions} bcdedit -store BCD -set {guid} device ramdisk=[boot]\Boot\boot.wim,{ramdiskoptions}
Для начала стоит попробовать загрузиться с «чистого» образа Windows PE. Однако кое-какие правки в него надо будет внести. Во-первых, могут понадобиться драйвера для сетевой карты или контроллера жёсткого диска. Во-вторых, неплохо было бы сделать автоматическое подключение к сетевой папке и запуск установщика. Снова открываем консоль WAIK и монтируем загрузочный образ.
cd /d C:\WinPE imagex /mountrw winpe.wim 1 mount
Для добавления драйверов (в виде *.inf и сопутствующих файлов, конечно же) используется следующая команда:
dism /image:mount /add-driver /driver:Путь до папки или inf-файла
Также необходимо отредактировать простой текстовый файл [C:\WinPE\]mount\windows\system32\startnet.cmd. Этот скрипт выполнится при старте PE-окружения и будет монтировать сетевую папку в качестве логического диска, с которого запустится установщик Windows 7.
wpeinit net use z: \\192.168.0.51\Win7Install password /user:username z:\setup.exe
192.168.0.51 — это IP-адрес сервера, с которого производится установка. На нём надо скопировать все файлы с инсталляционного образа Windows 7 в какую-либо папку (в нашем примере это Win7Install) и открыть к ней доступ по сети. Вместо password и username надо соответственно указать пароль и имя локального пользователя. Можно даже создать отдельную учётную запись под это дело. В конце не забудьте закрыть wim-файл с применением изменений и скопировать его в директорию TFTP-сервера. Консоль можно закрыть.
imagex /unmounts /commit mount copy winpe.wim C:\TFTP\Boot\boot.wim
Ранее мы уже касались темы файла ответов для автоматизации процесса установки и первичной настройки Windows 7. В данном случае мы также имеем полное право использовать его возможности. Для подготовки файла лучше воспользоваться утилитой Windows System Image Manager из комплекта WAIK. После запуска в меню выбираем File → New answer file, затем нам предложат выбрать установочный образ системы. Он находится в каталоге sources, откуда будет производиться установка ОС (в нашем примере Win7Install/sources) — выбирайте файл с расширением clg и вашей редакцией ОС в качестве имени (например, install_Windows 7 PROFESSIONAL.clg).
В панели Windows Image имеется дерево компонентов, которые можно настраивать. Для этого надо кликнуть по любому из них правой кнопкой мыши и во всплывающем меню выбрать пункт Add Setting to Pass * — он тут же появится в панели Answer File, где можно будет отредактировать различные параметры. Например, добавить учётные записи, разбить диски, установить обновления и так далее. Мы не будем подробно останавливаться на наполнении файла ответов — всю необходимую информацию можно почерпнуть в Сети или из встроенной справки. Готовый файл надо сохранить всё в той же установочной директории sources под именем autounattend.xml.
Осталось совсем немного. Необходимо настроить DHCP и TFTP. В принципе, вы можете использовать практически любые программные реализации этих серверов. Мы же для примера воспользуемся универсальной утилитой Serva32/64. После запуска программы надо кликнуть по кнопке Settings, перейти на вкладку DHCP и отметить галочкой пункт DHCP server. Чуть ниже кликаем по Bind DHCP to this address и в выпадающем списке выбираем IP-адрес сетевого интерфейса, на котором будет работать сервер. Естественно, адрес должен быть статичным и заранее заданным.
В поле IP Pool 1st addr указываем начальный IP-адрес диапазона выдаваемых адресов, а в Pool size — число DHCP-клиентов. Не забудьте также прописать маску подсети (Subnet mask). Наконец, в Boot File указываем относительный путь до файла PXE-загрузчика. В нашем случае это может быть pxeboot.com или pxeboot.n12. В первом случае для старта сетевой загрузки будет предложено нажать клавишу F12, иначе будет продолжен запуск с локальных носителей. Если F12 отсутствует, то надо указать второй загрузчик (возможно, придётся переименовать его в pxeboot.com).
На вкладке TFTP аналогичным образом включаются галочки TFTP Server и Bind TFTP to this address, указывается корневая папка сервера (у нас это C:\TFTP) и обязательно отмечается опция Option negotiation, а PXE Compatibility выключается. Всё, теперь нажимаем OK, сохранив тем самым настройки, и перезапускаем утилиту. Проверьте, чтобы брандмауэр не блокировал используемые порты (UDP 67-69). Можно попробовать загрузиться по сети на одной из клиентских машин. Для выявления проблем используйте логи, которые генерирует Serva. Если всё в порядке, автоматически запустится инсталлятор Windows 7, дальнейшая работа с которым ничем не отличается от той, что идёт при загрузке с установочного USB/DVD/HDD.
Вот, собственно, и всё. Мы разобрали довольно простой пример сетевой установки Windows 7. Как его можно улучшить? Ну, во-первых, можно добавить дополнительные опции в загрузчик Windows, чтобы он по умолчанию загружался с локальных носителей, а не по сети. Во-вторых, загрузчик syslinux, о котором говорилось в прошлый раз, можно спокойно использовать с утилитой Serva32/64. Формат файла конфигурации (pxelinux.cfg/default) тот же самый. В-третьих, не помешает глубже изучить возможности файла ответов и автоматической инсталляции Windows. В общем, есть куда копать. Но это мы оставим для самостоятельного изучения и на прощание традиционно пожелаем удачи в сетевых экспериментах.
Если Вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.