Развертывание ОС через сеть

Предыстория.

Компания VMware предоставляет достаточно удобный интерфейс для быстрого создания/клонирования виртуальных машин. К сожалению, на физические сервера этот механизм не распространяется, что дает повод маркетологам других вендоров опускать мой любимый гипервизор 🙂

Технологии развертывания ОС через сеть есть у многих вендоров. Я решил помучиться с MS RIS&WDS.

Начало.

Руки до реального тестирования технологий все не доходили. Вроде как установить Windows на сервер недолго, клиентские XP техники уже научились ставить с CD-диска с файлом ответов, поэтому приоритет у задачи был низкий.

Но вот появились ОНИ и моя жизнь стала веселее. На производство решили купить два ML110 G6 и поставить на них Windows XP SP3. И был нюанс — необходимо было установить Windows на встроенный рейд-контроллер. Идем на support.hp.com и видим, что в списке поддерживаемых ОС Windows XP нет (равно как и Windows 2000, чьи драйвера могли бы подойти). Фигня, говорю я, скачиваю драйвера для Windows 2003 и записываю их на дискету.

Дискета втыкается в USB_FDD, грузимся с диска с WinXP и УПС — ML’ка в упор не видит драйверов.

Продолжение.

Выбирая между интеграцией драйверов в дистрибутив и настройкой RIS, я решил выбрать более перспективное направление.

Воспользовавшись помощью Саши Васильева (powershell.perm.ru) и ссылкой от него же — unattended.oszone.net, я отмучил RIS, интегрировал драйвера для сети и рейд-контроллера и…

УПС. File hpAHCIsr.sys caused an unexpected error (21) at line 3840 in d:\xpsprtm\base\boot\setup\setup.c. Press any key to continue. (текст ошибки стибрен отсюда, поэтому номер строки может оказаться другой).

Совместно с Сашей мы решили, что проблема в драйвере рейда и для Windows XP оно не подходит. Печально 🙁

Пошел к начальству и сказал: «либо XP, либо рейд+Win2k3». Начальство выбрало второй вариант, поэтому я продолжил развлечения с RIS’ом.

Инструкция к действию.

Достаточно подробно все описано на сайте unattended.oszone.net, поэтому инструкция достаточно схематичная.

  1. Устанавливаем роль WDS на сервер Win2k3 SP2. Желательно иметь отдельный логический диск, NTFS и несколько свободных гигабайт. Ах да, RIS и WDS требуют в обязательном порядке AD;
  2. Прописываем в опциях DHCP 66 и 67 строки. 66 — адрес сервера, 67 — адрес загрузчика (для RIS — OSchooser\i386\startrom.com). Если не хотим, чтобы для загрузки образа требовалось нажатие F12, используем файл startrom.n12. В некоторых случаях, вместо 67 опции берутся настройки сервера WDS, поэтому корректнее создать общий загрузчик и прописать его еще и там;
  3. Визардом WDS Legacy загружаем образ. В качестве источника берется папка с дистрибутивом. Интегрировать апдейты лучше до загрузки образа (в гуглях пишут, что и после вроде бы работает, но насколько я понимаю, это малоподдерживаемая фича). Буду рад ошибиться;
  4. Если у вас будут дистрибутивы на разных языках, то файл E:\RemoteInstall\OSChooser\welcome.osc перезаписываете файлом E:\RemoteInstall\OSChooser\multiling.osc;
  5. Образы хранятся в каталоге вида E:\RemoteInstall\Setup\%Language%\Images\%image_name%. В этом каталоге изначально находится только одна папка — i386. Если вы хотите вам придется мудрить с драйверами, то создаете папку $OEM$;
  6. Файл ответов для RIS готовится с помощью менеджера setupmgr.exe, находящегося в любом дистрибутиве с ОС Windows XP/2003 — \support\tools\deploy.cab. Файл называется ristndrd.sif, лежит он в каталоге E:\RemoteInstall\Setup\%Language%\Images\%image_name%\i386\templates;
  7. Указываю параметры, которые пришлось править руками/добавлять: Секция [Data]: AutoPartition=0. Секция [Unattended]: FileSystem=* / OemSkipEula=Yes / DriverSigningPolicy = Ignore / OemPnPDriversPath = «Drivers\NIC\broadcom;Drivers\NIC\intel;Drivers\HDD» / OemPreinstall=Yes / UnattendSwitch=»yes». Секция [RemoteInstall] Repartition=NO (основные принципы — автоустановка PnP драйверов и забивание на цифровую подпись драйверов, доступ к ручной настройке разделов ЖД, пропуск секции после установки ОС);
  8. Каталоги «Drivers\NIC» и «Drivers\HDD» находятся в E:\RemoteInstall\Setup\%Language%\Images\%image_name%\$OEM$\$1. Как раз в них складываются драйвера для оборудования, которое Windows XP/2003 не сумели сами опознать и настроить. Более подробно про каталог $OEM$\$1 и т.п. читайте на сайте OSZone.NET, там очень толково;
  9. Осталось всего два гемора — с драйверами сетевого адаптера, через который мы будем грузиться, и с драйверами для контроллеров ЖД/рейд-контроллеров;
  10. Описание интеграции драйверов сетевого адаптера с PXE дано здесь. Все толково, могу лишь сделать два дополнения… Во-первых, на Win2k3_SP2 нет службы binlsvc, поэтому вместо этого перезапускайте службу WDS (встретил в интернете совет, что лучше через MMC). Во-вторых, PNF-файлы для сетевых адаптеров не генерируются после перезапуска службы. Они генерируются после перезапуска службы и обращения системы с искомым сетевым адаптером;
  11. Описание интеграции драйверов рейд-накопителей все там же — unattended.oszone.net. Хочу лишь добавить, что сжатие драйверов (makecab *) не обязательно. Кроме того, у меня искомый ML110 G6 не завелся, пока драйвера для рейда не оказались в каталоге …\$OEM$\$1\Drivers\HDD.

