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 или 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 .

скачать ADK для Windows

При установке Windows ADK выберите минимальную установку Deployment Tools.

установка ADK Deployment Tools

Затем аналогично установите Windows PE add-on for Windows ADK.

установка 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"

запуск Deployment and Imaging Tool

Теперь скопируйте файлы для среды WinPE в указанный каталог (создавать не нужно):

copype amd64 C:\tools\winpe

В данном случае я создаю файлы для среды WinPE x64. Можно использовать другие опции в зависимости от архитектуры: x86, arm или arm64.

генерация файлов для среды WinPE copype amd64

Теперь можно создать загрузочный ISO образ с WinPE:

MakeWinPEMedia /ISO C:\tools\winpe c:\tools\WinPE.iso

MakeWinPEMedia: создать ISO образ WINPE

Подготовка сервера сетевой установки TinyPXE

Теперь нужно настроить ваш PXE сервер:

  1. Распакуйте архив pxesrv.zip в каталог C:\tools\pxesrv;
  2. Перейдите в каталог 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

    конфигурационный файл меню для pxe сервера

  3. Скопируйте полученный ранее файл WinPE.iso в каталог C:\tools\pxesrv\files\iso;
  4. Смонтируйте установочный ISO образ в виртуальный привод Windows и откройте общий сетевой доступ к нему (если хотите, можете открыть к нему анонимный доступ, но это не обязательно);
    общий доступ к каталогу с установочным образом Windows

  5. Запустите файл pxesrv.exe с правами администратора;
  6. Включите опцию HTTPd;
  7. Если ваш компьютер сам будет раздавать IP адреса по DHCP (Tiny PXE это умеет), отключите опцию ProxyDHCP. Убедитесь, что в полях Option 54 DHCP Server и Next-Server указан IP адрес вашего компьютера. В поле IP Pool start указано начало диапазона DHCP, убедитесь что этот диапазон не занят в вашей сети;
  8. В разделе Boot File укажите ipxe.pxe (для загрузки на BIOS устройствах) или ipxe-x86_64.efi (для UEFI устройств);
  9. В поле Filename if user-class=gPXE or IPXE укажите имя файла меню, который вы создали ранее pxe_menu.txt;
  10. Запустите PXE сервер, нажав кнопку Online;
    настройки Tiny PXE сервера для загрузки Windows PE по сети

Итак, ваш PXE сервер запущен и готов к работе. Если в Windows включен брандмауэр (проще), отключите его или разрешите входящий трафик для процесса pxesrv.exe по протоколам DHCP, PXE, HTTP, TFTPS и SMB.

Сетевая установка Windows 10 и 11 с PXE сервера

Теперь вам нужно загрузить ваш компьютер, на который вы хотите установить Windows, с PXE сервера. Компьютер должен находится в той же локальной сети (VLAN), что и компьютер с PXE сервером.

В настройках BIOS/UEFI компьютера выберите в качестве первичного устройства загрузки PXE.

загрузка компьютера по сети через PXE (EFI network)

При запуске среды PXE компьютер обнаружит в сети DHCP сервер, получит IP адрес и получит доступных опции в меню iPXE.

загрузочное меню PXE сервера

Компьютер загрузится по сети в среде 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 в WinPE

Запустите знакомый мастер установки Windows.

установка windows 11 по сети через pxe

В этой статье мы расскажем, как установить 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 от

Загрузочный сервер — как загрузочная флешка, только сервер и по сети

Время на прочтение12 мин

Количество просмотров461K

Загрузочная флешка с набором нужного софта — замечательный инструмент системного администратора. Казалось бы, что может быть лучше? А лучше может быть загрузочный сервер!

Представьте, вы выбрали в BIOS загрузку по сети и можете установить ОС/вылечить компьютер от вирусов/реанимировать диски/протестировать ОЗУ/etc с PXE Boot сервера, ведь это куда удобнее, нежели бегать с флешкой от машины к машине.
А в случае большого компьютерного парка, такой инструмент и вовсе незаменим.

Вот такое меню встречает нашу команду инженеров при загрузке с PXE

Под катом вас ждет описание всех настроек, а так же небольшой сюрприз.

Начало

