- PVSM.RU - https://www.pvsm.ru -
Полагаю буду следующим в серии статей-альтернатив:
Раньше у нас использовалась заливка ОС по PXE с использованием syslinux, но как бывает с самодостаточными системами и без достаточного контроля и внимания - быстро превратилась в кашу из конфигураций, библиотек, загрузчиков.
Так же была необходимость в поддержке заливки разных ОС в режиме EFI - на тот момент заливка была только в Legacy.
В желании разобраться в этом наследстве, упростить и облегчить добавление новых образов в список, я познакомился с iPXE.
Итог [7]
Раздел частично отсылает к Загрузочный сервер — как загрузочная флешка... [8], первичная подготовка схожа - для базы используется чистый Debian Bullseye, но думаю, использование другого дистрибутива не будет сильно отличаться.
VM VirtualBox
Ram: 1 Гб
VDI: 8Gb
CPU: 1 Core
Network: - NAT, подсеть 10.0.2.0, без DHCP, шлюз 10.0.2.1
Debian 11.4
Необходимо установить:
Используется для загрузчиков и ipxe скриптов:
apt 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 -vvv -r blksize -m /etc/tftpd.remap"
Замена слешей Windows на Linux /etc/tftpd.remap:
rg \ /
Оглавление [13] Начало раздела [3]
Используется для установки Windows-образов, в процессе монтируя папку образа, как диск:
apt install samba
В конце /etc/samba/smd.conf добавил:
[images]
comment = images
path = /srv/tftp/images
create mask = 0660
directory mask = 0771
writable = yes
guest ok = yes
browseable = yes
locking = no
public = yes
Создал папку, выдал права, перезапустил samba:
mkdir /srv/tftp/images
chmod 777 /srv/tftp/images
service smbd restart
Оглавление [13] Начало раздела [14]
Используется для загрузки образа WinPE, Linux и прочих данных по протоколу HTTP (быстрее TFTP):
apt install apache2
Настройки на стенде по умолчанию, в папке /var/www/html/ создаю директории:
/images/ - для папок ОС
/photo/ - для фонов меню, но не обязательно
mkdir -p /var/www/html/images/photo
Оглавление [13] Начало раздела [15]
Выдает IP адреса в сети. Для настройки iPXE на Windows Server лучше обратиться к документации [16].
apt install isc-dhcp-server
Задаю статический IP адрес для стенда.
/etc/network/interfaces:
allow-hotplug ens0s3
iface ens33 inet static
address 10.0.2.5
netmask 255.255.255.0
broadcast 10.0.2.255
network 10.0.2.0
gateway 10.0.2.1
Назначаю интерфейс для прослушивания запросов.
/etc/default/isc-dhcp-server:
INTERFACESv4="enp0s3"
Формирую DHCP подсеть и добавляю ключи для загрузки с iPXE.
option domain-name "local.loc";
option domain-name-servers 10.0.2.1;
# Переменная для определения архитектуры клиента:
option arch code 93 = unsigned integer 16;
# Объявляю пространство имен для ipxe
option space ipxe;
option ipxe.no-pxedhcp code 176 = unsigned integer 8;
default-lease-time 600;
max-lease-time 7200;
ddns-update-style none;
# Возможность получать клиентам IP-адреса
authoritative;
# Выделение подсети
subnet 10.0.2.0 netmask 255.255.255.0 {
range 10.0.2.100 10.0.2.200;
option domain-name-servers 10.0.2.1;
option domain-name "local.loc";
option routers 10.0.2.1;
option broadcast-address 10.0.2.255;
default-lease-time 600;
max-lease-time 7200;
}
# Отключение задержки в iPXE ожидания прокси DHCP.
# Экономит пару секунд.
option ipxe.no-pxedhcp = 1;
# Используя ранее установленную переменную,
# в зависимости от режима загрузки клиента,
# идет выбор, какой загрузчик отправить клиенту:
if option arch != 00:00 {
filename "ipxe.efi";
} else {
filename "undionly.kpxe";
}
# Установка корневой директории с загрузчиками и конфигурациями
next-server 10.0.2.5;
option tftp-server-name "10.0.2.5";
option root-path "tftp://10.0.2.5:/srv/tftp/";
На всякий случай проверяю синтаксис конфигурации на ошибки:
dhcpd -t -cf /etc/dhcp/dhcpd.conf
Если всё хорошо, указания ошибок в выводе не будет:
Internet Systems Consortium DHCP Server 4.4.1
Copyright 2004-2018 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Config file: /etc/dhcp/dhcpd.conf
Database file: /var/lib/dhcp/dhcpd.leases
PID file: /var/run/dhcpd.pid
Документация:
Отдача нужного загрузчика [18], в зависимости от режима загрузки - Legacy/UEFI
Оглавление [13] Начало раздела [15]
В данном разделе будет:
Загрузка пакетов [20]
Сборка загрузчиков [22]
Оглавление [13]
После настройки и проверки стенда, необходимо собрать из исходного кода загрузчики iPXE для режимов Legacy и UEFI.
Обязательно потребуется установить зависимости [23]:
gcc
binutils
make
perl
liblzma или xz header files
mtools
apt install gcc binutils make perl liblzma-dev mtools git
Скачиваю архив кода iPXE, либо клонирую репозиторий. Захожу во внутрь:
git clone git://git.ipxe.org/ipxe.git
cd ipxe/src/
Большинство возможностей iPXE по умолчанию закомментировано и при сборке бинарников, будет недоступно. Полный перечень функций указан тут [24], перебирая разделы можно выбрать, что нужно и где включить.
В текущем случае нужно:
в файле config/gereral.h раскомментировать строки с CONSOLE_CMD, IMAGE_PNG для команд консоли и png картинок.
в файле config/console.h раскомментировать строку с CONSOLE_FRAMEBUFFER, тоже для картинок.
Оглавление [13] Начало раздела [4]
После загрузки iPXE от DHCP появится приглашение командной строки iPXE. Дальше нужно будет получить ip и начать загрузку скрипта меню. Чтобы этого не делать вручную, можно встроить базовый скрипт в сам бинарник [18].
Создаю скрипт [25] start.ipxe (имя значения не имеет). Перечень, возможных команд [26].
#!ipxe
:start
# Механизм получения ip. В случае ошибки - предлагает нажать "s" для запуска командной строки.
# Иначе - начать снова.
dhcp && goto next || prompt --key s --timeout 1500 Press "s" for the iPXE command line... && shell || goto start
:next
# Случае успеха - загрузить "меню" с tftp-сервера (о нём - позже).
chain tftp://10.0.2.5/boot.ipxe
Оглавление [13] Начало раздела [4]
Внимание! Строка имени файла [27] является и его целевой конфигурацией [28], т.е. какое имя будет выбрано, для той платформы и будет сборка. В ключе EMBED= указывается имя ранее созданного скрипта.
Так же в случае ошибок при сборке, необходимо добавить ключ -fno-pie в Makefile.housekeeping на 451 строке. Предполагается, что это из-за ошибок в gcc [29].
make bin-i386-efi/ipxe.efi EMBED=start.ipxe
make bin-i386-pcbios/undionly.kpxe EMBED=start.ipxe
Копирую полученные загрузчики в папку tftp PXE сервера
cp bin-i386-efi/ipxe.efi /srv/tftp/
cp bin-i386-pcbios/undionly.kpxe /srv/tftp/
Оглавление [13] Начало раздела [4]
Оглавление [13]
Ранее, в загрузчики был встроен скрипт, который в случае успешного получения ip, загружал и запускал скрипт boot.ipxe.
#!ipxe
# Глобальные параметры
set pass pAsWoRd # Установка пароля на вход в iPXE
set httpServer http://10.0.2.5:80 # Задание адреса HTTP сервера
set menu-timeout 10000 # таймаут выхода из меню
#############################
########## Графика ##########
# Меняю цвет фона на серый
colour --rgb 0x999999 6
# Цвет по-умолчанию (индекс 0)
# Буквы - черный, фон букв - прозрачный
cpair -f 0 -b 4 0
# Фоновое изображение и рамка
# ${platform} - переменная iPXE, определяет в каком режиме загружен клиент- pcbios или efi
# Задаю параметры окна, картинку фона (загрузив её по http)
console -l 32 -r 32 -t 32 -b 32 -k --x 1024 --y 768 -d 24 -p {platform}.png
# После установки фона, удаляю картинку из памяти -
# иначе она ломает wimboot загрузку WinPE
imgfree ${platform}.png
#########################
:login
# Запрашивается пароль. Если будет нажат Ctrl+C или Esc будет выход и загрузка с диска
# В идеале, можно использовать для авторизации в сервисах, но в данном случае играет роль заглушки
login || goto cancel
#Если пароль верен, перейти "дальше"-к меню загрузок, иначе - таймаут 5 секунд и повторный запрос пароля
iseq ${password} ${pass} && goto next || goto error_pass
:error_pass
echo Error password. Repeat after 5 seconds
sleep 5
goto login
:cancel
echo You change "Exit". Boot from disk...
sleep 1
exit
# Переход к файлу с меню
:next
chain --replace --autofree menu.ipxe
По пути /var/www/html/images/photo/ кладу подготовленные pcbios.png и efi.png размера 1024х768. В зависимости от того, в каком режиме запустится ПК, у меня всегда будет подсказка на самом фоне меню:


