avatar Windows DISM не так страшен, как о нем рассказывают или обслуживание установочного диска Windows 7 / 2008 / 2008R2 / 8 / 2012

Чтобы создать свой дистрибутив, не обязательно выполнять захват подготовленной системы, комплект WAIK предоставляет нам другую возможность-работа непосредственно с ISO образом установочного диска, в терминологии Microsoft, такой вид образов называется: автономный образ. Данное средство называется DISM (Deployment Image Servicing and Management) оно позволяет глубоко модифицировать образ Windows, добавлять туда драйвера (один файл или целую коллекцию), включать/выключать различные компоненты системы, добавлять пакеты обновлений ОС, а также языковые пакеты и кучу всего остального, в общем мы можем довольно глубоко «запиливать» дистрибутив ОС Windows. К стати, WAIK позволяет обслуживать дистрибутивы Windiows 8 / 2012
Возможен и другой вариант, у вас уже есть настроенный образ, который получился у вас после захвата, о том как он создается можно прочитать в статье: WAIK это просто, как собрать свой дистрибутив Windows 7, вас все в нем устраивает, но есть проблема, поступила более новая техника, а драйвера, которые уже присутствуют в образе, не подходят к новому железу, соответственно, оборудование работает не на полную мощность. В этой ситуации нам достаточно узнать конфигурацию нового оборудования и в уже имеющийся образ, просто добавить драйвера, а если образ создан давно, то и пакеты обновлений, иначе наш образ получается не безопасным, а по рекомендации «лучших собаководов», из Microsoft, наш образ должен быть безопасен, и содержать в себе актуальные обновления безопасности, на момент развертывания…
Если подумать логически, то в офисной сети, со временем, будут появляться «разношерстные» рабочие станции, это может быть связано с ростом компании или плановой заменой устаревшей техники на новую, да и просто разными поставщиками или партиями оборудования, в любом случае, идею о единообразном оборудовании можно забыть и на нее даже не рассчитывать, уж поверьте моему опыту работы в компании где работает почти 14 000 чел в РФ, с техникой там полный зоопарк, по этому, в готовый образ вам может понадобиться добавить драйвера, обновления и т.п. Идеальным вариантом является единая точка обслуживания, которой будет выступать наш установочный образ, мы можем добавлять в него драйвера, по мере поступления новой техники.

Скажу честно, данное ПО довольно сложно в понимании, но освоив его, вы получите мощнейший инструмент для обслуживания и тюнинга дистрибутивов MS Windows. В принципе, можно смело открывать «свой» MSDN-при условии что ваши образы будут собраны качественно, ну и за одно, поднять «пиратский флаг», но это так, лирика…
Все действия производятся из командной строки, это с одной стороны, большой плюс, с другой-недостаток т.к. современный народ довел свой «кнопконажимательный» рефлекс до таких высот, что скорость работы мышкой просто зашкаливает, а вот вид черного поля командной строки и мигающего курсора-вызывает нервный тик и личную неприязнь к тем, кто это придумал.

ВАЖНО-Статья будет разбита на несколько пунктов, каждый из них не является обязательным, вы вольны выбрать, выполнить все пункты или только некоторые, которые вам нужны, в любом случае, образ будет работоспособен!

Все действия будут проводиться на примере Windows 7 Professional amd64, но все команды актуальны и для дистрибутивов Windows 8 / 2012 / 2008 / 2008R2


Для работы нам понадобится:
1) Установочный диск Windows 7 (редакция и разрядность, значения не имеет, для примера, будет использоваться архитектура x64), можно скачать с торрентов или с MSDN — у кого есть доступ к подписке. В данной работе я буду использовать чистый образ MSDN, я не рекомендую брать образ который уже кто-то переделал, не факт что у вас с ним что-то получится, по этому, чтобы понять принцип работы берите ISOшник от Microsoft, он прямой- как лом в полёте…
2) Установочный диск WAIK (Windows Automated Installation Kit), скачать можно с сайта Microsoft, а также, дополнительный пакет для правильной работы с ОС с SP1.
3) Физическая машина, с Windows 7 на борту, разрядность и редакция ОС значения не имеет, но редакцию Starter лучше не использовать, с достаточным количеством свободного места на диске C-должно быть свободно не менее 25Гб (на всякий случай).
4) Набор драйверов, и обновлений, которые будет установлены в системе.

