Описание настройки собственного PXE сервера на основе TFTPD32 для загрузки WinPE или BartPE.(WIM Загрузка)
Это продолжение статьи "Сетевая загрузка PXE на основе TFTPD32 ", поэтому я не буду описывать краткое изложение предыдущей части, а напишу ключевые особенности загрузки WIM сборок по сети.
Подготовка файлов
Создадим каталог для сетевой установки C:\PXE. Внутри создадим каталог, например WinPE.
При сетевой загрузке WinPE WIM будет происходить передача файлов только по протоколу TFTP. А не в два этапа как в предыдущей статье.
Подготовка сборки WinPE для загрузки по сети
Копируем WIM файл сборки(BootSDI.wim или WinPE.wim) в каталог C:\PXE\WinPE
Копируем из сборки файл ntdetect.com (если он присутствует) в каталог C:\PXE
Разархивируем файл (из дистрибутива Windows XP/Windows 2003) startrom.n1_ в каталог C:\PXE. Сделать это можно с помощью архиватора 7-zip или команды:
expand D:\WINXP\I386\startrom.n1_ С:\PXE\WinPE\startrom.n12
Следует переименовать startrom.n12 в startrom.0
Также потребуется специальный загрузчик PXELDR-WIM-291 или PXELDR-WIM-337, последний отличается встроенный ntdetect.com. Поэтому не расстраивайтесь если не найдете его в сборке. Загрузчик следует переименовать в NTLDR и положить в каталог C:\PXE
При работе с локализированной сборкой рекомендуется копировать файл bootfont.bin из сборки в каталог C:\PXE.
Распаковываем каталог tftpd32 в C:\PXE
Настройка TFTP сервера (TFTPD32)
Сначала для удобства следует отключить не нужные сервисы, оставив только "TFTP Server" и "DHCP Server". Затем следует указать каталог, в котором TFTP сервер будет искать файлы. За это отвечает параметр "Base Directory". В нашем случае это C:\PXE. Также следует включить "Option negotiation", "Allow '\' As virtual root" и "Translate Unix file names". Остальные опции выключены.
Настройке DHCP сервера (TFTPD32)
Для загрузки по сети DHCP должен присвоить IP адрес и указать имя загружаемого файла.
Предположим на компьютере, который выступает в роли PXE сервера, присвоен IP адрес 192.168.0.1 с маской сети 255.255.255.0. Параметр "IP Pool starting address" указывает начальный IP адрес, с которого DHCP будет начинаться выдавать адреса. Установим значение в 192.168.0.10. Параметр "Size of pool" указывает, сколько компьютеров могут получить IP адреса от TFTPD32. Установим значение в 10. Параметр "Boot File" указывает, какой файл необходимо загрузить. В нашем случае это startrom.0. Если на компьютере несколько сетевых подключений, тогда рекомендуется включить опцию "Bind DHCP to this address" и указать наш IP 192.168.0.1.
Подготовка файла winnt.sif
Для загрузки WinPE также потребуется файл C:\PXE\winnt.sif который можно взять или из сборки или написать самостоятельно с таки содержимым:
[SetupData]
BootDevice="ramdisk(0)"
BootPath="\i386\System32\"
OsLoadOptions="/fastdetect /minint /noguiboot /rdimageoffset=8192 /rdimagelength=3161088 /rdpath=WinPE\winpe.wim"[UserData]
ComputerName = *
Заключение
В этой части я опишу особенности с которыми Вы можете столкнутся при создании сетевой загрузки.
Дело в том что многие авторы используют нестандартные имена каталогов и это может стать настоящей проблемой.
Итак, файл:
startrom.0 имеет ссылку на файл NTLDR, и если у вас файлов несколько или файл NTLDR имеет другое имя это нужно учесть.(Имеет значение только при мультизагрузке)
NTLDR содержит I386, ntdetect.com и winnt.sif (при загрузке россыпи имеет значение только I386, при мультизагрузке ntdetect.com и winnt.sif, при WIM загузке ничего менять не нужно)
Чтобы произвести нужные модификации нужно иметь HEX редактор или следующие утилиты:
rep.vbs: cscript rep.vbs c:\pxe\startrom.0 ntldr c:\pxe\startrom.0 ntldm /force (замена ntldr на ntldm в файле startrom.0)
gsar: gsar -o "-sI386" "-rY386" "C:\pxe\NTLDR" (Утилита регистрочувствительна, поэтому требует замену дважды, один раз в верхенм регистре и один раз в нижнем)
gsar -o "-si386" "-ry386" "C:\pxe\NTLDR"
Обе утилиты, два загрузчика PXELDR-WIM, также TFTPD32 Вы сможете найти во вложении ниже.