Cоздаю меню загружаемых ОС и утилит.
#!ipxe
# После предыдущего скрипта, настройки остаются прежними,
# потому переопределяю их, чтобы было видно текст
######## Графика ########
# Цвет по-умолчанию (индекс 0)
# Буквы - черный, фон-прозрачный
cpair -f 0 -b 4 0
# Нормальный текст (индекс 1)
# Буквы - черный, фон - прозрачный
cpair -f 0 -b 4 1
# Разделители (индекс 3)
# Буквы - красный, фон - прозрачный
cpair -f 1 -b 4 3
#########################
######## Главное меню ########
# На данный момент "всё в одном", но можно разделить как по разным меню, так и по разным файлам
:start
# Составляю меню
https://ipxe.org/cmd/menu
menu iPXE boot menu
item -k e exit (E)xit and boot from disk
item
item --gap -- -------- Windows Images --------
item -k a win10manager2021 Windows 10 M(a)nager 2021
item
item --gap -- -------- Debian Images --------
item debian11 Debian 11 Bullseye
item
item --gap -- -------- Acronis Images --------
item acronis2021x64 Acronis 2021 64-bit
item
# Для режима Legacy, добавляю утилиты использующие Memdisk
iseq ${platform} pcbios && item --gap -- -------- BIOS Utilites -------- ||
iseq ${platform} pcbios && item memtest Memtest86+ (v5.31) ||
iseq ${platform} pcbios && item mhdd Mhdd (v4.6) ||
iseq ${platform} pcbios && item hddtolls HDDtools ||
iseq ${platform} pcbios && item victory Victory ||
iseq ${platform} pcbios && item diskGenius DiskGenius (disk diagnostics) ||
iseq ${platform} pcbios && item ||
item --gap -- -------- iPXE Utilites --------
item -k c config Start interactive (c)onfiguration tool
item -k s shell Start (S)hell iPXE
choose -d exit -t ${menu-timeout} selected
goto ${selected}
########
# Пункты меню
# В среднем состоят из трёх пунктов:
# kernel - передаю ядро linux и аргументы для запуска
# initrd - пакет данных для ядра
# boot - команда передачи управления ядру linux
########
:debian11
# В данном случае, в kernel передаётся ссылка linux ядра на http-сервере и аргументы запуска
kernel {httpServer}/images/bullseye/install.amd/pxe_${platform}_preseed.cfg netcfg/dhcp_failed=note netcfg/dhcp_options="Retry network autoconfiguration" netcfg/get_domain= --- quiet initrd=initrd.gz
# так же, ссылкой на http, передается пакет данных для ядра
initrd ${httpServer}/images/bullseye/install.amd/initrd.gz
# команда передачи управления ядру linux и в случае ошибки - переход к обоку обработки ошибок
boot || goto error
goto start
# Разбор файлов для linux - будет ниже
:win10manager2021
# wimboot - загрузчик .wim файлов установщика Windows, который сам патчит BCD, запускает установку и подтягивает скрипты запуска
# https://ipxe.org/wimboot
kernel wimboot
###########################################
# Неизменный блок для любого образа Windows
###########################################
initrd ${httpServer}/images/winpe/Boot/BCD BCD # Стандартный BCD WinPE
initrd ${httpServer}/images/winpe/Boot/boot.sdi boot.sdi # Стандартный boot.sdi WinPE
initrd ${httpServer}/images/winpe/boot.wim boot.wim # Стандартный boot.wim
initrd configWPE/winpeshl.ini winpeshl.ini # Конфиг запускающий скрипт установки.
###########################################
# Изменяемые данные в зависимости от образа
initrd configWPE/win10manager2021/install.bat install.bat # Скрипт установки образа
boot || goto error
goto start
#############################
# Утилиты загружаемые с iPXE
#############################
# Acronis images
:acronis2021x64
kernel ${httpServer}/images/utils/acr2021/dat10.dat initrd=dat11.dat initrd=dat12.dat vga=vesa MBRCRCS force_modules=usbhid quiet
initrd ${httpServer}/images/utils/acr2021/dat11.dat
initrd ${httpServer}/images/utils/acr2021/dat12.dat
boot || goto error
goto start
# Утилиты загружаются через Memdisk и доступны только для BIOS режима
:memtest
kernel memdisk || goto error
initrd ${httpServer}/images/utils/memtest86+-5.31b.iso || goto error
imgargs memdisk iso raw || goto error
boot || goto error
goto start
:victory
kernel memdisk || goto error
initrd ${httpServer}/images/utils/vcr35r.iso || goto error
imgargs memdisk iso raw || goto error
boot || goto error
goto start
:mhdd
kernel memdisk || goto error
initrd ${httpServer}/images/utils/mhdd32ver4.6.iso || goto error
imgargs memdisk iso raw || goto error
boot || goto error
goto start
:hddtools
kernel memdisk || goto error
initrd ${httpServer}/images/utils/hddtools.iso || goto error
imgargs memdisk iso raw || goto error
boot || goto error
goto start
:diskGenius
kernel memdisk || goto error
initrd ${httpServer}/images/utils/DiskGenius.iso || goto error
imgargs memdisk iso raw || goto error
boot || goto error
goto start
# Интерактивное меню редактирования конфигурация iPXE и сетевой карты
:config
config
goto start
# Командная строка iPXE
:shell
shell
goto start
:exit
echo Boot from disk...
sleep 2
exit
# При ошибках выход на командную строку
:error
echo Failed - have error
sleep 1
goto shell
##############################
Оглавление [13] Начало раздела [5]
После написания меню, необходимо подготовить загрузчики и пакеты загружаемых систем.
Разберу примеры:
Оглавление [13]
На стенде создаю папки:
mkdir -p /var/www/html/images/bullseye/install.amd # Для загрузчика, файлов ответа
mkdir -p /var/www/html/images/bullseye/postinstall # Для скриптов и пакетов пост-установки. Скачиваться будут благодаря команде в файле ответов
cd /var/www/html/images/install.amd/
Скачиваю ядро и пакет данных linux:
wget http://ftp.debian.org/debian/dists/stable/main/installer-amd64/current/images/netboot/debian-installer/amd64/linux
wget http://ftp.debian.org/debian/dists/stable/main/installer-amd64/current/images/netboot/debian-installer/amd64/initrd.gz
Скачиваю драйвера и встраиваю их в пакет ядра:
[ -f initrd.gz.orig ] || cp -p initrd.gz initrd.gz.orig
[ -f firmware.cpio.gz ] || wget http://cdimage.debian.org/cdimage/unofficial/non-free/firmware/stable/current/firmware.cpio.gz
cat initrd.gz.orig firmware.cpio.gz > initrd.gz
Создаю 2 файла ответов для debian-installer:
pxe_efi_preseed.cfg с разметкой диска под UEFI
pxe_pcbios_preseed.cfg с разметкой диска под Legacy
Кладу их по пути /var/www/html/bullseye/install.amd/:
[drwxr-xr-x 4.0K] bullseye
├── [drwxr-xr-x 4.0K] install.amd
│ ├── [-rw-r--r-- 138M] initrd.gz
│ ├── [-rw-r--r-- 6.5M] linux
│ ├── [-rw-r--r-- 15K] pxe_efi_preseed.cfg
│ └── [-rw-r--r-- 15K] pxe_pcbios_preseed.cfg
└──[drwxr-xr-x 4.0K] postinstall