Возьмем за основу, что свежеустановленный Debian Wheezy уже весело подмигивает нам консолью.
Подготовим базу для дальнейших манипуляций. Установить и настроить нам потребуется:

  1. TFTP сервер
  2. Samba
  3. Syslinux
  4. DHCP сервер
  5. HTTP сервер
  6. NFS сервер

1. TFTP

# aptitude install tftpd-hpa

приведем конфиг /etc/default/tftpd-hpa к виду

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp" #пусть к корню tftp
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure  -l -v -m /etc/tftpd.remap" #файл для замены слешей в путях с windows style на linux style

и поместим в /etc/tftpd.remap вот такую строку

rg \\ /

UPD, дополнение от читателя Aleksey Shipilev

Повыдирал себе волос, пока отдебажил tftp.
Что на ThinkPad X201i, что в VirtualBox загрузка отваливалась с:
PXE-E32: TFTP Open timeout

Судя по всему, PXE агенты умудрились быть не полностью совместимыми, полечилось добавлением «-r blksize»:
TFTP_OPTIONS=»—secure -l -v -r blksize»

2. Samba

# aptitude install samba

В конец файла /etc/samba/smb.conf добавим информацию о папке, где будут лежать инсталляционные файлы Windows.

[images]
comment = images
path = /srv/tftp/images
create mask = 0660
directory mask = 0771
writable = yes
guest ok=yes

Cоздаем папку, даем права и рестартим самбу

# mkdir /srv/tftp/images
# chmod 777 /srv/tftp/images
# service samba restart

3. Syslinux
Скачиваем и заливаем в корень TFTP сервера все необходимое

# cd /tmp
# wget https://www.kernel.org/pub/linux/utils/boot/syslinux/4.xx/syslinux-4.02.tar.gz  #только с этой версией удалось подружить инсталлятор ESXi
# tar -xf syslinux-4.02.tar.gz
# cd syslinux-4.02/
# find ./ -name "memdisk" -type f|xargs -I {} cp '{}' /srv/tftp/
# find ./ -name "pxelinux.0"|xargs -I {} cp '{}' /srv/tftp/
# find ./ -name "*.c32"|xargs -I {} cp '{}' /srv/tftp/

Перейдем к настройке

# cd /srv/tftp/
# mkdir pxelinux.cfg
# cd pxelinux.cfg

Создадим конфиг основного меню и внесем начальные настройки

# cat > default
ui vesamenu.c32                  
PROMPT 0
menu background background.jpg
menu title ServerClub PXE boot menu

LABEL bootlocal
   menu label Boot from first HDD
   kernel chain.c32
   append hd0 0
   timeout 120
 TEXT HELP
The system will boot after the time is up
 ENDTEXT

4. DHCP

# aptitude install isc-dhcp-server

дефолтный конфиг переместим, создадим вместо него свой и перезапустим DHCP демон

# mv /etc/dhcp/dhcpd.conf{,_orig}
# cat > /etc/dhcp/dhcpd.conf
option domain-name-servers 8.8.8.8, 8.8.4.4;
option ip-forwarding on;
default-lease-time 60;
min-lease-time 120;
max-lease-time 300;
authoritative;
ddns-update-style interim;
log-facility local7;
shared-network PXE-Netwotk {
  subnet 10.0.10.0 netmask 255.255.255.0 {
  range 10.0.10.10 10.0.10.254;
  option routers 10.0.10.1;
  option subnet-mask 255.255.255.0;
  option domain-name-servers 8.8.8.8, 8.8.4.4;
  filename "pxelinux.0";
  next-server 10.0.10.1;
  option root-path "10.0.10.1:/srv/tftp/";
  }
}
# service isc-dhcp-server restart 

Спойлер для тех, у кого в роли DHCP сервера выступает MikroTik

address=10.0.10.0/24 gateway=10.0.10.1 dns-server=8.8.8.8, 8.8.4.4 wins-server="" ntp-server=212.20.50.208 caps-manager="" domain="domain.local" next-server=10.0.10.1 boot-file-name="pxelinux.0" dhcp-option=""

Спойлер для тех у кого DHCP на Cisco

network <ip сети> <маска>
ip dhcp pool <Имя пула>
bootfile pxelinux.0
next-server <IP сервера tftp>
default-router <Шлюз>
option 66 ascii «Имя сервера»
dns-server <DNS сервера>
option 150 <IP сервера tftp>
domain-name <доменное имя>

