Установка Netboot

Воспользуемся docker-compose. Создадим в домашнем каталоге папку netboot и файл docker-compose.yml

docker-compose.yml

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
---
version: "2.1"
services:
  netbootxyz:
    image: ghcr.io/netbootxyz/netbootxyz
    container_name: netbootxyz
    environment:
      - NGINX_PORT=80 # optional
    volumes:
      - ./config:/config # optional
      - ./assets:/assets # optional
    ports:
      - 3000:3000
      - 69:69/udp
      - 8080:80 # optional, destination should match ${NGINX_PORT} variable above.
    restart: unless-stopped

Запуск контейнера

1
docker-compose up -d

Теперь на 8080 порту висит nginx с файлами для сетевой загрузки и на 3000 порту веб интерфейс netboot`а, а 69 порт tftp сервер.

Создание образа WinPE

Для того что-бы установить Windows по сети нам нужно собрать образ WinPE.

Windows PE (WinPE) — это небольшая операционная система, используемая для установки, развертывания и восстановления классических выпусков Windows, Windows Server и других операционных систем Windows.

Установка ADK

Нужно скачать с сайта Microsoft необходимые инструменты ADK и WinPE. https://learn.microsoft.com/ru-ru/windows-hardware/manufacture/desktop/winpe-intro?view=windows-11 ScreenShotFromMicrosoftSite

Редактирование образа WinPE

Для начала нужно создать базовый образ WinPE для дальнейшей её модификации.

1
copype amd64 C:\WinPE_amd64

Узнать название образа для дальнейшей команды

1
Dism /Get-ImageInfo /ImageFile:"C:\WinPE_amd64\media\sources\boot.wim"

Вывод

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
Cистема DISM
Версия: 10.0.22621.1

Сведения об образе : media\sources\boot.wim

Индекс: 1
Имя : Microsoft Windows PE (amd64)
Описание : Microsoft Windows PE (amd64)
Размер: 1 759 497 940 байт

Операция успешно завершена.

Монтируем образ boot.wim в папку mount

1
Dism /Mount-Image /ImageFile:"C:\WinPE_amd64\media\sources\boot.wim" /Name:"Microsoft Windows PE (amd64)" /MountDir:C:\WinPE_amd64\mount

Открываем файл по пути и редактируем как описано ниже

WinPE_amd64\mount\Windows\System32\startnet.cmd

startnet.cmd

1
2
3
4
5
wpeinit
for %%s in (sCPU sSecureBoot sTPM sRAM sStorage) do reg add HKLM\SYSTEM\Setup\LabConfig /f /v Bypas%%sCheck /d 1 /t reg_dword
Wpeutil WaitForNetwork
net use z: \\IPorHostanmeToSMBServer\public\netboot\win11
z:\setup.exe

В команде net use указываем путь к SAMBA серверу где будет лежать распакованый ISO образ оригинального установочного диска Windows 11.

Размонтируем образ для сохранения изменений

1
Dism /Unmount-Image /MountDir:"C:\WinPE_amd64\mount" /commit

Создаём WinPE ISO

1
MakeWinPEMedia /ISO C:\WinPE_amd64 C:\WinPE_amd64\WinPE_amd64.iso

Распаковка WinPE в папку assets netboot сервера

Теперь нужно распаковать образ WinPE_amd64.iso который мы создали на прошлом шаге в папку netboot/assets/WinPE/x64 на сервере где запущен Docker с netboot`ом. Для этого примонтируем iso образ командой

1
2
3
sudo mount -o loop WinPE_amd64_2.iso /mnt/iso/
cd netboot/assets/WinPE/
sudo rsync -avh /mnt/iso/ x64/

Настройка Mikrotik

В вкладке networks нужно прописать next server где у нас располагается netboot сервер MikrotikSettings1 MikrotikSettings2 MikrotikSettings3 MikrotikSettings4 MikrotikSettings5