Я уже не раз писал на тему Microsoft Desktop Optimisation Pack (MDOP), и одной из его составляющих – Diagnostics and Recovery Toolset (MsDART). Но как следует из комментариев на моем блоге и форуме OsZone.net – интерес к этому предмету, а в частности, как же именно интегрировать его в дистрибутив Windows, не пропал совсем.
Поэтому ниже я приведу пошаговые инструкции по интегрированию этого пакета в дистрибутив (привязка MSDart к опции “Repair your computer”) и некоторые, хотя и пространные, но необходимые пояснения.
В результате всех трудов должен получиться этакий универсальный технологический установочный диск.
Для иллюстрации моих действий использовалась такая лабораторная среда: Устновленный MS DART версии 7.0, дистрибутив Windows 7 SP1 x64 и, конечно же, Windows AIK.
Исходная информация: DART позволяет сделать специальный загрузочный .iso образ восстановления, используя дистрибутив Windows 7 (а именно файл boot.wim, в который, собственно, и добавляются утилиты MsDart). Эта задача решается через специальный мастер, который монтирует boot.wim из дистрибутива во временный NTFS каталог и копирует утилиты пакета вовнутрь подмонтированного образа (с последующим объявлением в оболочке MsDart).
После установки пакета DART на инженерной машине из дистрибутива MDOP мы получим вот такую картину:
В архивах находятся все утилиты DART (файл Tools.cab) и Standalone System Sweeper (файл Sweeper.cab).
Посмотрим содержимое архива Tools.cab:
Итак, здесь расположена ресурсная папка, которая будет скопирована в обслуживаемый образ дистрибутива. В корне архива находится также загрузчик elTorito, который используется для компоновки загрузочного DVD. Посмотрим содержимое ресурсной папки:
В ней находится всё то, что будет скопировано в соответствующие папки подмонтированного из boot.wim образа (по сути – это модифицированный образ Windows RE), для того, чтобы он стал образом MsDart.
Особый интерес из всего множества ресурсов, обеспечивающих работу DART представляют два ключевых файла winreconfig.xml и winpeshl.ini.
Winreconfig.xml
Любимый файл слушателей курсов по предустановке операционных систем . Этот .xml-файл содержит конфигурацию для стандартного меню инструментов Windows RE. Стандартное меню в норме имеет 5 вхождений и выглядит так:
Синтаксис и предназначение возможных .xml тегов для изменения конфигурации Windows RE достаточно подробно описаны на Technet. Вот какой результат можно получить в итоге, воспользовавшись этим конфигурационным файлом, который, кстати, обязательно должен находиться в папке .SourcesRecoveryTools образа Windows RE, иначе работать не будет:
То есть, опустив другие дополнительные возможности, к стандартному меню восстановления Windows RE можно “подстегнуть” максимум одну дополнительную диагностическую утилиту и одно средство перезаливки образа. Обычно такое право предоставляется сборщикам систем и MsDart использует именно этот механизм своего внедрения в стандартное меню восстановления. Для подтверждения этого заглянем в winreconfig.xml ресурсной папки MsDart:
Анализ конфигурационного файла показывает, что используется вариант дополнительного “диагностического средства”, в роли которого выступает фронт-енд утилит MsDart – приложение MSDartTools.exe.
Кое-что, касательно механизма работы .iso образа DART, дополнительно проясняется, когда мы заглядываем в файл .windowssystem32winpeshl.ini.
Winpeshl.ini
В соответствии с его спецификацией, этот конфигурационный файл предназначен для подмены стандартного интерфейса Windows PE, в роли которого выступает командная строка, и запуска дополнительных приложений при старте Windows PE, в нашем случае – инициализации сетевого интерфейса и оболочки среды восстановления.
В комплекте MsDart этот файл выглядит так:
Ни одно, ни второе автозапускаемое приложение не имеет смысла в контексте использования установочного диска с внедренным MsDart. Для инициализации сетевого интерфейса, к примеру, имеется ряд других возможностей, которые опытный инженер, при желании, может использовать, но… потом . Поэтому, winpeshl.ini я вообще удалил.
Прояснив для себя механизм создания образа MsDart, можно приступать к перекомпоновке дистрибутива Windows 7, что и есть цель всего мероприятия.
Перекомпоновка дистрибутива
Шаг 1. В командной строке “Deployment Tools Command Prompt” с правами администратора выполняем:
copype amd64 c:winpe
Получаем нужную структуру каталогов для компоновки и обслуживания образа:
Шаг 2. Распаковываем дистрибутив операционной системы в каталог ISO, предварительно почистив содержимое этого каталога.
Шаг 3. Монтируем ISOsourcesboot.wim в каталог c:winpemount:
dism /mount-wim /wimfile:».ISOsourcesboot.wim»
/index:2 /mountdir:”c:winpemount”
Монтируется второй образ из boot.wim, так как он содержит компоненты WinPE-Setup и WinPE-Setup-Client, необходимые для реализации процесса установки.
Шаг 4. Выполняем мастер MsDart. В процессе выполнения копируем все содержимое временной ресурсной директории (см. снимок экрана ниже) и переносим в каталог монтирования (в примере это – c:winpemount).
Выполнение мастера затем можно прекратить.
Шаг 5. Удаляем файл <точка монтирования>WindowsSystem32winpeshl.ini, как предложено выше.
Шаг 6. Демонтируем boot.wim с сохранением изменений:
dism /unmount-wim /mountdir:c:winpemount /commit
Шаг 8. Пересобираем .ISO образ воспользовавшись утилитой oscdimg. Например:
oscdimg -j1 -m -bc:winpeetfsboot.com c:winpeiso e:imageWin7DART.iso
Получаем результат:
Проверяем работоспособность утилит MSDart и… пользуемся.
CONCLUSIO
Для полной завершенности процесса интеграции DART в дистрибутив Windows я бы еще добавил его в родную среду восстановления образа, которая изначально находится в файле <точка монтирования>WindowsSystem32RecoveryWinRE.wim. Это стоит сделать для того, чтобы после установки операционной системы MsDart был доступен не только на установочном носителе но и для конечного эксплуатанта. Для этого необходимо извлечь winre.wim и обслужить так, как указано выше, но отдельным порядком и без удаления winpeshl.ini, а затем заменить им оригинальный winre.wim в образе, или в каждом из образов, помещенных в install.wim.