Так же стоит заметить, что в данной инсталляции у севера две сетевые карты и он является еще и шлюзом в интернет.

Поэтому необходим еще ряд нехитрых манипуляций

# sed -i 's/\#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/g' /etc/sysctl.conf
# sysctl -p
# iptables -t nat -I POSTROUTING -s 10.0.10.0/24 -o eth0 -j MASQUERADE
# sed -i 's/INTERFACES=\"\"/INTERFACES=\"eth1\"/g' /etc/default/isc-dhcp-server
# service isc-dhcp-server restart 

5. HTTP
Пока просто установим, а зачем он нам понадобился будет понятно далее по тексту.

# aptitude install apache2

6. NFS
Ровно так же как и предыдущий пункт.

# aptitude install nfs-kernel-server

Если все сделано правильно, то при загрузке какой-либо машины с этого DHCP/PXE/TFTP сервера мы увидим следующее:

Основа готова!

Двигаемся далее.

Научим сервер устанавливать различные ОС

Для установки нам будут доступны:

  1. Windows 2008R2/20012R2
  2. Debian 6/7
  3. Centos 6/7
  4. Ubuntu 12.04/12.10/14.04/14.10
  5. FreeBSD 9.2/10.1
  6. VMware ESXi 5.0/5.5

Структура меню, а следовательно и файл /srv/tftp/pxelinux.cfg/default притерпели изменения.

Теперь конфиг главного меню PXE сервера теперь выглядит так

ui vesamenu.c32                  
PROMPT 0
menu background background.jpg
menu title ServerClub PXE boot menu

LABEL bootlocal
   menu label Boot from first HDD
   kernel chain.c32
   append hd0 0
   timeout 120
 TEXT HELP
The system will boot after time is up.
 ENDTEXT
    
LABEL Windows           ->
      KERNEL vesamenu.c32
      APPEND pxelinux.cfg/windows 

LABEL Linux             ->
      KERNEL vesamenu.c32
      APPEND pxelinux.cfg/linux

LABEL FreeBSD           ->
      KERNEL vesamenu.c32
      APPEND pxelinux.cfg/bsd

LABEL VMvare            ->
      KERNEL vesamenu.c32
      APPEND pxelinux.cfg/vmware

Листинг директории /srv/tftp/pxelinux.cfg/

root@pxe:/srv/tftp/pxelinux.cfg# ls -l
total 32
-rw-r--r-- 1 tftp tftp  475 Фев 17 18:04 bsd
-rw-r--r-- 1 tftp tftp  881 Фев 17 18:00 default
-rw-r--r-- 1 tftp tftp 1316 Фев 17 18:01 linux
-rw-r--r-- 1 tftp tftp  363 Фев 17 18:03 vmware
-rw-r--r-- 1 tftp tftp  312 Фев 18 00:01 windows

Под спойлером содержимое конфига каждого из подпунктов меню представленных выше

windows

PROMPT 0
UI vesamenu.c32
MENU BACKGROUND background.jpg
MENU TITLE Windows

LABEL <- Main Menu
      KERNEL vesamenu.c32
      APPEND pxelinux.cfg/default

LABEL W2K8_x64_R2 & W2K12_x64_R2 (menu inside)
	kernel Boot/pxeboot.0


LABEL <- Main Menu
      KERNEL vesamenu.c32
      APPEND pxelinux.cfg/default

linux

PROMPT 0
UI vesamenu.c32
MENU BACKGROUND background.jpg
MENU TITLE Linux

LABEL <- Main Menu
      KERNEL vesamenu.c32
      APPEND pxelinux.cfg/default

LABEL Debian-7-x64
        kernel debian/7/linux
        append initrd=debian/7/initrd.gz

LABEL Debian-6.0.6-x64
        kernel debian/6/linux
        append initrd=debian/6/initrd.gz

LABEL CentOS-7-x64
        kernel centos/7/vmlinuz
        append initrd=centos/7/initrd.img method=http://mirror.mirohost.net/centos/7/os/x86_64/ devfs=nomount ksdevice=link ramdisk_size=100000

