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

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

Компания 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. В принципе, это тоже делается разными способами.

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

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

13 thoughts on “Развертывание ОС через сеть”

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

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

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

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

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

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

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

  8. Саша – настройка на DHCP – “пинговать адрес перед его выдачей” – от этого спасает или нет?

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

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

Leave a Reply

Your email address will not be published. Required fields are marked *