Установка Windows XP по сети. RIS, но не Microsoft

Подготовка каталогов и файлов

На диске C создадим корневой каталог для сетевой установки с именем NETBOOT. Внутри этой папки создадим каталог WINXP.

В каталоге C:\NETBOOT\WINXP создаю каталог INSTALL. В этом каталоге будет находиться инсталляция Windows XP. А также, папка $OEM$ (Рисунок 1).

Сетевую установку Windows XP я разделил на два этапа. На первом этапе происходит загрузка файлов по протоколу TFTP. А на втором этапе файлы загружаются по протоколу CIFS (старое название SMB). Протокол CIFS более известен, как общий доступ к файлам и принтерам сети Microsoft (File and Printer Sharing for Microsoft Network).

Поэтому для второго этапа установки каталог C:\NETBOOT\WINXP нужно сделать доступным по сети (расшарить) для группы "Everyone (Все)" с правами только чтения.

Для этого в Проводнике нажимаем правую клавишу мыши на папке с именем "WINXP" и выбираем "Sharing and Security (Общий доступ и безопасность)". В появившемся окне (Рисунок 2) выбираем пункт "Share this folder (Открыть общий доступ к этой папке)" в поле "Share name: (Общий ресурс)" вводим "WINXP". Этой папке необходимо предоставить права "Read (Чтение)" для группы "Everyone (Все)". Для этого, не закрывая предыдущего окна, нажимаем кнопку "Permissions (Разрешения)". В появившемся окне нажимаем кнопку "Add (Добавить)". В поле "Enter the object names to select (Введите имена выбираемых объектов)" вводим "Everyone (Все)" и нажимаем кнопку OK. В поле "Permissions for Everyone (Разрешения для Все)" устанавливаем флажок на разрешить чтение (Рисунок 3) и нажимаем OK. Для применения параметров общего доступа повторно нажимаем кнопку OK.

Также необходимо убедиться, что учетная запись "Guest (Гость)" активирована.

Для этого нажимаем, правую клавишу мыши на "My Computer (Мой компьютер)" и выбираем "Manage (Управление)". Раскрываем "System Tools (Служебные программы)", "Local Users and Groups (Локальные пользователи и группы)". Выбираем "Users (Пользователи)". В правой части экрана нажимаем правую клавишу мыши на "Guest (Гость)" и выбираем "Properties (Свойства)". В появившемся окне убираем флажок с "Account is disabled (Отключить учетную запись)" и нажимаем кнопку OK (Рисунок 4).

Если директория WINXP находится на разделе с файловой системой NTFS, то необходимо в свойствах этого каталога в "Security (Безопасность)" также добавить группу "Everyone (Все)". Этой группе необходимо разрешить чтение.

Для этого в Проводнике нажимаем правую клавишу мыши на папке с именем "WINXP" и выбираем "Sharing and Security (Общий доступ и безопасность)". В появившемся окне Рисунок 2) выбираем закладку "Security (Безопасность)" и нажимаем кнопку "Add (Добавить)". В поле "Enter the object names to select (Введите имена выбираемых объектов)" вводим "Everyone (Все)" и нажимаем кнопку OK. В поле "Permissions for Everyone (Разрешения для Все)" устанавливаем флажок на разрешить "Read & Execute (Чтение и выполнение)", "List Folder Contents (Список содержимого папки)", "Read (Чтение)" (Рисунок 5). Для применения параметров нажимаем кнопку OK.

Также следует убедиться, что не запрещен доступ пользователя "Guest (Гость)" по сети в групповой политике.

Для этого нажимаем "Start (Пуск)", выбираем "Control Panel (Панель управление)", "Administrative Tools (Администрирование)". В появившемся окне выбираем "Local Security Policy (Локальная политика безопасности)". После загрузки оснастки "Local Security Settings (Локальные параметры безопасности)", разворачиваем "Local Policies (Локальные политики)" и выбираем "User Rights Assignments (Назначение прав пользователя)". В правой части нажимаем дважды левую клавишу мыши на "Deny access to this computer from the network (Отказ в доступе к компьютеру по сети)". В появившемся списке отмечаем "Guest (Гость)" и нажимаем кнопку "Remove (Удалить)". Для подтверждения изменений нажимаем кнопку удалить.

Подготовка дистрибутива Windows XP для установки по сети