Предполагается что все это уже скачано и лежит на диске, для настройки образа интернет нам не потребуется.

Для работы, нам потребуется создать необходимые директории на диске С.
Мы будем работать с образом системы в папке dism, я назвал ее так специально чтобы было понятно для чего она (имя папки ни на что не влияет) единственное условие-не назначать имя папке кириллицей, во избежании проблем, также, внутри этой папки, мы создадим, целую кучу других папок их назначение я расскажу по ходу статьи:
Мы будем работать в командной строке, да Windows как и Linux позволяет это делать и как и в Linux, многие задачи, как эта, лучше выполнять из нее т.к. мышкой это слишком долго, хотя в Linux, командная строка более функциональна.
Запускаем командную строку, от имени Администратора и выполняем в ней:

mkdir c:\dism
mkdir c:\dism\iso
mkdir c:\dism\offline
mkdir c:\dism\updates
mkdir c:\dism\drivers
mkdir c:\dism\drivers\network
mkdir c:\dism\drivers\mainbord
mkdir c:\dism\drivers\sound
mkdir c:\dism\drivers\video


Теперь, нам необходимо скопировать содержимое всего установочного диска Windows, в папку c:\dism\iso как есть.
Также рядом с папкой iso есть папка offline в нее будет монтироваться файл install.wim работу с которым мы и будем выполнять.

Не будем тянуть кота за «причинное место» и смонтируем образ install.wim который, если вы все скопировали правильно, должен лежать у вас по пути:
c:\dism\iso\sources\install.wim


Переходим: Пуск->Все программы ->Microsoft Windows AIK ->Командная строка средств развертывания запускаем ее от имени администратора

На диске может содержаться несколько редакций операционной системы, нас интересует Windows 7 Professianal, все зависит от того, какой серийный номер вы введете.
Получаем список ОС с диска:
dism /get-wiminfo /wimfile:c:\dism\iso\sources\install.wim

Нас интересует образ ОС с индексом 3. (на скриншоте обведено красным)


В открывшемся окне вводим и жмем Enter:
dism /mount-wim /wimfile:c:\dism\iso\sources\install.wim /index:3 /mountdir:c:\dism\offline

Где:
dism-то что мы запускаем для работы
/mount-wim -то что мы хотим выполнить, в нашем случае-монтирование wim файла.
/wimfile:c:\dism\iso\sources\install.wim -путь к файлу install.wim
/index:3-в файле install.wim может содержаться несколько образов операционных систем, мы возьмем третью из списка.
/mountdir:c:\dism\offline-папка, куда будет монтироваться файл install.wim

Система выдаст, похожее:
DISM

После удачного подключения образа, содержимое файла install.wim можно посмотреть в папке c:\dism\offline
Если вы туда загляните, то там обнаружите, ничто иное, как содержимое диска С, для ленивых приложу скриншот:


1-Добавляем драйвера оборудования в систему
В начале, когда мы создавали кучу папок, у нас была папка с названием drivers, а в ней различные под папки типа mainbord, sound, network, вот они как раз и предназначены для хранения драйверов. Звуковой драйвер, забрасываем в папку sound, а драйвера сетевого оборудования в папку network-все просто и т.д. в принципе можно все свалить в одну кучу, главное чтобы файлы с одинаковыми именами не перезаписали друг друга, но лучше сразу приучаться к порядку и тогда через несколько месяцев вы легко сможете разобраться, где что лежит, что можно удалить, а что нужно оставить, а вот если все в кучу, то это уже проблематично, так что рекомендация довольно проста и банальна-Нормально делай, нормально будет!
DISM позволяет добавлять драйвера в 2х режимах
1) По файлово -когда вы явно указываете, какой файл нужно загрузить
2) Рекурсивно-когда софтина сама обследует папку и вложенные подпапки и все найденные файлы драйверов добавляет в образ.
Откровенно говоря, добавлять по файлово, это для «эстетов» или если нужно добавить всего один файлик в уже готовый образ. Но мы-то с вами «запиливаем» чистую систему и предполагается что в ней ничего нет, по этому мы их будем добавлять рекурсивно.