LABEL CentOS-6-x64
        kernel centos/6/vmlinuz
        append initrd=centos/6/initrd.img method=http://mirror.mirohost.net/centos/6/os/x86_64/ devfs=nomount ksdevice=link ramdisk_size=100000

LABEL Ubuntu-14.10-x64
        kernel ubuntu/14.10/linux
        append initrd=ubuntu/14.10/initrd.gz expert dmraid=true
      
LABEL Ubuntu-14.04-x64
        kernel ubuntu/14.04/linux
        append initrd=ubuntu/14.04/initrd.gz expert dmraid=true

LABEL Ubuntu-12.10-x64
        kernel ubuntu/12.10/linux
        append initrd=ubuntu/12.10/initrd.gz expert dmraid=true

LABEL Ubuntu-12.04_4-x64
        kernel ubuntu/12.04_4/linux
        append initrd=ubuntu/12.04_4/initrd.gz expert dmraid=true

LABEL <- Main Menu
      KERNEL vesamenu.c32
      APPEND pxelinux.cfg/default

bsd

PROMPT 0
UI vesamenu.c32
MENU BACKGROUND background.jpg
MENU TITLE BSD

LABEL <- Main Menu
      KERNEL vesamenu.c32
      APPEND pxelinux.cfg/default

LABEL FreeBSD-10.1-x64
        kernel memdisk
        initrd freebsd/10/mfsbsd-se-10.1-RELEASE-amd64.iso
        append iso raw

LABEL FreeBSD-9.2-x64
        kernel memdisk
        initrd freebsd/9/fbsd92.iso
        append iso raw


LABEL <- Main Menu
      KERNEL vesamenu.c32
      APPEND pxelinux.cfg/default

vmware

PROMPT 0
UI vesamenu.c32
MENU BACKGROUND background.jpg
MENU TITLE VMware

LABEL <- Main Menu
      KERNEL vesamenu.c32
      APPEND pxelinux.cfg/default

LABEL VMware-5.5
        kernel vmw/5.5/mboot.c32
        append -c /vmw/5.5/boot.cfg ks=http://10.0.10.1/vmw5.5/ks.cfg +++

LABEL VMware-5.0
	kernel vmw/5.0/mboot.c32
	append -c /vmw/5.0/boot.cfg ks=http://10.0.10.1/vmw5.0/ks.cfg +++

LABEL <- Main Menu
      KERNEL vesamenu.c32
      APPEND pxelinux.cfg/default

Пути к папкам, где лежат установочные файлы для каждой из ОС, описаны относительно корня TFTP сервера, т.е. /srv/tftp.
Например для FreeBSD указано

LABEL FreeBSD-10.1-x64
        kernel memdisk
        initrd freebsd/10/mfsbsd-se-10.1-RELEASE-amd64.iso
        append iso raw

следовательно в корне TFTP нужно создать папки freebsd/10/, при этом обратите внимание на права

ls -l /srv/tftp/freebsd/10/
total 193780
-rw-r--r-- 1 tftp tftp 198430720 Фев 17 18:17 mfsbsd-se-10.1-RELEASE-amd64.iso

У всех должно быть право на чтение — это правило справедливо для всех файлов отдаваемых по TFTP.
И еще пара слов о установке FreeBSD.
Логин / пароль для входа в загружаемый iso: root / mfsroot(либо root без пароля).
Плюс пара примеров скриптов инсталяции FreeBSD на ZFS:
1. RAID6 из 4-х дисков.
2. RAID1 из 2-х дисков.

О том как подготовить Windows к установке с PXE мы писали ранее.
Различие с данной инсталляцией составляет лишь то, что здесь мы можем установить и Windows 2008R2 и Windows 2012R2(впрочем и Windows 7/8 тоже, нужно только подготовить файлы дистрибутива и winpe соответствующим образом). После загрузки winpe мы монтируем папку /srv/tftp/images/, где содержаться файлы для установки ОС от Microsoft:

ls -l /srv/tftp/images/
total 8
drwxr-xr-x 6 root root 4096 Фев 17 22:19 w2k12r2
drwxr-xr-x 7 tftp tftp 4096 Фев 17 19:05 w2k8r2

и запускаем нужный инсталятор.
Для автоматизации, через startnet.cmd, я набросал вот такое меню:

