PXELINUX и новые возможности установки Windows
Подготовка файлов для установки Windows XP (платформа x86 и x64)
Подготавливаем файл startrom.n12 (startrom.com)
Для начала хочу напомнить, что разница между файлами startrom.com и startrom.n12, состоит в требовании нажатия для установки клавишу F12. Так как это требование в нашем случае лишнее, то в дальнейшем будет использоваться файл startrom.n12.
Во-первых, необходимо переименовать startrom.n12 в startrom.0.
Внимание! Расширение обязательно должно быть 0 (цифра нуль).
Во-вторых, необходимо внутри этого файла произвести замену ntldr на 001dr. Имя файла может быть любым. Главное, чтобы количество символов в именах файлов совпадало.
К сожалению, в Windows XP нет стандартных утилит, которые могут произвести замену содержимого файла, но зато есть язык программирования VBScript, входящий в состав операционной системы. С помощью этой программы (rep.vbs) можно выполнить все необходимые преобразования.
Редактируем файл c:\netboot\winxp\startrom.0, заменяя ntldr на 001dr.
cscript rep.vbs c:\netboot\winxp\startrom.0 ntldr c:\netboot\winxp\startrom.0 001dr /force
Аналогично поступаем с файлом startrom.n12 от Windows XP Professional x64. Только на этот раз ntldr меняем на 002dr.
cscript rep.vbs c:\netboot\winxp64\startrom.n12 ntldr c:\netboot\winxp64\startrom.0 002dr
Подготавливаем файл ntldr
Теперь займемся файлом c:\netboot\winxp\ntldr. Как вы уже догадались, он должен быть переименован в 001dr. Также в нем необходимо заменить winnt.sif на 001nt.sif, а ntdetect.com на 001etect.com. Кроме того этот файл должен находиться в каталоге c:\netboot.
Редактируем файл c:\netboot\winxp\ntldr, заменяя winnt.sif на 001nt.sif и сохраняем его, как 001dr в каталоге c:\netboot.
cscript rep.vbs c:\netboot\winxp\ntldr winnt.sif c:\netboot\001dr 001nt.sif
Редактируем файл c:\netboot\001dr, заменяя ntdetect.com на 001etect.com.
cscript rep.vbs c:\netboot\001dr ntdetect.com c:\netboot\001dr 001etect.com /force
Аналогичную операцию проводим и с 64-битной версией Windows XP Professional.
Редактируем файл c:\netboot\winxp64\ntldr, заменяя winnt.sif на 002nt.sif с сохранением результата в файле c:\netboot\002dr.
cscript rep.vbs c:\netboot\winxp64\ntldr winnt.sif c:\netboot\002dr 002nt.sif
Редактируем файл c:\netboot\002dr, заменяя ntdetect.com на 002etect.com.
cscript rep.vbs c:\netboot\002dr ntdetect.com c:\netboot\002dr 002etect.com /force
Меняем порт BINL
64-битная версии Windows XP требует совершенно другие драйвера в отличие от 32 битной, но информацию о них по-прежнему спрашивает у BINL (binlsrv.py). А BINL работает по протоколу UDP и висит на порту номер 4011. Соответственно второй экземпляр, но уже с информацией о 64 битных драйверах, запустить на этом же порту не получится.
Но на этот случай автор ris-linux , многоуважаемый Gianluigi Tiesi, ввел специальный ключ (–p), который сообщает binlsrv.py, какой использовать порт. Но запуск самого binlsrv.py с указанием другого порта не достаточно. Так как необходимо еще и загрузчик Windows XP/2003 упросить общаться с BINL по другому порту. В целях удобства изложения я буду настраивать загрузчик 64-х битной версию Windows XP на порт 4012.
Внимание! Перед тем как настраивать порт рекомендую проверить, не занят ли он. Сделать это можно, например командой netstat -p UDP -n -a |findstr /C:":4012". Пустой вывод говорит о свободности порта.
Для этого необходимо опять же отредактировать файл 002dr (новое название ntldr). Сделать это можно с помощью binlport.vbs - специально написанной для этих целей программы на VBScript.
cscript binlport.vbs c:\netboot\002dr 4012
Подготавливаем файл winnt.sif
Займемся файлом c:\netboot\winxp\winnt.sif. Во-первых, его необходимо отредактировать, изменив значения параметров OriSrc и SetupSourceDevice.
OriSrc="\\192.168.200.1\netboot\winxp\I386" SetupSourceDevice="\Device\LanmanRedirector\192.168.200.1\netboot\WINXP\INSTALL"
Напомню, 192.168.200.1 это IP адрес нашего сервера. Если используете другую адресацию, то необходимо это значение изменить.
Во-вторых, его нужно переименовать в 001nt.sif и переместить в каталог c:\netboot. Сделать это можно, например, командой
move c:\netboot\winxp\winnt.sif c:\netboot\001nt.sif
Аналогично поступаем и с Windows XP Professional x64
Только файл переименовываем в 002nt.sif и меняем содержимое.
move c:\netboot\winxp64\winnt.sif c:\netboot\002nt.sif
Содержимое файла 002nt.sif
OriSrc="\\192.168.200.1\netboot\winxp64\I386" SetupSourceDevice = "\Device\LanmanRedirector\192.168.200.1\ netboot\WINXP64\INSTALL"
Внимание! Параметр OriSrc в процессе инсталляции не участвует. Но его значение прописывается в реестре установленной системы и используется в случае до установки каких-либо компонентов.
Подготавливаем файл ntdetect.com
Займемся сначала файлом c:\netboot\winxp\ntdetect.com. Его необходимо переименовать в 001etect.com и перенести в каталог c:\netboot. Например, командой move /Y c:\netboot\winxp\ntdetect.com c:\netboot\001etect.com.
Похожим образом поступаем и с файлом для 64-битной версии Windows XP Professional. Только новое имя у него будет 002etect.com. Сделать это можно командой move /Y c:\netboot\winxp64\ntdetect.com c:\netboot\002etect.com.
Что получилось
Когда компьютер загрузит по протоколу TFTP файл \winxp\startrom.0, то автоматически будут загружены файлы \001dr, \001etect.com и \001nt.sif, а также дальнейшая загрузка файлов из каталога c:\netboot\winxp\install.
В случае установки Windows XP x64, то последовательность загрузки будет следующей. Сначала файл \winxp64\startrom.0. Затем \002dr, \002etect.com и \002nt.sif, с последующей загрузкой файлов из каталога c:\netboot\winxp64\install.