В командной строке вводим:
dism /image:c:\dism\offline /add-driver /driver:c:\dism\drivers /recurse


Бывает что нужно добавить драйвера которые не имеют цифровой подписи, тогда команда принимает вид:
dism /image:c:\dism\offline /add-driver /driver:c:\dism\drivers /recurse /ForceUnsigned


Система немного задумается, потом выдаст следующее:


2-Добавляем обновления в образ
Далее, предположим, что образ у вас устарел и вы решили добавить в него пакеты обновлений. Но главный вопрос-где добыть обновления?!
Их можно взять из работающей системы, все файлы с расширением .cab являются нашей целью их можно найти по адресу C:\Windows\SoftwareDistribution\Download, если установлен WinRAR то он их подсвечивает как архивы, вот их-то мы и соберем. Все обновления применяются в том порядке, в котором вы указали, по этому старайтесь указывать их, в порядке возрастания номеров.
Вариант №2, обновления можно скачать с сайта Microsoft, чтобы не проходить «увлекательный квест», вот вам ссылка работает через IE.
В начале статьи мы создали папку:
mkdir c:\dism\updates

В нее мы и складываем файлы обновлений, для примера у меня есть 2 файла я их расположу в порядке номеров:
KB2574819.cab
KB2592687.cab
Применим обновления к нашему образу:
dism /image:c:\dism\offline /Add-Package  /PackagePath:C:\dism\updates\KB2574819.cab  /PackagePath:C:\dism\updates\KB2592687.cab

Где:
/PackagePath:C:\dism\updates\KB2574819.cab -указываем путь к файлу с обновлением

От системы получаем:
Добавление обновлений через DISM

Проблема №1. Некоторые обновления не хотят устанавливаться, без других обновлений, по этому, зависимость от этого может стать серьезной проблемой, но всегда можно посмотреть на сайте Microsoft, какое обновление, от какого зависит.
Проблема №2. У вас нет файлов обновлений в виде файлов *.cab, но есть в виде файлов *.msu, проблема не сложная, файлы можно распаковать с помощью expand -F:*-способ использования данной утилиты, будет вам в качестве домашнего задания!

3-Включение/выключение компонентов операционной системы

Иногда требуется включить компоненты системы, которые по умолчанию выключены, например telnet клиент, мне он, по работе нужен довольно часто, по этому, в образе, на его примере, мы выполним включение.
Для начала, выполним запрос списка всех компонентов, он довольно большой, по этому мы его перенаправим в файл, а в файле можно спокойно прочитать.
Получаем список пакетов и перенаправляем его в текстовый файл:
dism /image:c:\dism\offline /Get-Features > c:\dism\Featurelist.txt

Где:
dism /image:c:\dism\offline-обращение к нашему подключенному образу
/Get-Features — запрос списка компонентов системы
> c:\dism\Featurelist.txt -перенаправление вывода в файл, который у нас называется Featurelist.txt, а путь к нему c:\dism\Featurelist.txt

переходим к списку компонентов системы, открываем файл:
c:\dism\Featurelist.txt

И на выходе получаем «краказябры» из которых можно разобрать только латиницу, да и то не всю. Проблема не большая, в блокноте заходим в Формат-Шрифт выбираем шрифт Terminal и, вуаля, все содержимое становиться читаемым.
Находим в списке компонент TelnetClient, он помечен как отключенный:
Имя функции : TelnetClient
Состояние : Отключен­


Попробуем его включить, вводим:
dism /image:c:\dism\offline /Enable-Feature /FeatureName:TelnetClient

система немного задумается и выдаст:

Все компонент включен.

Как отключить компонент:
Для примера, попробуем отключить компонент, список компонентов у нас уже есть, там находим компонент Solitaire да это тот самый «Селитёр», который так любят сотрудники и так ненавидят «эффективные руководители», потому что он ворует рабочее время- настоящий негодяй, он должен умереть… ;)
dism /image:c:\dism\offline /Disable-Feature /FeatureName:Solitaire