Теперь осталось разобраться с VMware.
Как вы заметили, конфиг для установки гипервизоров несколько отличается от остальных — именно тут нам и понадобится HTTP сервер.
В /var/www создадим папки vmw5.5, vmw5.0, а в папках сделаем симлинки на конфиг

# cd /var/www
# mkdir vmw5.5
# cd  vmw5.5/
# ln -s /srv/tftp/vmw/5.5/ks.cfg 
# mkdir ../vmw5.0
# cd ../vmw5.0/
# ln -s /srv/tftp/vmw/5.0/ks.cfg 

О том как подготовить, например, Debian к установке с PXE написано здесь, но я на этом останавливаться не стану.

Добавим способность загружать различные дисковые утилиты и тест памяти

Данный раздел будет содержать:

  1. Memtest86+
  2. Clonezilla-live
  3. SystemRescueCD
  4. MHDD

Конфиги разместились здесь

default

ui vesamenu.c32                  
PROMPT 0
menu background background.jpg
menu title ServerClub PXE boot menu

LABEL bootlocal
   menu label Boot from first HDD
   kernel chain.c32
   append hd0 0
   timeout 120000
 TEXT HELP
The system will boot after time is up.
 ENDTEXT
    
LABEL Windows                     ->
      KERNEL vesamenu.c32
      APPEND pxelinux.cfg/windows 

LABEL Linux                       ->
      KERNEL vesamenu.c32
      APPEND pxelinux.cfg/linux

LABEL FreeBSD                     ->
      KERNEL vesamenu.c32
      APPEND pxelinux.cfg/bsd

LABEL VMvare                      ->
      KERNEL vesamenu.c32
      APPEND pxelinux.cfg/vmware


LABEL HDD and RAM utils           ->
      KERNEL vesamenu.c32
      APPEND pxelinux.cfg/du

du

PROMPT 0
UI vesamenu.c32
MENU BACKGROUND background.jpg
MENU TITLE HDD and RAM utils

LABEL <- Main Menu
      KERNEL vesamenu.c32
      APPEND pxelinux.cfg/default

LABEL Memtest86+
	kernel memtest/memtest


label Clonezilla-live
	MENU LABEL Clonezilla Live
	KERNEL clonezilla/vmlinuz
	APPEND initrd=clonezilla/initrd.img boot=live config noswap nolocales edd=on nomodeset ocs_live_run="ocs-live-general" ocs_live_extra_param="" keyboard-layouts="" ocs_live_batch="no" locales="" vga=788 nosplash noprompt fetch=tftp://10.0.10.1/clonezilla/filesystem.squashfs


label SystemRescueCD
	kernel SystemRescueCD/isolinux/rescue64
	append initrd=SystemRescueCD/isolinux/initram.igz dodhcp nfsboot=10.0.10.1:/srv/tftp/SystemRescueCD

LABEL MHDD
        kernel memdisk
        initrd mhdd/mhdd32ver4.6.iso
        append iso raw



LABEL <- Main Menu
      KERNEL vesamenu.c32
      APPEND pxelinux.cfg/default

А я расскажу зачем мы ставили еще и NFS сервер.
Как видно из конфига загрузки SystemRescueCD, необходимые этому LiveCD файлы он подтягивает монтируя каталог по протоколу NFS. Сервер уже установлен, остается только отредактировать /etc/exports и перезапустить серверный демон.

# cat >> /etc/exports 
/srv/tftp/SystemRescueCD/ 10.0.10.1/255.255.255.0(ro,no_subtree_check,all_squash,insecure,anonuid=1000,anongid=1000)
# service nfs-kernel-server restart

Предполагаю у вас возник резонный вопрос — «Что тут делает LiveCD, если для них есть отдельный пункт?»
SystemRescueCD содержит массу полезных программ для работы с диском(например таких как GParted и testdisk) и поэтому он доступен и здесь и в LiveCD.

LiveCD

В набор наших LiveCD войдут:

  1. Debian 7 LiveCD
  2. HirensBootCD
  3. Trinity Rescue Kit CD
  4. SystemRescueCD
  5. Plop Live

Конфиги

в конец default добавилось

LABEL LiveCDs                     ->
      KERNEL vesamenu.c32
      APPEND pxelinux.cfg/livecds

