Универсальный сервер сетевой загрузки и установки. Часть 4.

Часть 3 закончилась на рассмотрении ошибок возникающих при загрузке wim образа с Windows 7. Продолжим настройку WDS.
server_args = -s /srv/tftpboot -m /srv/tftpboot/rules -v

Это означает что в базе binlsrv.py (devlist.cache) отсутствует информация о сетевом адаптере установленном в компьютере. Для определения PnP идентификатора устройства запускаем сервер WDS в режиме вывода информации в консоль:

 

и вновь запускаем установку. Как только «ntdetect.com» запросит информацию у WDS в консоле мы увидим такую картину см. рис.6
 
Рисунок 6 WDS в режиме вывода информации в консоль

]]>WDS в режиме вывода информации в консоль]]>

 
В моем случае идентификатор PCI\VEN_1022&DEV_2000 найден в файле netamd2.inf которому соответствует файл устройства pcntpci5.sys. Для решения этой проблемы необходимо найти драйвер с PnP идентификатором PCI\VEN_1022&DEV_2000 и включить его в базу binlsrv.py (devlist.cache) с помощью команды infparser.py <путь к каталогу с новым драйвером>. С целью повышения удобства отладки также можно включить лог tftp. Для этого в файл «/etc/xinet.d/tftp» в строку запуска «server_args» надо добавить ключ «-v»:
 
 
И посмотрите что именно и в какой последовательности запрашивает у сервера система. Это также очень удобно делать при помощи сетевого сканера Whireshark [16]. 
 

Создание файла ответов winnt.sif для Windows XP

]]> Про файл ответов для автоматической установки «winnt.sif» написано очень много. Подробное описание всех параметров «winnt.sif» находиться на сайте Microsoft [9], а так же здесь [10]. В этом файле описываются параметры устанавливаемой системы, которые используются на разных этапах (уровнях) установки. Создать его можно с помощью программ из архива «deploy.cab» находящегося в папке /support/tools/ дистрибутивного диска Windows XP, просто ответив на вопросы конфигуратора. Там же находиться подробная документация в виде chm-файлов по использованию и конфигурации файлов автоматической установки. Для теста можно взять готовый файл моей конфигурации и просто исправить некоторые строки [8]. В начале необходимо исправить следующие параметры: «OriScr» в секции «[data (это тот самый путь который мы сделали доступным посредством Samba):
 

OriSrc = "\\192.168.1.7\reminstall\i386]]>"

и «SetupSourceDevice» в секции «[SetupData (это указание устройства с которого идёт установка):

SetupSourceDevice = "\Device\LanmanRedirector\192.168.1.7\reminstall"
 
Очень интересна и полезна с точки зрения установки секция «Unattended» и ее настройки:

DriverSigningPolicy=Ignore ; устанавливать драйверы без подписи
UpdateInstalledDrivers=Yes ; Для установки не подписанных драйверов

Repartition=Yes ; удалить ВСЕ существующие разделы на диске и создать один для установки и использования системой

; путь поиска дополнительных драйверов во время установки Windows

OemPnPDriversPath="windows\drv\chipset\intel;windows\drv\net\intel;
windows\drv\net\marvell;windows\drv\net\realtek;windows\drv\video\intel;
windows\drv\video\nvidia;windows\drv\video\ati;windows\drv\audio\realtek"

        Когда на графическом этапе инсталляции ОС выполняется поиск файлов INF, содержащих нужные идентификаторы Plug and Play устройств, программа просматривает все пути, указанные в переменной OemPnPDriversPath. Это дает возможность правильно инициализировать устройства. Файл «winnt.sif» имеет большое количество параметров, которые позволяют произвести не только основную настройку системы, но и инсталляцию необходимого программного обеспечения.

Подготовка папки для Windows 7.

Установка будет происходить по такому сценарию:

    Загрузка по сети образа Windows7 PE (без графической оболочки)
    Вызов меню выбора системы для установки («install_menu.cmd»)
    Монтирование необходимого сетевого устройстваЗапуск setup.exe с указанием файла ответов

Рисунок 7 Установка WAIK

 

]]>Установка WAIK]]>

    
      Для создания загрузочного образа Windows7 PE («boot.wim») обязательно понадобиться компьютер с установленной системой Windows 7, Windows Vista, Windows Server 2003 или Windows Server 2008 (я использовал виртуальную машину c Windows 7 — далее обслуживающий компьютер). Устанавливаем Windows Automated Installation Kit (WAIK) (См. Рис.7-9.).
 

Рисунок 8 Выбор компонентов настройки


]]>Выбор компонентов настройки]]>

 

Рисунок 9 Добавление параметров настройки

]]>Добавление параметров настройки]]>

Запускаем  Windows PE Tools Command Prompt (Пуск-> Программы-> Microsoft Windows AIK -> Windows PE Tools Command Prompt). В действительности это обычное окно программы командного процессора Cmd.exe, только с добавленными дополнительными переменными окружения. Создаем копию загрузочного образа с необходимой архитектурой (параметр x86):
 

copype.cmd x86 c:\windowspe-x86\

монтируем образовавшийся образ:
 

Dism /Mount-WIM /WimFile:c:\windowspe-x86\winpe.wim /Index:1 /MountDir:c:\windowspe-x86\mount

Открываем на редактирование файл «startnet.cmd» из каталога c:\windows7pe-x86\mount\windows\system32. Этот файл запускается первым после загрузки и старта системы. Вот в нем и надо прописать вызов скрипта «install_menu.cmd», который будет отвечать за выбор ОС для установки.
Содержание  «startnet.cmd»:

 

	Wpeinit # Окончательная инициализация системы
	ipconfig renew # Инициализируем сетевые интерфейсы
	call install_menu.cmd

Зачем использовать ipconfig renew? Как показала практика, по неизвестной причине не все сетевые карты  инициализируются после выполнения Wpinit. Поэтому еще раз вызываем настройку интерфейса (рис.10).
 

 

Рисунок 10 Ошибка инициализации сети

]]>Рисунок 10 Ошибка инициализации сети]]>

Продолжение следует...