Из дистрибутива Windows XP копируем каталог I386 в C:\NETBOOT\WINXP\INSTALL\.

А как поступить с 64 битной версией Windows?

Как Вы уже заметили, в дистрибутиве 64 битных версий находится два каталога I386 и AMD64. И оба эти каталога должны быть скопированы в C:\NETBOOT\WINXP\INSTALL. Но при таком расположении каталогов у нас установка по сети работать не будет. Причина, в том, что загрузчик 64 битной версии Windows на первом этапе установке (загрузка файлов с TFTP сервера) не видит каталога AMD64, но хочет загрузить файлы, которые там находятся. А на втором этапе установке загрузка файлов идет, как и из AMD64, так и из I386. Выход из данной ситуации очевиден. Нужно скопировать содержимое каталога AMD64 в каталог I386. К сожалению, у этого способа есть один недостаток, размер каталога INSTALL увеличится на 400 Мб в случае Windows XP Professional x64 Edition. Но есть и более экономный вариант в случае, когда каталог NETBOOT находится на диске с файловой системой NTFS.

В этом случае можно воспользоваться такой возможностью NTFS как junction points (точки соединения). Копируем содержимое каталога AMD64 в I386. Теперь каталог AMD64 нам не нужен и его необходимо удалить. Теперь необходимо загрузить утилиту junction от Sysinternals. В командной строке набираем junction C:\NETBOOT\WINXP\INSTALL\AMD64 C:\NETBOOT\WINXP\INSTALL\I386. В результате у нас получилось, что в каталоге INSTALL появилась папка AMD64 с идентичным содержанием как у I386, но при этом размер каталога INSTALL остался прежним.

Подготовка файлов

Копируем из каталога I386 файл ntdetect.com в C:\NETBOOT\WINXP, например, командой copy C:\NETBOOT\WINXP\INSTALL\I386\ntdetect.com C:\NETBOOT\WINXP\. Разархивируем файлы (из все того же каталога I386) setupldr.ex_, startrom.co_ и startrom.n1_ в C:\NETBOOT\WINXP. Сделать это можно с помощью команд:

expand С:\NETBOOT\WINXP\INSTALL\I386\setupldr.ex_ С:\NETBOOT\WINXP\ntldr

expand С:\NETBOOT\WINXP\INSTALL\I386\startrom.co_ С:\NETBOOT\WINXP\startrom.com

expand С:\NETBOOT\WINXP\INSTALL\I386\startrom.n1_ С:\NETBOOT\WINXP\startrom.n12

Внимание. Для установки русской версии Windows XP необходимо скопировать из каталога С:\NETBOOT\WINXP\INSTALL\I386 файл bootfont.bin в каталог С:\NETBOOT\WINXP. Сделать это можно командой copy C:\NETBOOT\WINXP\INSTALL\I386\bootfont.bin C:\NETBOOT\WINXP\. Это позволит во время инсталляции выводить русский текст.

После всех манипуляций с файлами каталог C:\NETBOOT\WINXP должен принять вид, изображенный на рисунке Рисунок 5.

Теперь необходимо распаковать драйвера для сетевых карт.

Для этих целей создадим каталог C:\NETBOOT\WINXP\DRIVERS.

С помощью команды expand C:\NETBOOT\WINXP\INSTALL\I386\net*.in_ -r -f:*.inf C:\NETBOOT\WINXP\DRIVERS я получил распакованные файлы net*.inf.

Внимание. Нижеперечисленные команды должны быть выполнены в командном интерпретаторе cmd.exe. Для этого нажимаем "Start -> Run" ("Пуск -> Выполнить") набираем cmd и нажимаем клавишу OK.

Далее мне необходимо найти названия файлов драйверов (*.SYS) внутри распакованных net*.inf. Поиск выполняю с помощью команды: for %i in (C:\NETBOOT\WINXP\DRIVERS\*.inf) do type %i | findstr ".sys,,," >>C:\NETBOOT\WINXP\DRIVERS\list. Однако файл list еще не пригоден к дальнейшему использованию. Его необходимо почистить, другими словами убрать ",,,2". Сделать это мне поможет команда for /F "delims=," %f in (C:\NETBOOT\WINXP\DRIVERS\list) do echo %f >>C:\NETBOOT\WINXP\DRIVERS\list.txt.