livecds

PROMPT 0
UI vesamenu.c32
MENU BACKGROUND background.jpg
MENU TITLE LiveCDs

LABEL <- Main Menu
      KERNEL vesamenu.c32
      APPEND pxelinux.cfg/default

LABEL Debian LiveCD
        KERNEL Debian7live/vmlinuz
	APPEND initrd=Debian7live/initrd boot=live fetch=tftp://10.0.10.1/Debian7live/filesystem.squashfs root=/dev/ram0 rw

LABEL HirensBootCD
	MENU LABEL Hiren's Boot CD
	KERNEL memdisk
	APPEND iso initrd=hirens/hirens.iso

LABEL Trinity Rescue Kit CD
	kernel trk/kernel.trk
	append initrd=trk/initrd.trk ramdisk_size=65536 root=/dev/ram0 vga=788 splash=verbose pci=conf1 trkmenu timeout 100 trknfs=10.0.10.1:/srv/tftp/trk ip=dhcp

LABEL SystemRescueCD
	kernel SystemRescueCD/isolinux/rescue64
	append initrd=SystemRescueCD/isolinux/initram.igz dodhcp nfsboot=10.0.10.1:/srv/tftp/SystemRescueCD

LABEL Plop Live
	KERNEL plop/bzImage
	APPEND initrd=plop/initramfs.gz vga=normal nfsmount=10.0.10.1:/srv/tftp/plop



LABEL <- Main Menu
      KERNEL vesamenu.c32
      APPEND pxelinux.cfg/default

Для загрузки Trinity Rescue Kit CD и Plop Live в /etc/exports нужно добавить строки:

/srv/tftp/trk/ 10.0.10.1/255.255.255.0(ro,no_subtree_check,all_squash,insecure,anonuid=1000,anongid=1000)
/srv/tftp/plop/ 10.0.10.1/255.255.255.0(ro,no_subtree_check,all_squash,insecure,anonuid=1000,anongid=1000)

и отправить команду рестарта NFS демону.

Несколько слов о выбраных LiveCD.
Debian 7 LiveCD
Этот CD — сборка одного из наших инженеров, включающая в себя следующее:

Логин / пароль: root / ServerClub

HirensBootCD
Едва ли нуждается в представлении, содержит множество полезных утилит.
Подробнее можно ознакомиться здесь.
Грузится достаточно долго, не работает MiniXP и Linux. Остальные утилиты доступны для использования.

Trinity Rescue Kit CD
Со слов разработчиков, создан для восстановления ОС Windows.
Содержит утилиты для сброса паролей, антивирусы, программу для клонирования «компьютера» по сети(при чем на несколько компьютеров одновременно), а так же многое другое.
Подробнее здесь.

SystemRescueCD
Основан на Gentoo, предназначен для восстановления Linux систем.
Включает в себя большое количество всевозможных программ для администрирования, со списком можно ознакомится по ссылке.

Plop Live
LiveCD с тремя полноценными DE на выбор, а так же необходимым админским софтом.

Антивирусы

  1. Kaspersky Rescue Disk 10

  2. AVG Rescue CD

В отдельном представлении оба антивируса не нуждаются.
О Kaspersky Rescue disk подробнее можно прочесть здесь.
С описанием AVG Recsue CD вас ознакомит данный url.

Итоговый конфигурационный файл основного меню, а так же файл меню антивирусов

default

ui vesamenu.c32                  
PROMPT 0
menu background background.jpg
menu title ServerClub PXE boot menu

LABEL bootlocal
   menu label Boot from first HDD
   kernel chain.c32
   append hd0 0
   timeout 120000
 TEXT HELP
The system will boot after time is up.
 ENDTEXT
    
LABEL Windows                     ->
      KERNEL vesamenu.c32
      APPEND pxelinux.cfg/windows 

LABEL Linux                       ->
      KERNEL vesamenu.c32
      APPEND pxelinux.cfg/linux

LABEL FreeBSD                     ->
      KERNEL vesamenu.c32
      APPEND pxelinux.cfg/bsd

LABEL VMvare                      ->
      KERNEL vesamenu.c32
      APPEND pxelinux.cfg/vmware