Оглавление [13] Начало раздела [33]
Установки Windows через PXE как тачка на прокачку:
Запускаем PXE ->
Передаём управление iPXE ->
Передаём управление wimboot ->
Передаем управление WinPE ->
Устанавливаем Windows
Оглавление [13]
Но по порядку.
Для установки Windows понадобится wimboot - загрузчик для wim образов [34]. Умеет патчить BCD, работать с HTTP, переиспользовать память и т.д.
Скачиваю последнюю стабильную [35] версию и кладу рядом с другими загрузчиками /srv/tftp/wimboot
Следом понадобится чистый WinPE [36], а именно его
winpe/media/Boot/BCD
winpe/media/Boot/boot.sdi
winpe/media/sources/boot.wim
Для использования его как "оболочки" для запуска установки Windows.
Их необходимо будет распаковать в /var/www/html/images/winpe/
В каталог /srv/tftp/images/win10setup/ распаковываю образ установочного диска Windows и создаю там каталог wims - в неё будут складываться пакеты .wim образов и файлы ответов.
В неё кладу заранее подготовленные:
win10manager2021.wim - пакет корпоративного образа
autounattend_bios_manager.xml и autounattend_efi_manager.xml - файлы ответов к нему для UEFI и Legacy режимов.
Создаю каталоги:
/srv/tftp/configWPE/ - для складывания в него настроек для разных образов (по аналогии с Bullseye)
/srv/tftp/configWPE/win10manager2021/ - для непосредственно скрипта установки
Создаю файл /srv/tftp/configWPE/winpeshl.ini - конфигурация, которая передаваемая ядру и которая указывает, какой скрипт выполнить при запуске:
[LaunchApps]
"install.bat"
Создаю сам файл:
@echo off
echo wpeinit start
:: Инициализация среды WinPE
wpeinit
:: Задержка для гарантированного запуска сетевой карты и получение IP
echo We are waiting for 15 seconds for the network card to start
ping -4 -n 15 -w 1000 "">nul
ipconfig /renew
echo
echo wait 5 second pre-mount share folder with distr
ping -4 -n 5 1000 "">nul
::Монтирование каталога с установщиком Windows
net use Y: 10.0.2.5imageswin10setup /user:anonymous anonymous
:: Получение информации, в каком режиме запущен пк - UEFI или Legacy
echo check boot-mode
wpeutil UpdateBootInfo
for /f "tokens=2* delims= " %%A in ('reg query HKLMSystemCurrentControlSetControl /v PEFirmwareType') DO SET Firmware=%%B
:: В зависимости от режима выше - выбор нужного образа установки и файла ответов
echo start Setup win10
if %Firmware%==0x1 Y:sourcessetup.exe /unattend:Y:wimsautounattend_bios_manager.xml /installfrom:Y:wimswin10manager2021.wim
if %Firmware%==0x2 Y:sourcessetup.exe /unattend:Y:wimsautounattend_efi_manager.xml /installfrom:Y:wimswin10manager2021.wim
cmd.exe
При проверке установка успешно запускается (с ошибкой в конце, что на VM мало места, но не суть):

