Пятница, 15.08.2025, 13:13

Мой сайт

Меню сайта
Наш опрос
Оцените мой сайт
Всего ответов: 58
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
Поиск
Календарь
«  Август 2025  »
ПнВтСрЧтПтСбВс
    123
45678910
11121314151617
18192021222324
25262728293031
Архив записей
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Установка Windows XP по сети. RIS, но не Microsoft

    Введение

    У компании Microsoft есть замечательная технология под названием Remote Installation Services (RIS), которая предназначена для установки операционной системы в крупных сетях, с использованием возможности удаленной загрузки. Для своей работы служба RIS требует наличие Active Directory (доменная организации сети), что в свою очередь требует обязательного использования серверных операционных систем Windows 2000 Server или Windows 2003.

    В этой статье я опишу способ установки Windows XP на компьютеры с поддержкой удаленной загрузки по сети, но не требующей домена и соответственно не требующих использования серверных операционных систем. Хотя основной упор в изложении делается на установку 32-битной версию Windows XP (платформа I386), он отлично подойдет и для установки Windows 2003. Также я постараюсь рассмотреть некоторые моменты установки 64-битных операционных систем (платформа AMD64).

    PXE и процесс загрузки по сети

    Стандарт PXE (Preboot Execution Environment) позволяет превратить сетевую карту в одно из устройств, с которого может загрузиться компьютер. Разработку данного стандарта начала компания Intel, еще 1999 году, а потом к разработке присоединились такие гиганты компьютерной индустрии, как 3Com, HP, Dell, Compaq. Стандарт прижился. И сейчас, пожалуй, не возможно, найти современной сетевой платы без поддержки PXE.

    Конечно для того, чтобы компьютер смог загрузиться по сети одного PXE не достаточно. Нужно еще наличие в сети серверов TFTP и DHCP.

    Процесс загрузки по сети можно упрощенно описать примерно так.

    При включении компьютера, начинает работать PXE загрузчик, который находится в памяти (boot ROM) сетевого адаптера. Сетевая карта отправляет запрос к серверу DHCP для получения IP адреса. Получив запрос, DHCP сообщает сетевой плате IP адрес, маску сети, адрес TFTP сервера и имя загрузочного файла. После обработке полученных данных PXE обращается к серверу TFTP и загружает файл. Получив файл, PXE прекращает свою работу и передает управление загруженной программе.

    А что делать, если у сетевой карты отсутствует PXE?

    На помощь нам придет утилита, которая входит в дистрибутив Windows 2000 Server и Windows 2003, под названием "Microsoft Windows Remote Boot Disk Generator" (rbfg.exe). С помощью этой программы создается загрузочная дискета, которая содержит исполняемый код PXE и таким образом позволяет произвести загрузку по сети. К сожалению, эта утилиты ограничена поддержка только 32 сетевыми адаптерами. Если Вы не нашли свою сетевую карту в списке поддерживаемых устройств, то тогда стоит обратить внимание на сайт ROM-o-matic.net. На момент написания статьи этот сайт поддерживал 290 сетевых плат.

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

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

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

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

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

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

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

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

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

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

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

    • Marvell Yukon Ethernet Controller
    • Broadcom NetLink Ethernet controller (5781, 5786, 5787, 5788, 5789)
    • NVIDIA nForce Networking Controller
    • 3Com 940
    • Realtek RTL8111B, RTL8168B, RTL8111, RTL8168, RTL8111C
    • Intel PRO/1000
    • VIA VT8251, VT8231, VT8233, VT8235, VT8237, VT6105, VT6106, VT6107
    • Attansic L1 Gigabit Ethernet 10/100/1000Base-T Controller
    • Broadcom Netxtreme 2 (5706, 5708)
    • Atheros L2 Fast Ethernet 10/100 Base-T Controller

    Для установки пакета драйверов необходимо распаковать файл 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.

    Настройка программы TFTPD32 и RIS-LINUX

    Перед тем как перейти к рассмотрению настроек программ, следует рассказать о сетевых параметрах компьютер, с которого будет производиться установка. Ему присвоен IP адрес 192.168.200.1 и маска сети 255.255.255.0.

    Внимание! В некоторых случаях использование фаерволов может привести к невозможности установить Windows по сети из-за блокировки сетевой активности. Поэтому или правильно настройте фаерволл или его отключите.

    Настройка программы TFTPD32

    Программа TFTPD32 это своего рода целый комбайн с поддержкой всевозможных протоколов м сервисов. Из всех возможностей программы нам понадобится только DHCP и TFTP сервер. Рассмотрим настройки программы на версии 3.35.

    Настройка TFTP сервера (TFTPD32)

    Опишу значения параметров, в которые я внес изменения.

    Сначала я указал каталог, в котором TFTP сервер будет искать файлы. За это отвечает параметр "Base Directory". В нашем случае это C:\NETBOOT\WINXP. Затем я отключаю для удобства не нужные сервисы, оставив только "TFTP Server" и "DHCP Server". По той же причине отключил режим "Show Progress bar". Включил режим "Use anticipation window", в качестве параметра указал значение 14320. Этот последний параметр позволит увеличить скорость загрузки файлов с TFTP сервера.

    Внимание. Активация режима "Use anticipation window" в некоторых случаях может привести к ошибкам. И тогда его следует отключить.

    С этими настройками TFTP сервер готов к работе.

    Настройке DHCP сервера (TFTPD32)

    Для установки Windows по сети DHCP должен присвоить IP адрес и указать имя загружаемого файла. За адреса отвечают параметры "IP Pool starting address", "Size of pool" и "Mask".

    Кая я уже говорил на компьютере, с которого производится установка, присвоен IP адрес 192.168.200.1 с маской сети 255.255.255.0. Компьютеры смогут общаться друг с другом, если они принадлежат одной сети. В нашем случае это сеть 192.168.200.0. Параметр "IP Pool starting address" указывает начальный IP адрес, с которого DHCP будет начинаться выдавать адреса. Я установил значение в 192.168.200.10. Параметр "Size of pool" указывает, сколько компьютеров могут получить IP адреса от TFTPD32. Я установил значение в 10. Параметр "Boot File" указывает, какой файл необходимо загрузить. В нашем случае это startrom.n12.

    Внимание. В каталоге C:\NETBOOT\WINXP находится два файла загрузчика: startrom.com и startrom.n12. Первый файл (startrom.com) в отличии от второго для начало процесса инсталляции потребует нажатия F12.

    Параметр "Mask" указывает маску сети и должен совпадать с маской нашего "главного компьютера". Я указал значение 255.255.255.0.

    Все настройки DHCP сервера изображены на.

    Настройка программы RIS-LINUX

    Во время установки Windows XP должна получить информацию, какой драйвер для сетевой платы она должна использовать. Эту информация предоставляет служба BINL. В качестве службы BINL я буду использовать программу ris-linux. Эта программа написана на языке Python и поэтому, необходимо еще установить интерпретатор этого языка. В качестве интерпретатора буду использовать Python.

    Внимание. Для работы ris-linux требуется Python версии как минимум 2.4.0. Версия 3 и выше не подходят.

    Распаковываю ris-linux в каталог C:\NETBOOT\RIS-LINUX. Теперь необходимо сформировать базу ответов. Для этого выполняю команду: C:\NETBOOT\RIS-LINUX\infparser.py c:\NETBOOT\WINXP\DRIVERS. Если все удачно, то программа infparser.py выведет на экран Compiled xxx drivers, где xxx количество обработанных драйверов. Теперь запускаю сам BINL, с помощью программы binlsrv.py.

    Для автоматической установки в каталоге C:\NETBOOT\WINXP создаю файл winnt.sif.

     

    В секцию [data] необходимо добавить

    OriSrc="\\192.168.200.1\WINXP\INSTALL\I386"
    OriTyp="4"

    Создать новую секции [SetupData]. Секция [SetupData] должна содержать следующие строки.

            
    OsLoadOptions = "/noguiboot /fastdetect"
    SetupSourceDevice = "\Device\LanmanRedirector\192.168.200.1\WINXP\INSTALL"

    Создать новую секцию [RemoteInstall], со следующим содержимым

    Repartition = No
    UseWholeDisk = No

    В итоге файл ответов winnt.sif примет следующий вид.

    [data]
    AutoPartition=0
    MsDosInitiated=1
    UnattendedInstall="Yes"
    floppyless="1"
    LocalSourceOnCD=1
    OriSrc="\\192.168.200.1\WINXP\INSTALL\I386"
    OriTyp="4"
     
    [SetupData]
    OsLoadOptions = "/noguiboot /fastdetect"
    SetupSourceDevice = "\Device\LanmanRedirector\192.168.200.1\WINXP\INSTALL"
     
    [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
     
    [GuiRunOnce]
    "%SystemDrive%\post_install\runonce.cmd"

    Ну, вот и все. Теперь можно приступать к установке операционной системы.

    P.S. Пожелания и вопросы Вы можете высказывать на нашем форуме форуме.

     

    Бесплатный хостинг uCoz