Существует несколько способов установки операционной системы на
компьютеры без оптических приводов. Самый простой — использование
внешнего привода. Более трудоемкий — создание загрузочной флешки.
Пожалуй, наименее распространенный — удаленная установка по локальной
сети. Далее речь пойдет об установке Windows XP. По локальной сети.
Процесс установки предполагает следующее:
— подготовка дистрибутива;
— настройка DHCP и TFTP серверов;
— подготовка службы BINL.
Подготовка дистрибутива.
Нужно создать каталог, например, x:\boot\winxp и убедиться, что он
доступен по сети. Затем создать в нем папку install и скопировать туда
дистрибутив (каталог i386).
md x:\boot\winxp\install
net share winxp=x:\boot\winxp
cacls x:\boot\winxp /e /g Everyone:r
xcopy y:\i386 x:\boot\winxp\install\i386\ /e /h
Теперь в папку x:\boot\winxp нужно скопировать и распаковать загрузчики (ntdetect.com, ntldr, startrom.n12)
После чего необходимо создать каталог x:\boot\winxp\drivers\sys. В папку
x:\boot\winxp\drivers следует положить файлы с информацией об установке
драйверов для сетевых карт (.inf), а в x:\boot\winxp\drivers\sys — сами
драйвера (.sys). Необходимые драйверы рекомендую скачать с официального
сайта производителя Вашего сетевого адаптера. Если есть уверенность в
наличии соответствующих драйверов в дистрибутиве ОС, можно распаковать
их оттуда.
Ключевые моменты на этом этапе:
— указать TFTP серверу x:\boot\winxp в качестве отправной точки;
— установить правила раздачи IP-адресов DHCP сервером и показать ему загрузчик (startrom.n12)
Эта служба предоставляет установщику Windows XP информацию, какой
драйвер для сетевого адаптера следует использовать. В качестве службы
BINL можно воспользоваться этим набором python-скриптов: ris-linux.
Архив нужно распаковать в папку x:\boot\ris. Затем выполнить скрипт
infparser.py с параметром x:\boot\winxp\drivers и запустить binlsrv.py.
cd /d x:\boot\ris
infparser.py x:\boot\winxp\drivers
binlsrv.py
Я пробовал две версии python'а: 3.0 и 2.3.5. Обе отказались выполнять
infparser.py. Первая ругалась на синтаксис, вторая — на невозможность
импорта функции из библиотеки. Вижу здесь два варианта решения:
переписать скрипты под установленную версию или подобрать версию под
скрипты.
Так как с этим языком программирования я не знаком, то пытаться
исправить синтаксис под версию 3.0 не стал. Разобраться с импортом
функции при использовании 2.3.5 оказалось не сложно: нужно заменить в
двух местах ее имя с format_exc на format_exception.
Последний штрих.
В папке x:\boot\ris нужно найти файл winnt.sif и скопировать его в
x:\boot\winxp. Без него ничего не получится. Но и с ним не сразу.
Минимальные изменения, которые необходимо в него внести — это пути к
дистрибутиву (OriSrc и SetupSourceDevice).
OriSrc
\\192.168.0.1\boot\winxp\i386
SetupSourceDevice
\Device\LanmanRedirector\192.168.0.1\boot\winxp
Теперь, убедившись, что DHCP и TFTP работают, а BINL запущена, можно приступать непосредственно к установке. Enjoy.