Установка Windows XP по сети. RIS, но не Microsoft.
Описанный здесь процесс напоминает установку операционной системы с помощью RIS от Microsoft. Однако технология RIS ориентирован на крупные сети с большим количеством компьютеров и для своей работы требует наличие Active Directory (доменная организации сети), что в свою очередь требует использования операционных систем Windows 2000 Server и Windows 2003. В этой статье я опишу способ установки Windows XP по сети, но не требующей домена, достаточно только включить компьютеры в сеть.
PXE и процесс загрузки по сети
PXE это стандарт, который начал разрабатывать Intel. Потом к разработке PXE подключились такие гиганты, как 3Com, HP, Dell, Compaq.
PXE работает только с сетевыми картами, и позволяет превратить сетевую карту в загружаемое устройство, такое же, как дисковод или жесткий диск.
Для организации сетевой загрузки потребуется программное обеспечение: DHCP сервер и TFTP сервер.
Процесс загрузки по сети можно описать примерно так. Как только включается компьютер, начинает работать PXE загрузчик, который находится в boot ROM сетевого адаптера. Сетевая карта получает IP адрес. IP адрес выдается DHCP сервером. Также DHCP сервер сообщает IP-адрес TFTP сервера и имя загрузочного файла. После получения этой информации сетевая карта обращается к TFTP серверу и загружает файл. Загрузив файл, PXE прекращает свою работу и передает управление загруженной программе.
А что делать, если у сетевой карты отсутствует boot ROM? На помощь нам придет утилита, которая входит в дистрибутив Windows 2000 Server и Windows 2003, под названием «Microsoft Windows Remote Boot Disk Generator» (rbfg.exe). С помощью этой программы создается загрузочная дискета, которая позволяет сетевой карте работать с PXE, т.е. производить загрузку по сети. К сожалению, у этой утилиты ограничена поддержка только 32 сетевыми адаптерами. Если Вы не нашли свою сетевую карту в списке поддерживаемых устройств, то тогда стоит обратить внимание на сайт ROM-o-matic.net. На момент написания статьи этот сайт поддерживал 279 сетевых адаптеров.
Подготовка каталогов и файлов
Сначала я создаю директорию E:NETBOOT. В ней создаю каталог WINXPSP2. Создаю в каталоге E:NETBOOTWINXPSP2 директорию INSTALL. В этом каталоге будет находиться дистрибутив Windows XP. А также, если используется, и папка $OEM$.
Теперь этот каталог необходимо сделать доступным по сети (расшарить). Для этого нажимаем правую клавишу мыши на папке с именем «WINXPSP2» и выбираем пункт «Sharing and Security: (Общий доступ и безопасность:)». В появившемся окне:
выбираю пункт «Share this folder (Открыть общий доступ к этой папке)» в поле «Share name: (Общий ресурс)» указываю «WINXPSP2». Этой папке необходимо предоставить права для группы «Everyone (Все)» только «Read (Чтение)».
Если директория WINXPSP2 находится на разделе с файловой системой NTFS, то необходимо в свойствах этого каталога в «Security (Безопасность)» также добавить группу «Everyone (Все)». Этой группе необходимо разрешить чтение.
Также необходимо убедиться, что учетная запись «Guest (Гость)» активирована.
Подготовка дистрибутива Windows XP для установки по сети
Из дистрибутива Windows XP в каталог E:NETBOOTWINXPSP2 копирую файлы ntdetect.com, setupldr.ex_, startrom.co_, startrom.n1_. Теперь необходимо распаковать файлы setupldr.ex_, startrom.co_, startrom.n1_ с помощью команд:
expand setupldr.ex_ ntldr
expand -r startrom.co_
expand -r startrom.n1_
Примечание. Если необходимо установить русскую версию Windows XP, то необходимо еще из дистрибутива в каталог E:\NETBOOT\WINXPSP2 скопировать файл bootfont.bin. Это позволит во время инсталляции отображать на русском языке название загружаемых драйверов.
Теперь файлы setupldr.ex_, startrom.co_, startrom.n1_ мне больше не нужны их можно удалить с помощью команды del *.*_. Результат манипуляций с файлами:
Теперь необходимо распаковать драйвера для сетевых карт. Создаю каталог E:\NETBOOT\WINXPSP2\DRIVERS. С помощью команды expand
я получил распакованные файлы net*.inf.
Далее мне необходимо найти файлы драйверов (*.SYS) в файлах net*.inf. Поиск выполняю с помощью команды:
Примечание. Две вышеперечисленных команды должны быть выполнены командным интерпретатором cmd.exe. Если же команды выполняются через «Start -> Run» («Пуск -> Выполнить«), то их необходимо изменить к следующему виду
Выполнив все вышеперечисленные команды, я получил список файлов, которые содержат драйвера для сетевых карт. Осталось только извлечь их из файла driver.cab. Для извлечения я сначала создаю каталог E:\NETBOOT\WINXPSP2\DRIVERS\SYS. Затем с помощью команды
я извлекаю файлы драйверов из driver.cab в каталог E:\NETBOOT\WINXPSP2\DRIVERS\SYS.
Добавление поддержки новых сетевых адаптеров
Внимание! Здесь описано как в text-mode Setup.(текстовом режиме установки) Windows XP включить поддержку новых сетевых карт.
Marvell Yukon Ethernet Controller
С сайта производителя скачиваю драйвер. Распаковываю архив yk51x86.zip. Файл yk51x86.inf копирую в E:\NETBOOT\WINXPSP2\DRIVERS, а файд yk51x86.sys в E:\NETBOOT\WINXPSP2\DRIVERS\SYS.
Broadcom NetLink Ethernet controller (5781, 5786, 5787, 5788, 5789)
С сайта производителя скачиваю драйвер. Распаковываю архив win_xp_2k3_32-9.81d.zip.
Непонятно по какой причины Broadcom в своих драйверах для Windows XP/2003 оставляют описание установки для Windows 2000. Для корректной дальнейшей обработки файла b57win32.inf необходимо его отредактировать. Необходимо найти строку [Broadcom] и заменить ее на [Bbroadcom].
Файл b57win32.inf копирую в E:\NETBOOT\WINXPSP2\DRIVERS, а файд b57xp32.sys в E:\NETBOOT\WINXPSP2\DRIVERS\SYS.
В завершении осталось только файлы из каталога SYS скопировать в E:\NETBOOT\WINXPSP2\INSTALL\I386.
Настройка программы TFTPD32 и RIS-LINUX
Программа TFTPD32 представляет собой TFTP сервер/клиент, BOOTP/DHCP сервер, SNTP сервер и SYSLOG сервер. Из всех возможностей программы мне понадобится только DHCP и TFTP сервер.
Настройка TFTP сервера (TFTPD32)
Сначала в поле «Base Directory» я указываю директорию, где находится загружаемые файлы Windows XP. Эта директория E:NETBOOTWINXPSP2. Затем я отключаю не нужные режимы, оставляю только «TFTP Server» и «DHCP Server«. Далее «TFTP Security» устанавливаю в режим «None«. Включаю режим «Allow ‘/’As virtual root«. С этими настройками TFTP сервер готов к работе.
Настройке DHCP сервера (TFTPD32)
Ниже перечислены параметры DHCP сервера.
IP Pool starting address
указываю с какого IP адреса будет начинаться диапазон выдачи IP адресов. Так как моя сетевая карта имеет IP адрес 192.168.200.1 (server interface), то началом диапазона будет являться адрес 192.168.200.10
Size of pool
длина диапазона динамических IP адресов. Я выбрал 1. Если необходимо одновременно устанавливать Windows XP на несколько компьютеров, то это число необходимо увеличить
Boot File
Имя загружаемого файла. В каталоге E:NETBOOTWINXPSP2 находится два файла загрузчика startrom.com и startrom.n12. Первый файл (startrom.com) для начало процесса инсталляции потребует нажатия F12, второй файл (startrom.n12) не требует. Я выбрал файл startrom.n12
Mask
Указал маску подсети 255.255.255.0
Настройка программы RIS-LINUX
Во время установки Windows XP должна получить информацию, какой драйвер для сетевой платы она должна использовать. Эту информация предоставляет служба BINL. В качестве BINL я буду использовать программу ris-linux. Эта программа написана на языке Python и по этому необходимо еще установить интерпретатор этого языка в Windows XP. В качестве интерпретатора буду использовать Python.
Распаковываю ris-linux в каталог E:NETBOOTRIS-LINUX. Теперь необходимо сформировать базу ответов. Для этого выполняю команду:
Теперь запускаю BINL, с помощью программы binlsrv.py.
Автоматизация процесса установки. Файл ответов winnt.sif
Для автоматической установки в каталоге E:NETBOOTWINXPSP2 создаю файл winnt.sif.
[SetupData]OsLoadOptions = «/noguiboot /fastdetect»SetupSourceDevice = «DeviceLanmanRedirector192.168.200.1WINXPSP2INSTALL» [RemoteInstall]Repartition = No
UseWholeDisk = No [UserData]FullName = «USER»
OrgName = «HOME»
ComputerName = *
ProductKey=»xxxxx-xxxxx-xxxxx-xxxxx-xxxxx» [RegionalSettings]LanguageGroup = 1,5
SystemLocale = 00000419
UserLocale = 00000419
InputLocale = 0409:00000409,0419:00000419 [GuiUnattended]OemSkipWelcome = 1
OemSkipRegional = 1
TimeZone = 130
AdminPassword = «*»
AutoLogon = Yes
AutoLogonCount=1
EncryptedAdminPassword=No [Display]BitsPerPel = 16
XResolution = 800
YResolution = 600
VRefresh = 60
Ну вот и все. Теперь можно приступать к установке операционной системы.
Персональный блог Толика Панкова
Стихи, рассказы, философия, IT, политика, панкизм, раздолбайство и болтовня.
Вчера в Чертаново вежливый человек в военной экипировке предложил немедленно запретить пропаганду неизвестного, одетого в костюм Микки-Мауса
Установка Windows XP из Mini Windows XP по сети (PXE). Без геморроя с загрузчиками и драйверами.
В прошлой заметке Копия мы делали так, чтобы можно было грузить по сети Mini Windows XP из Hiren’s Boot CD 15.2.
Такой способ запуска Mini Windows XP заодно избавляет от необходимости подгружать с помощью BINL необходимые драйвера сетевых карт и ебли с загрузчиками. А значит, можно поставить и «большую» XP. По сети.
Сделаем на нашем сервере отдельную шару под дистрибутив XP, у меня она уже была, т.к. раньше я тоже использовал немного другой способ установки XP с помощью специального Linux-окружения, но там надо было нажимать больше кнопок и вводить серийный номер. Поэтому в примере будет длинный и странный путь к шаре.
Прописываем в /etc/samba/smb.conf
Копируем в шару файлы с дистрибутива XP.
Обратите внимание, чтобы все успешно сработало, права на файлы должны быть установлены в 755.
Готовим файл ответов unattend.txt
Файл ответов — это специальный файл, который помогает автоматизировать установку Windows. Файл ответов Windows XP представляет собой обычный INI-файл, поэтому его можно сделать и вручную, но можно и автоматически. В комплект поставки самой Windows XP входит файл setupmgr.exe С установочного диска распаковываем в отдельный каталог из файла Support\Tools\deploy.cab файлы setupmgr.exe, ref.chm и setupmgr.chm .
В файле ref.chm хранится справка по параметрам файла ответа, может пригодиться, чтоб подправить вручную файл ответов.
Запускаем setupmgr.exe .
Далее несколько раз все оставляем по умолчанию:
Указываем, что не надо создавать отдельное хранилище для дистрибутива
Далее вводим имя пользователя и организацию, и больше не нажимаем «Далее», ходим по дереву в левой части окна и настраиваем то, что надо.
Внимание! Если вы создаете файл ответов для XP из версии выше, чем сама XP (Vista, 7, 8, 8.1, 10), то не открывайте «Часовой пояс», setupmgr.exe попытается узнать текущую информацию в Реестре Windows и упадет.
После завершения работы мастера, в каталоге с мастером найдем файл unatted.txt и немного его исправим.
Внимание! Править файл надо в редакторе, поддерживающим переносы строк Windows/DOS (CR+LF)
Например, добавим в секцию [UserData] параметр ProductID , содержащий лицензионный ключ, чтоб не надо было его вводить при установке. А добавление в секцию [Data] параметр OemSkipEula =Yes , чтоб не подтверждать принятие лицензионного соглашения во время установки, почему-то у меня не сработало.
Создаем BAT-файл для запуска установки
Алгоритм работы данного BAT-файла таков:
1. Проверить, есть ли по необходимому пути файл winnt32.exe
2. Если нет, подключить шару.
3. Подождать
4. Выполнить winnt32.exe с необходимыми параметрами.
Пример файла xpinstall.bat :
SET NETADDR=\\192.168.0.20\unatdistr
SET NETDRIVE=Z
SET INSTALLPATH=\os\winxp\
SET UNATTEND=W:\scripts\unattend.txt
SET SYSDRIVE=D
if exist %NETDRIVE%:%INSTALLPATH%i386\winnt32.exe goto INSTALL
net use %NETDRIVE%: %NETADDR%
sleep 5
:INSTALL
%NETDRIVE%:
cd %INSTALLPATH%
i386\winnt32.exe /s:%NETDRIVE%:%INSTALLPATH%i386 /syspart:%SYSDRIVE% /tempdrive:%SYSDRIVE% /unattend:%UNATTEND%
pause
В принципе, в самом файле нет ничего интересного, но есть момент, на котором стоит остановиться. Это параметры запуска winnt32.exe :
/s: — путь к файлам дистрибутива, обязательно в конце указывайте каталог i386 , иначе не сработает.
/syspart: — раздел, на который будет установлена ОС.
/tempdrive: — раздел для временных файлов, он обязательно и под той же буквой должен быть доступен, как из WinPE, так и после перезагрузки. Вообще лучше всего поставить тот же раздел, что и системный. Установщик потом сам потрет все лишнее.
/unattend: — путь к файлу автоматизации установки ( unattend.txt )
После двоеточий пробелы НЕ НУЖНЫ!
Полученный BAT-файл нужно положить в шару hbcdshare , созданную в прошлой статье, например в отдельный каталог scripts вместе с утилитой sleep и файлом unattend.txt , права исполняемым файлам надо установить в 755.
chmod 755 xpinstall.bat
chmod 755 sleep.exe
Минус данного способа. Перед установкой ОС, соответствующий раздел, указанный в параметрах /syspart и /tempdrive должен быть отформатирован и доступен из WinPE, а также этот раздел должен быть активным.
После запуска данного BAT-файла запустится программа установки, которая скопирует содержимое дистрибутива XP на жесткий диск, установит загрузчик, после чего необходимо будет перезагрузиться уже с жесткого диска, и продолжить установку.
Минус в использовании шары и скрипта запуска установщика с нее, в том, что если нужно поменять букву диска для установки, или адрес самой шары, то придется лопатить батник из Linux (шара для безопасности доступна в режиме Read Only).
Чтобы это можно было как-то побороть, наскриптил небольшую утилиту InstallGenerator. При необходимости что-то поменять вживую, можно запустить ее, указать другие пути для сохранения конфигов, адреса шары и других параметров.
Поступить также, положить в отдельный каталог в шаре для WinPE и поставить в каталоге права 755 (или 777).
При зппуске InstallGenerator из WinPE появится следующее окно:
Здесь можно будет выбрать нужные опции. Программа сгенерирует BAT-файл, скопирует файлы в указанное расположение, и, при необходимости, запустит скрипт.
Для генерации скрипта, программа берет данные из файла script.txt, так что его можно всегда подправить. Программа лишь заменяет строки между ! и # на соответствующие значения внутренних переменных.
Впрочем, я внедрил утилиту в готовый образ, который можно скачать ниже. Там никакие права менять не надо.
Скриншоты установки Windows XP из образа Mini Windows XP. И некоторые пояснения
Этап #1 — копирование файлов установки на целевой раздел.
Этап #2 — первый этап установки (текстовый) с жесткого диска.
Этап #3 — второй этап установки (графический) с жесткого диска. Тут надо будет все-таки подтвердить установку и принять лицензионное соглашение, а дальше все пойдет гладко