Работа с Windows Deployment Services (WDS)
Перенос моей статьи, для истории, из ЖЖ (livejournal.com)
А конкретнее о том как имея руки, голову и сервант под ногами, создать быстренько на коленке службу быстрой установки машинок по образу и подобию одной единственной ;)
Нивкоем случае не стоит рассматривать данный опус как ПОЛНОЕ руководство. Скорее это вечерний опыт выходного дня в изучении технологий =) По мере наличия времени этот опус возможно будет расширен.
Итак задача: организовать установку рабочих станций посредством сети (PXE) с централизованного сервера в автоматическом режиме.
При этом получаем удобства в виде обслуживания одного единственного образа установочного.
Нам понадобится:
1. Windows 2003 Server (любой). На нем обязательно в Add\Remove Programs ставим Remote Installation Services.
2. Дальше, либо доставляем отдельно Windows Deployment Services (WDS) в виде патча, либо натравливаем Service Pack 2 (если до установки у вас уже стоял RIS, то SP2 с радостью обновит его до WDS).
3. Теперь Windows Automated Installation Kit (Windows AIK) на компьютере администратора (или тестового win2003 сервера).
4. Файл boot.wim с установочного DVD Vista. В этом файле два образа, второй содержит клиента WDS (setup) что нам будет нужно при установке образов.
Прежде всего отметим некоторые «особенности»:
Существует три режима работы WDSа:
1. Legacy – в этом режиме работать можно только со старыми образами RIS подготовленными через RISetup, RIPRep. Ну естественно старое меню загрузки и прочие вещи.
2. Mixed – в этом режиме доступны как старые образы RISа так и новые WDSа.
3. Native – тут поддерживаются только образы .wim созданные WDS и SMSом.
ВАЖНО!!!: для поддержки Zero Touch Installation (SMS OSD Feature Pack) вам нужно чтобы WDS работал в режиме Mixed!
У меня возник вопрос сразу: каким образом происходит переключение между этими режимами?
Я потратил достаточно нервов и времени пока нашел описание процесса переключения режимов работы (никаких заботливо оставленных мелкософтом кнопочек и галочек непредусмотренно). А получилось так, потому что мне из Native режима нужно было, переключится в Mixed как-раз.
Итак, для этого вам нужно выполнить из командной строки WDSUTIL /Uninitialize-server.
Теперь запускаем RISETUP и добавляем хотя-бы один образ, далее WDSUTIL /Initialize-server.
Ура! Теперь сервер работает в смешанном (Mixed) режиме.
Кого интересуют подробности приведу цитату из (http://technet.microsoft.com/en-us/windowsvista/aa905118.aspx)
To get to Windows Deployment Services Legacy mode:
1. Install the RIS optional component on Windows Server 2003 with SP1.
2. Install the hotfix package.
3. Run RISETUP and add an image.
To get to Windows Deployment Services Mixed mode:
1. Install the RIS optional component on Windows Server 2003 with SP1.
2. Run RISETUP and add an image.
3. Install the hotfix package.
4. Run WDSUTIL /initialize-server.
To get to Windows Deployment Services Native mode:
1. Install the RIS optional component on Windows Server 2003 with SP1.
2. Install the hotfix package.
3. Run WDSUTIL /initialize-server.
Сервер подготовлен. Теперь ставим у себя на рабочей станции Windows Automated Installation Kit (Windows AIK).
С помощью него мы будем готовить (создавать и изменять) образы.
По умолчанию образ WinPE входящий в Windows AIK не содержит клиента WDS (setup) инициирующего установку инсталляционных образов (Install-images). Это значит что он может использоваться для загрузки, снятия образов мастер-инсталляций, для создания custom-сценариев установки но НЕ может быть использован для WDS unattended установки снятых образов на клиенты.
Это очередной «слабодокументированный» момент (http://forums.microsoft.com/TechNet/ShowPost.aspx?PostID=1165437&SiteID=17).
ЭТАП 1
После установки открываем командную строку и идем в C:\Program Files\Windows AIK\Tools\PETools. Там нам понадобится copype.cmd.
Запускаем его, указывая архитектуру и временный каталог (он сам создаст его) где будет размещен будущий образ:
copype.cmd x86 C:\winpe_x86
После окончания ее работы копируем imagex.exe в подкаталог iso будущего образа:
copy "c:\program files\Windows AIK\Tools\x86\imagex.exe" C:\winpe_x86\iso
А теперь начинается самое интересное, монтируем WIM-образ WinPE в подкаталог mount:
imagex /mountrw c:\winpe_x86\winpe.wim 1 c:\winpe_x86\mount
Если возникла проблема – скорее всего неустановлен драйвер-фильтр для поддержки монтирования .WIM образов.
ВАЖНО!!! Микрософт предупреждает об отключении System Restore для того раздела, на котором выполняется монтирование – иначе грабли!
После монтирования мы можем дополнять образ WinPE лежащий в подкаталоге mount необходимыми нам вещами.
Например, мне понадобилось включить драйвер SATA и сетевого контроллера. Делается это через peimg. Ему мы скармливаем полный путь до .INF файла требуемого устройства и путь до каталога windows редактируемого образа:
peimg /inf=C:\Ethernet\nvenetxp.inf c:\winpe_x86\mount\windows
peimg /inf=C:\silicon-sata\Si3112r.inf c:\winpe_x86\mount\windows
После того как закончили наполнять образ необходимым, нам нужно «препарировать» хомячка. Делаем это выполняя:
peimg /prep c:\winpe_x86\mount\Windows
ВАЖНО!!! После исполнения этого больше невозможно будет делать с образом ничего кроме включения туда драйверов!
Размонтируем образ и подтверждаем изменения внесенные (они сохранятся в .WIM-файле)
imagex /unmount c:\winpe_x86\mount /commit
Теперь копируем образ следующей командой в «правильный» каталог (там структура соответствующая):
copy c:\winpe_x86\winpe.wim c:\winpe_x86\ISO\sources\boot.wim
Полученный загрузочный .WIM-образ WinPE можно использовать для установки из образов операционных систем или для «создания» мастер-инсталляций.
Если по каким-либо причинам понадобится CD загрузочный с этим образом, то его получаем введя:
oscdimg -n -bc:\winpe_x86\etfsboot.com C:\winpe_x86\iso C:\winpe_x86\winpe_x86.iso
ВАЖНО!!! В официальной документации в этой строке допущена досадная ошибка в некотором символе, которая приводила большинство людей (и автора в их числе) к дурацкой ошибке:
ERROR: Could not delete existing file "c:\winpe_x86\ISO"
Error 5: Access is denied.
Здесь она исправлена, поэтому можно пользоваться на здоровье ;)
Подведем краткие итоги – на данный момент у нас есть образ WinPE в который включены необходимые нам драйвера дисковой подсистемы и сетевых карт. Это так называемый загрузочный образ Boot-image (с него системы могут загружаться).
ЭТАП 2
Теперь переходим ко второй части – снятие образа мастер-инсталляции операционной системы и размещение его на Windows Deployment Services (WDS-сервере).
ВАЖНО!! Обязательно запомните – получаемый в результате этого шага образ НЕПРЕДНАЗНАЧЕН для загрузки. Это просто образ мастер-инсталляции!
Открываем MMC-остнастку Windows Deployment Services и выбрав наш сервер открываем группу Boot-Images и добавляем созданный нами в предыдущем шаге образ (Add Boot Image).
После того как образ добавлен на сервер, щелкаем мышью на него открывая контекстное меню и выбираем Create Capture Boot Image. На этом шаге вводим понятное нам имя образа предназначенного для снятия мастер-копии и указываем путь, и имя нового файла с создаваемым capture-образом.
Почему так? Дело в том что первый изготовленный нами образ содержит необходимый минимальный набор для «загрузки» WinPE но он не запускает автоматически мастер создания образов (wdscapture.exe). Поэтому можно идти двумя путями:
1. Создать описанным выше способом через WDS Capture Boot Image. (он поместит в файл X:\windows\system32\winpeshl.ini секцию [LaunchApps] с параметром %SYSTEMROOT%\system32\wdscapture.exe).
2. Использовать основной образ WinPE полученный нами в первой части и «вручную» запустить wdscapture.exe после загрузки с него.
После запуска wdscapture.exe (лежит в X:\windows\system32) он попытается прочесть файл X:\windows\system32\wdscapture.inf и если его найдет запустит в unattended-режиме снятие образа, иначе проведет вас через мастер позволяя вручную выбрать параметры.
Итак теперь у нас есть образ загрузочный с которого мы будем загружаться по сети и снимать мастер-инсталляцию.
Теперь загружаем компьютер с мастер-инсталляции. Добавляем туда всякий софт что будет использоваться на всех машинах (например офис, кодеки всякие и порнушку ;) Создаем в корне диска каталог sysprep и переписываем туда с установочного диска Windows содержимое deploy.cab. Запускаем sysprep ставим галки напротив Use Mini-Setup, Detect My PnP Devices, выбираем Reboot в listbox’е и жмем reseal. Всё, после этого шага можно смело загружаться через PXE и выбирать среди списка наш Capture-образ.
Дальше процесс разделяется на два больших шага.
• ….Если воспользовались мастером создания Capture-образов и wdscapture.inf «пустой». Или вы «вручную» запустили wdscapture.exe
После загрузки откроется окно мастера создания образа, выбираем в верхнем listbox'е источник откуда берем образ и вводим его название, и описание в диалоги ниже.
ВАЖНО!!! Если вы не выполнили sysprep.exe до загрузки Capture-образа, мастер создания образов (wdscapture.exe) _НЕ УВИДИТ_ ваш диск с мастер-инсталляцией. Это тоже «слабодокументированная» фича.
Далее, будет предложено выбрать место куда будет сохранен временный файл содержащий создаваемый образ. После этого введя имя WDS-сервера и аккаунт доменный можно автоматически закачать его на сервер (для этого на сервере будет нужно сперва создать группу инсталляционных образов Install Images хотя-бы одну).
• …Если вы отредактировали wdscapture.inf включив unattended снятие образа.
WDSCapture автоматически стартует и сразу-же приступит к снятию образа. После удачного снятия мастер покажет прогресс 100% и кнопку Close которая перезагрузит компьютер. Я применял для экспериментов следующий файл wdscapture.inf. Обратите внимание: если в каком-либо параметре будет допущена ошибка - WDSCapture ничего не скажет и просто «тихо» перезагрузит машину!
[Capture]
Unattended=Yes
VolumeToCapture=C:\
SystemRoot=
ImageName="Windows XP SP2 Unattended Capture"
ImageDescription="test lab capture"
DestinationFile=C:\outimage.wim
Overwrite=Yes
[ExclusionList]
$ntfs.log
hiberfil.sys
pagefile.sys
"System Volume Information"
RECYCLER
winpepge.sys
%SYSTEMROOT%\CSC
[WDS]
UploadToWDSServer=Yes
WDSServerName=wds.testdomain.local
WDSImageGroup="First Image Group"
Username=wdsshare_write_permited_user
Domain=testdomain
Password=passwd
DeleteLocalWimOnSuccess=Yes
ВАЖНО!!! При указании VolumeToCapture обязательно указывать диск полностью со слэшем в конце. Глюк это или фича – мне неизвестно.
Unattended=Yes включает автоматику, если =No то на экран будет выведен мастер в котором диалоги будут заполнены значениями указанными в файле. DestinationFile обязательно указывать полный путь до временного файла с образом мастер-инсталляции, иначе будет попытка создать его в ТЕКУЩЕМ каталоге (обычно это RAM-диск X). В секции [ExclusionList] помещаем полные пути и файлы которые необходимо исключить из получаемого мастер-образа.
Предварительно на сервере не забудьте создать группу инсталляционных образов, назвав как указано в файле (один в один).
Подведем итог: мы имеем мастер-образ (.WIM файл) который уже залит на WDS-сервер, размещен в категории Installation Images и доступен для установки.
ЭТАП 3
Раздача образов – в процессе написания.
There are no published comments.
New comment