Послесловие.

После ~100 перезагрузок сервер все же установился и заработал под управлением Windows 2003 Server Std Ed, так что историю можно считать Happy End‘ом.

Попутно я получил достаточно полезный опыт по настройке этого функционала.

Минусы.

  1. Пока я не смог подружить RIS с произвольным именем компьютера. Если в файле ответов RIS была отсебятина вроде %Computername% или %Username%#, RIS отказывался ставить такой дистрибутив. Понятно, что проблема решается постинсталляционным скриптом, но есть же встроенный функционал. Кстати, в WDS я так же не смог настроить автосмену имени для Windows XP;
  2. К образу пока не прикручены сетевые дистрибутивы для установки базового комплекта. Сейчас техники как раз решают эту проблему;
  3. Развертывание из образа быстрее, чем сетевая установка;
  4. Операционные системы Windows XP/2003 достаточно старые. Никто не говорит, что они — отстой. Но вот драйвера под них находить все труднее и труднее, особенно после окончания поддержки от MS, которая не за горами;
  5. Я не разбирался с безопасностью данного решения. Впрочем, желающие могут на шару Reminst поставить необходимые разрешения. Кроме того, с помощью программ типа Everest / SIW серийный номер WinXP стягивается очень легко. В этом плане Windows Vista / Seven гораздо защищеннее ( да и развертывать их через сеть менее геморройно!);
  6. Пока я не настраивал совместную работу RIS/WDS/PXELinux. В принципе, это тоже делается разными способами.

Вопросы/пожелания приветствуются. Также буду признателен, если в комментариях читатели опишут свой опыт сетевой установки, либо расскажут об архитектуре других решений.

Спасибо за внимание…

Запись опубликована в рубрике Microsoft, Windows с метками . Добавьте в закладки постоянную ссылку.

13 комментариев: Развертывание ОС через сеть

  1. CLaiN говорит:

    Пользую WDS для развертывания семерки и 2008R2. Проблем никогда не возникало, все очень шустро и удобно. Проблем с дровами тоже ни разу не было, но это видимо заслуга ОС.

  2. A.Vakhitov говорит:

    Я тоже слышал, что с развертыванием Windows Vista/Seven/2008/2008R2 проблем, как правило, не возникает, в связи с качественной переделкой архитектуры.
    Да и настраивать их вроде как попроще.

  3. Dim-soft говорит:

    а поддержка 2003 уже все 🙂
    если не R2 то не поддерживают

  4. fkclan говорит:

    для таких задач, древний nLite вам в помощь уважаемый!

  5. Dim-soft говорит:

    можно совмесно с windows xp использовать peimg от waik vist-ы
    отлично интегрирует драйвера

  6. Michael говорит:

    Использую RIS/WDS достаточно давно и довольно успешно. Ставлю через него WinXP/Win2003. Очень хорошо эта штука (в паре с sysprep’ом) помогла, когда покупали партии однотипных ПК по 100 штук. Правда иногда встречаются ПК (с виду абсолютно одинаковые из одной партии), где установка на каком-то этапе валится в BSOD и что делать я пока не нашел.

  7. Андрей Вахитов говорит:

    На машинках с BSOD’ом вручную установка проходит на ура?
    Дистрибутив, используемый для ручной установки, кастомизировался, или брался исходный лицензионный?

  8. andrei говорит:

    Была ситуация, пришла партия ПК (марка Kraftway кажется). Так у этих ПК при старте генерировался GUID c одними нулями. В результате чего не работал и соответственно RIS. 🙂
    http://technet.microsoft.com/ru-ru/library/cc738715%28WS.10%29.aspx

  9. Alexander E. Vasilev говорит:

    По поводу неожиданного падения в BSOD при установке.
    Если выданный по DHCP адрес занят кем то еще, то ПК падает в BSOD. Довольно известная проблема.

  10. A.Vakhitov говорит:

    Саша — настройка на DHCP — «пинговать адрес перед его выдачей» — от этого спасает или нет?

  11. Alexander E. Vasilev говорит:

    ХЗ, не пробовал. Если честно то даже не знал о такой настройке 😉

  12. Sergey говорит:

    За свою админсткую практику я так и ен нашел в себе моральных сил и времени освоить MS RIS, а далее по работе пришлось столкнуться с пачкой софта Altiris (теперь это Symantec), на его DS (Deployment Solution) и советую посмотреть, как альтернативу RIS/WDS. Поддерживается и скриптованная установка, и развертываине образов и многое другое, правда в отличии от WDS стоит отдельных денег, но мне кажется оно того стоит.

  13. Андрей Вахитов говорит:

    Ок 🙂
    руки дойдут — почитаю.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *