Программы, ОС, их настройка и установка Описание процесса установки Windows XP на компьютеры с помошью локальной сети. То для чего Microsoft устанавливает RIS в этой статье рассмотренно с помощью бесплатных программ.Установка Windows XP по сети позволяет сократить время на развертывание системы. Особенно это заметно при установке на несколько компьютеров.
Введение
Описанный здесь процесс напоминает установку операционной системы с помощью 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
E:\NETBOOT\WINXPSP2\INSTALL\I386\net*.in_ -r -f:*.inf E:\NETBOOT\WINXPSP2\DRIVERS
я получил распакованные файлы net*.inf.
Далее мне необходимо найти файлы драйверов (*.SYS) в файлах net*.inf. Поиск выполняю с помощью команды:
for %i in (E:\NETBOOT\WINXPSP2\DRIVERS\*.inf) do type %i | findstr ".sys,,," >>E:\NETBOOT\WINXPSP2\DRIVERS\list
. Однако файл list еще не пригоден к дальнейшему использованию. Его необходимо почистить, другими словами убрать ",,,2". Сделать это мне поможет команда
for /F "delims=," %f in (E:\NETBOOT\WINXPSP2\DRIVERS\list) do echo %f >>E:\NETBOOT\WINXPSP2\DRIVERS\list.txt
.
Примечание. Две вышеперечисленных команды должны быть выполнены командным интерпретатором cmd.exe. Если же команды выполняются через "Start -> Run" ("Пуск -> Выполнить"), то их необходимо изменить к следующему виду
cmd /c "for %i in (E:\NETBOOT\WINXPSP2\DRIVERS\*.inf) do type %i | findstr ".sys,,," >>E:\NETBOOT\WINXPSP2\DRIVERS\list"
и
cmd /c "for /F "delims=," %f in (E:\NETBOOT\WINXPSP2\DRIVERS\list) do echo %f >>E:\NETBOOT\WINXPSP2\DRIVERS\list.txt"
соответственно.
Выполнив все вышеперечисленные команды, я получил список файлов, которые содержат драйвера для сетевых карт. Осталось только извлечь их из файла driver.cab. Для извлечения я сначала создаю каталог E:\NETBOOT\WINXPSP2\DRIVERS\SYS. Затем с помощью команды
for /f %i in (E:\NETBOOT\WINXPSP2\DRIVERS\list.txt) do expand E:\NETBOOT\WINXPSP2\INSTALL\I386\driver.cab -r -f:%i 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. Теперь необходимо сформировать базу ответов. Для этого выполняю команду:
infparser.py E:NETBOOTWINXPSP2DRIVERS
Теперь запускаю BINL, с помощью программы binlsrv.py.
Автоматизация процесса установки. Файл ответов winnt.sif
Для автоматической установки в каталоге E:NETBOOTWINXPSP2 создаю файл winnt.sif.
[data]
AutoPartition=0
MsDosInitiated=1
UnattendedInstall="Yes"
floppyless="1"
LocalSourceOnCD=1
OriSrc="192.168.200.1netbootWINXPSP2I386"
OriTyp="4"
[SetupData]
OsLoadOptions = "/noguiboot /fastdetect"
SetupSourceDevice = "DeviceLanmanRedirector192.168.200.1WINXPSP2INSTALL"
[RemoteInstall]
Repartition = No
UseWholeDisk = No
[Unattended]
AutoActivate=No
DUDisable = Yes
CrashDumpSetting=0
DriverSigningPolicy=Ignore
FactoryMode=No
FileSystem=*
Repartition=No
OemPreinstall=Yes
OemSkipEula=Yes
TargetPath=windows
UnattendMode=FullUnattended
UnattendSwitch=Yes
WaitForReboot=No
NtUpgrade=No
OverwriteOemFilesOnUpgrade=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
[WindowsFirewall]
Profiles = WindowsFirewall.TurnOffFirewall
[WindowsFirewall.TurnOffFirewall]
Mode = 0
[TerminalServices]
AllowConnections=0
[PCHealth]
RA_AllowToGetHelp=0
Ну вот и все. Теперь можно приступать к установке операционной системы.