LABEL HDD and RAM utils           ->
      KERNEL vesamenu.c32
      APPEND pxelinux.cfg/du

LABEL LiveCDs                     ->
      KERNEL vesamenu.c32
      APPEND pxelinux.cfg/livecds

LABEL Antiviruses                 ->
      KERNEL vesamenu.c32
      APPEND pxelinux.cfg/av

av

PROMPT 0
UI vesamenu.c32
MENU BACKGROUND background.jpg
MENU TITLE Antivirues

LABEL <- Main Menu
      KERNEL vesamenu.c32
      APPEND pxelinux.cfg/default


LABEL Kaspersky Antivirus
	KERNEL kav/rescue
	APPEND initrd=kav/rescue.igz root=live rootfstype=auto vga=791 init=/init kav_lang=ru udev liveimg doscsi nomodeset

LABEL Kaspersky Antivirus (text mode)
	KERNEL kav/rescue
	APPEND initrd=kav/rescue.igz root=live rootfstype=auto vga=791 init=/init kav_lang=ru udev liveimg nox kavshell noresume doscsi nomodeset


label AVG
        menu label AVG Rescue CD
        kernel avg/vmlinuz
        append max_loop=255 vga=791 initrd=avg/initrd.lzm init=linuxrc reboot=bios

label AVG nofb
        menu label AVG Rescue CD with Disabled Framebuffer
        kernel avg/vmlinuz
        append max_loop=255 video=vesafb:off initrd=avg/initrd.lzm init=linuxrc reboot=bios

label AVG vgask
        menu label AVG Rescue CD with Resolution Selection
        kernel avg/vmlinuz
        append max_loop=255 initrd=avg/initrd.lzm init=linuxrc vga=ask reboot=bios



LABEL <- Main Menu
      KERNEL vesamenu.c32
      APPEND pxelinux.cfg/default

Заключение, оно же и сюрприз

На протяжении статьи я сознательно не давал объяснений где взять и как подготовить контент, потому как действия эти весьма тривиальны и только перегрузили бы текст.

В качестве сюрприза предлагаю вам два варианта нашей сборки, доступные по ссылкам ниже:

  1. Архив со всем контентом /srv/tftp (ссылка на торрент файл, прямая ссылка)
  2. Архив всей ОС (ссылка на торрент файл, прямая ссылка)

В первом случае необходимо самостоятельно подготовить сервер(в этом поможет глава «Начало» данного эпоса), разархивировать содержимое архива и внести корректировки сообразно реалиям вашей среды.

Второй случай подразумевает установку на голое железо или виртуальную машину.
Вкратце шаги по развертыванию сборки из полного архива ОС будут такими:
1. Загрузиться с Linux LiveCD.
2. Разметить диск и отформатировать разделы.
3. Примонтировать «/» раздел.
4. Распаковать архив.
5. Установить загрузчик.
6. Перезагрузиться.
7. Настроить ОС в соответствии вашей сети и начать пользоваться.
Логин / пароль: root / ServerClub.
ВАЖНО: Если в вашей сети есть работающий dhcp сервер, то перед запуском нашей сборки отключите в ней автостарт dhcp.

Полезные ссылки

Как подготовить Kaspersky Rescue disk 10 для загрузки с PXE
Wiki syslinux
Как подготовить ESXi для установки с PXE
C PXE не грузится интсаллятор ESXi. Решение
От чего с PXE не грузится интсаллятор ESXi. Решение

За сим заканчиваю, благодарю за внимание!

Для тех, у кого нет аккаунта на Хабре.
Если у вас возникнут вопросы/замечания, то пишите мне на почту — er[dog]serverclub.com.

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.

How to install Windows 10 over PXE Linux 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.16384

Mounting 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.16384

Saving 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:

PXE Boot Menu

Select Install MS Windows 10 option and press <ENTER>.

install Windows 10 over PXE
Microsoft Windows 10 Setup

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

Прочитано: 7 651

Итак, я плавно со своим 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

Файл успешно скопирован на SMB ресурс

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

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Включить пароль на спящий режим windows 10
  • Lenovo g50 driver for windows 7
  • Acpi smb0001 3 2411e6fe 0 драйвер для windows 10 hp
  • Какой ttl windows phone
  • Clock app windows 10