Система немного подумает, правда удаляет компонент система быстрее чем добавляет, оно и понятно, ломать- не строить…


Заключительная часть
Работа с образом завершена, нам необходимо сохранить изменения и отмонтирвоать образ:
dism /Unmount-Wim /MountDir:C:\dism\offline /Commit


Запуститься процесс сохранения изменений, занимает примерно 1-2 мин, по окончании которого, нам выдаст нечто подобное:
DISM добавление драйверов в образ Windows

Если вы что-то забыли, то образ можно легко подключить снова и добавить нужное.
Теперь нам необходимо собрать, из полученного, образ установочного диска.
Наш получившийся дистрибутив лежит в c:\dism\iso единственная проблема в том что он не является загрузочным, в принципе это проблемой не является и мы сейчас соберем из него полноценный образ ISO, который, в последствии, можно нарезать на DVD-R болванку.

Сборка образа установочного диска Windows (ISO)

Т.к. файлы операционной системы у нас лежат в папке:
c:\dism\iso

Тогда получившийся ISO образ мы назовем windows.iso и выложим в:
c:\dism\

Тогда путь к нему, будет выглядеть:
c:\dism\windows.iso

Чтобы сделать образ загрузочным, нам нужны некоторые файлики, которые идут в комплекте WAIK т.к. образ операционной системы у нас имеет архитектуру x64, то и загрузчик нам нужен соответствующий.
в папке Dism создадим папку boot, но ручную ее создавать не нужно, она создастся автоматически при копировании, открываем командную строку от имени администратора и пишем туда:

Перейдем в папку с утилитами:
cd c:\Program Files\Windows AIK\Tools\PETools


И копируем утилиты под необходимую нам архитектуру:
copype.cmd amd64 c:\dism\boot

За одно, добавим на наш диск тест памяти, много места он не займет, а в случае возникновения, неведомых проблем, сильно облегчит жизнь
copy c:\Windows\Boot\PCAT\memtest.exe c:\dism\boot\ISO\boot


Теперь Возвращаемся в командную строку, где мы работали с DISM и там вводим:
oscdimg -n -m -o -bc:\dism\boot\etfsboot.com c:\dism\iso c:\dism\windows.iso


Начнется сборка образа, по окончании которой, в папке dism появится файл windows.iso, это и есть наш готовый дистрибутив, который можно нарезать на болванку или подключить к виртуальной машине и пользоваться.
Процесс сборки выглядит так:


Альтернативный вариант использования образа
Нарезать болванку не обязательно, вы всегда из этого сможете собрать установочный USB-флеш диск, о том как это сделать, можно прочитать в статье: Установка Windows 8 c USB флеш диска, по мне, так это самый годный вариант, т.к. жечь пластик ради одного раза, считаю не правильным, да и вся техника, которая выпущена в течении последних 3-4х лет, поддерживает загрузку с USB.

На вашей совести остается тестирование того, что мы с вами наворотили…
На этой оптимистической ноте, позвольте закончить, ну и все как всегда-возникли вопросы, прошу в комментарии, нашли ошибку, то пишите в личку.
На этом все.

2 комментария

avatar
Привет Максим и благодарю за статью. Но я не могу добавить драйверов ни «dism /image:c:\dism\offline /add-driver /driver:c:\dism\drivers /recurse» или «dism /image:c:\dism\offline /add-driver /driver:c:\dism\drivers /recurse /ForceUnsigned» не решила проблему — дали ошибку 50. У меня в компе windows 7 sp1 (64bit) ая хотел переделывать server 2008 sp2 iso (32-bit).
avatar
Проблема с разрядностью это не в вашем случае вот если вы в системе x86 переделываете образ x64 то да, там есть проблема с обработкой фалов
по вашей ошибке вот что пишут в технет
answers.microsoft.com/en-us/windows/forum/windows8_1-update/error-50-dism-doesnt-support-servicing-windows-pe/63d72447-ee95-4ebe-a4bc-1c6053140309?auth=1
Есть что добавить? Регистрируйся и оставляй комментарии!