Выполнив все вышеперечисленные команды, я получил список файлов, которые содержат драйвера для сетевых карт. Осталось только извлечь их из файла driver.cab. Для извлечения я сначала создаю каталог C:\NETBOOT\WINXP\DRIVERS\SYS. Затем с помощью команды for /f %i in (C:\NETBOOT\WINXP\DRIVERS\list.txt) do expand C:\NETBOOT\WINXP\INSTALL\I386\driver.cab -r -f:%i C:\NETBOOT\WINXP\DRIVERS\SYS я извлекаю файлы драйверов из driver.cab в каталог C:\NETBOOT\WINXP\DRIVERS\SYS. Такую же операцию следует провести и для файлов sp1.cab, sp2.cab и sp3.cab. Это необходимо сделать, так как возможно в этом файле будет находиться более новая версия драйвера для сетевого адаптера. Для этого нужно выполнить предыдущую команду заменив driver.cab на sp1.cab и так далее. Например, для файла sp3.cab, команда будет иметь вид for /f %i in (C:\NETBOOT\WINXP\DRIVERS\list.txt) do expand C:\NETBOOT\WINXP\INSTALL\I386\sp3.cab -r -f:%i C:\NETBOOT\WINXP\DRIVERS\SYS

В заключении осталось файлы из C:\NETBOOT\WINXP\DRIVERS\SYS скопировать в C:\NETBOOT\WINXP\INSTALL\I386.

Добавление поддержки новых сетевых адаптеров

За последнее время появились новые сетевые адаптеры, драйвера для которых отсутствуют в дистрибутиве Windows XP. И поэтому установка операционной системы по сети становится невозможной. Для исправления этой проблемы можно воспользоваться файлом lan-drivers.zip (пока только для 32 битной версии Windows).

Этот файл представляет собой собрание драйверов, для новых сетевых карт с которыми мне пришлось столкнуться. Эти драйвера предназначены только для Text-Mode Setup (текстовый режим установки) Windows XP.

В настоящий момент реализована поддержка следующих сетевых карт:

Для установки пакета драйверов необходимо распаковать файл lan-drivers.zip в каталог c:\lan-drivers. Затем необходимо скопировать c:\lan-drivers\*.inf в каталог с:\netboot\WINXP\drivers, а c:\lan-drivers\sys в каталог c:\netboot\WINXP\drivers\sys. Во время копирования может возникнуть сообщение, что в каталоге существует уже такой файл. В этом случае существующий файл необходимо переписать новым (из каталога c:\lan-drivers).

Самостоятельная установка драйверов

К сожалению, файл lan-drivers.zip пока содержит не очень много драйверов. Поэтому ниже я приведу примеры, как самостоятельно установить драйвера сетевого адаптера для установки Windows XP по сети.

Marvell Yukon Ethernet Controller

С сайта производителя скачиваю драйвер. Распаковываю архив yk51x86.zip. Файл yk51x86.inf копирую в C:\NETBOOT\WINXP\DRIVERS, а файд yk51x86.sys в C:\NETBOOT\WINXP\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 копирую в C:\NETBOOT\WINXP\DRIVERS, а файл b57xp32.sys в С:\NETBOOT\WINXP\DRIVERS\SYS.

NVIDIA nForce Networking Controller

К сожалению, на сайте NVIDIA я не нашел драйверов для сетевых карт NVIDIA nForce Networking Controller, которые пригодны к использованию во время установки в текстовом режиме (text-mode). Служба поддержки NVIDIA говорит, что, если Вам необходимы эти драйвера, то связывайтесь с производителями материнских плат, и дает ссылку на файл RIS_2K&XP_V471.zip с сайта ASUS. К сожалению, это старая версия драйверов для NVIDIA nForce Networking Controller, но к счастью на сайте присутствует и более новая версия. Итак, загружаю файл MCP55_RIS_V916.zip. Распаковываю его. Из каталога RIS\nvris32 копирую файл nvnb5032.inf в C:\NETBOOT\WINXP\DRIVERS, а файлы nvnb5032.sys, nvnrm.sys, nvsnpu.sys в C:\NETBOOT\WINXP\DRIVERS\SYS.

В завершении осталось только файлы из каталога SYS скопировать в C:\NETBOOT\WINXP\INSTALL\I386.