По итогу получается:
# Web-сервер
images
├── bullseye # Файлы образа Linux
│ ├── install.amd/ # Ядро и файлы ответов
│ └── postinstall/ # Скрипты и пакеты для пост-установки
├── photo # Необязательный каталог для фонов меню
│ ├── efi.png
│ └── pcbios.png
└── winpe # Файлы для запуска WinPE
├── BCD
├── boot.sdi
└── boot.wim
Tftp/Samba-серва
tftp
├── boot.ipxe # Установка переменных среды iPXE
├── configWPE # Хранилище конфигураций образов Windows
│ ├── win10manager2021
│ │ └── install.bat # Скрипт запуска установки, где меняются samba пути
│ └── winpeshl.ini # Общая для всех конфигурация, запускающая скрипт установки
├── images
│ └── win10setup # Каталог стандартного установочного диска Windows
│ ├── autorun.inf
│ ├── boot/
│ ├── bootmgr/
│ ├── bootmgr.efi
│ ├── efi/
│ ├── setup.exe
│ ├── sources/
│ ├── support/
│ └── wims/ # Пакеты *.wim и файлы ответов
│ ├── autounattend_bios_manager.xml
│ ├── autounattend_efi_manager.xml
│ └── win10manager2021.wim
├── ipxe.efi # Загрузчик для UEFI
├── menu.ipxe # Меню iPXE
├── undionly.kpxe # Загрузчик для Legacy
└── wimboot # Загрузчик для Windows
Оглавление [13] Начало раздела [6]
Для них на Web-сервере создал подкаталог /var/www/html/images/utils/ и складываю либо *.iso образы для запуска через Memdisk, либо передавая в качестве ядра соответствующие файлы (например Acronis [37])
Оглавление [13] Начало раздела [6]
По итогу получилась система с минимальным количеством файлов для заливки и добавления:
3 загрузчика (Legacy,UEFI,Windows)
3 файл WinPE для Windows
По 2-3 файла непосредственно образа
По 2 файла ответов на образ
По 1 скрипту пост-/установки на образ
Простое меню. Если убрать графику, парольную заглушку и оставить TUI - станет еще меньше.
Возможность работать с HTTP (..., iSCSI SAN, AoE SAN и т.д. [38]), что ускоряет загрузку.
Оглавление [13]
Ожидаю вашего мнения в комментариях
P.S. Первая статья и тонна мучений с редактором.
Использую Firefox, при нажатии на "/" в большинстве случаев ничего не появляется, либо стало появляться только после отключения всех AdBlock-еров.
Предпросмотра для ссылок нет - перепроверить ссылки внутри статьи не могу
В плане оформления помог плагин Unotes который конвертировал мой markdown в WYSIWYG, но потом вносил коррективы. Если что-то не будет работать - буду исправлять по мере обнаружения.
Автор: Данила Несин
Источник [39]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/linux/377702
Ссылки в тексте:
[1] Раз!: https://habr.com/ru/post/276941/
[2] Два!: https://habr.com/ru/company/mvideo/blog/670280/
[3] Подготовка стендового сервера: #1
[4] Сборка загрузчиков: #2
[5] Написание меню загрузки: #3
[6] Добавление образов debian, windows, утилит: #4
[7] Итог: #5
[8] Загрузочный сервер — как загрузочная флешка...: https://habr.com/ru/company/serverclub/blog/250549/
[9] TFTP: #11
[10] Samba: #12-samba
[11] Apache2: #13-apache2
[12] DHCP: #14
[13] Оглавление: #%D0%BE%D0%B3%D0%BB%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5
[14] Начало раздела: #12
[15] Начало раздела: #1-%D0%BF%D0%BE%D0%B4%D0%B3%D0%BE%D1%82%D0%BE%D0%B2%D0%BA%D0%B0-%D1%81%D1%82%D0%B5%D0%BD%D0%B4%D0%B0
[16] обратиться к документации: https://ipxe.org/howto/msdhcp
[17] Настройка DHCP для PXE: https://ipxe.org/howto/dhcpd
[18] Отдача нужного загрузчика: https://ipxe.org/howto/chainloading
[19] Список кодов DHCP сервера: https://www.iana.org/assignments/bootp-dhcp-parameters/bootp-dhcp-parameters.xhtml
[20] Загрузка пакетов: #21
[21] Скрипт стартовой настройки: #22
[22] Сборка загрузчиков: #23
[23] установить зависимости: https://ipxe.org/download
[24] указан тут: https://ipxe.org/buildcfg
[25] Создаю скрипт: https://ipxe.org/scripting
[26] Перечень, возможных команд: https://ipxe.org/cmd
[27] имени файла: https://ipxe.org/appnote/named_config
[28] целевой конфигурацией: https://ipxe.org/appnote/buildtargets
[29] ошибок в gcc: https://forum.ipxe.org/showthread.php?tid=14933
[30] Linux: #41-%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-linux
[31] Windows: #42-%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-windows
[32] Утилиты: #43
[33] Начало раздела: #4-%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%D0%BE%D0%B2-linux-windows-%D1%83%D1%82%D0%B8%D0%BB%D0%B8%D1%82
[34] wimboot - загрузчик для wim образов: https://ipxe.org/wimboot
[35] Скачиваю последнюю стабильную: https://github.com/ipxe/wimboot/releases
[36] понадобится чистый WinPE: https://docs.microsoft.com/ru-ru/windows-hardware/manufacture/desktop/download-winpe--windows-pe?view=windows-10
[37] например Acronis: https://community.synology.com/enu/forum/17/post/50448?reply=191244
[38] ..., iSCSI SAN, AoE SAN и т.д.: https://ipxe.org/start
[39] Источник: https://habr.com/ru/post/681142/?utm_source=habrahabr&utm_medium=rss&utm_campaign=681142
Нажмите здесь для печати.