DISM.exe - что это за зверь и с чем его едят?

Тема в разделе "Основы работы с Windows PE", создана пользователем Severnyj, 29 сен 2012.

  1. Severnyj
    Оффлайн

    Severnyj Команда форума Супер-Модератор Ассоциация VN/VIP

    Сообщения:
    7.837
    Симпатии:
    8.591
    В этой теме мы часто использовали инструмент под названием dism.exe. Для чего он нужен?

    DISM - это консольная программа для управления образами .wim, с помощью него можно распаковывать (монтировать) файл образа, добавлять в файл образа дополнительные пакеты, интегрировать драйверы, выполнять настройку образа и затем снова упаковывать измененный образ в .wim-файл (демонтировать). Для того чтобы не указывать каждый раз полный путь к файлу программы, работать с ней необходимо из Командной строки средств развертывания, запущенной строго с администраторскими правами доступа.

    Рассмотрим основные параметры командной строки средства DISM.

    Как уже указывалось ранее, перед внесением изменений в образ, необходимо его смонтировать, делатся это такой командой:

    Код (Text):
    Dism /Mount-Wim /WimFile:<Путь к .wim-файлу> /index:1 /MountDir:<Путь к директории, куда будет смонтирован наш образ>
    например:

    Код (Text):
    Dism /Mount-Wim /WimFile:C:\winpe\winpe.wim /index:1 /MountDir:C:\winpe\mount
    - то есть файл C:\winpe\winpe.wim будет распакован (смонтирован) в директорию C:\winpe\mount

    После монтирования можно скопирвать наши пользовательские программы в директорию с распакованным образом.

    Казалось, на этом можно и завершить операцию, упаковать наш образ обратно и записать на CD для дальнейшего применения. Но программа DISM предоставляет еще несколько возможностей, которыми грех не воспользоваться.

    Интеграция драйверов устройств. Данная процедура необходима в случаях, когда Вы являетесь владельцем компьютера с нестандартными устройствами (например RAID). Подсистема DISM позволяет интегрировать в образ драйверы из .inf-файлов. Для этого используются такие параметры:

    Код (Text):
    Dism /image:<Путь к директории со смонтированным образом> /Add-Driver /Driver:<Путь к .inf-файлу>
    например:

    Код (Text):
    Dism /image:C:\winpe\mount /Add-Driver /Driver:C:\Drivers\SCSIRAID\ATI\AMDHDC\amdhdc.inf
    - здесь к образу, смонтированному в директорию C:\winpe\mount, мы добавили драйвер RAID-контроллера от ATI C:\Drivers\SCSIRAID\ATI\AMDHDC\amdhdc.inf


    Интегрирование дополнительных пакетов. В смонтированный образ можно добавить следующие пакеты:

    • WinPE-FONTSupport-<регион>
      Дополнительная поддержка шрифтов для следующих языков: ja-JP, ko-KR, zh-CN, zh-HK и zh-TW.

    • WinPE-HTA
      Поддержка HTML-приложений. Позволяет создавать приложения с графическим интерфейсом пользователя, используя обработчик сценариев Internet Explorer и службы HTML.

    • Winpe-LegacySetup
      Пакет компонента программы установки Media. Все файлы программы установки из папки \Sources на диске с Windows. Добавьте этот пакет при обслуживании установки или папки \Sources на диске с Windows. Необходимо добавить с пакетом компонента программы установки. Чтобы добавить новый файл Boot.wim на диск, дополнительно к пакетам установки и Media добавьте любой дочерний пакет. Он необходим для поддержки установки Windows Server® 2008 R2.

    • WinPE-MDAC
      Поддержка компонентов доступа к данным Microsoft®. Позволяет отправлять запросы к серверам SQL с объектами Active Directory Objects (ADO). Пример использования: создание динамического файла автоматического запуска на основе уникальных системных сведений.

    • WinPE-PPPoE
      Включает поддержку протокола PPPoE. Позволяет создавать, подключать, отключать и удалять подключения по протоколу PPPoE из среды предустановки Windows.

    • WinPE-Scripting
      Поддержка сервера сценариев Windows (WSH). Позволяет производить пакетную обработку файлов с помощью объектов сценариев WSH.

    • WinPE-Setup
      Пакет компонента программы установки (родительский). Все файлы программы установки из папки \Sources, общей для клиента и сервера.

    • WinPE-Setup-Client
      Пакет компонента программы установки клиента (дочерний). Файлы фирменной настройки клиента для программы установки. Необходимо добавить после пакета компонента программы установки.

    • WinPE-Setup-Server
      Пакет компонента программы установки сервера (дочерний). Файлы фирменной настройки сервера для программы установки. Необходимо добавить после пакета компонента программы установки.

    • WinPE-SRT
      Пакет компонента среды восстановления Windows. Обеспечивает платформу восстановления для автоматической диагностики и восстановления системы, а также создание специализированных решений по восстановлению.

    • WinPE-WMI
      Поддержка инструментария управления Windows (WMI). Подмножество поставщиков WMI, обеспечивающее минимальную диагностику системы.

    • WinPE-WDS-Tools
      Пакет средств служб развертывания Windows. Содержит интерфейсы API, предоставляющие многоадресный сценарий с использованием пользовательского клиента служб развертывания Windows и служебную программу записи образов.

    Делается это командой:

    Код (Text):
    Dism /image:<Путь к директории со смонтированным образом> /Add-Package /PackagePath:<Путь к .cab-файлу>
    например:

    Код (Text):
    Dism /image:C:\winpe\mount /Add-Package /PackagePath:"C:\Program Files\Windows AIK\Tools\PETools\x86\WinPE_FPs\winpe-hta.cab"
    - здесь к образу, смонтированному в директорию C:\winpe\mount, мы добавили пакет поддержки HTML-приложений.

    Подробную информацию о пакетах можно узнать на этой странице.


    Настройка доступной памяти в среде Windows PE. В процессе загрузки среды предустановки в оперативной памяти компьютера создается RAM-диск, куда извлекается все содержимое .wim-образа. Размер доступной системе и приложениям RAM устанавливается фиксированно и составляет по умолчанию: 32 MB. Если каким-либо приложениям не будет хватать этой доступной памяти - то работать они не будут. Размер доступной RAM в уже готовом образе изменить невозможно, однако в процессе подготовки образа, сделать это вполне реально, для этого запускаем DISM с такими папаметрами:

    Код (Text):
    Dism /image:<Путь к директории со смонтированным образом> /Set-ScratchSpace:<Объем доступной RAM в MB>
    например:

    Код (Text):
    Dism /image:C:\winpe\mount /Set-ScratchSpace:128
    - здесь мы установили размер доступной RAM - 128 MB. Увлекаться не стоит - данного значения с лихвой достаточно для большинства приложений.


    И вот, наконец, мы настроили наш смонтированный образ, теперь самое время сохранить все изменения, отключить (размонировать) его и упаковать обратно в .wim-файл, делается это командой:

    Код (Text):
    Dism /Unmount-Wim /MountDir:<Путь к директории со смонтированным образом> /Commit
    например:

    Код (Text):
    Dism /Unmount-Wim /MountDir:C:\winpe\mount /Commit
    - после завершения отключения, все изменения будут внесены в ранее распакованный файл C:\winpe\winpe.wim, а директория монтирования C:\winpe\mount будет очищена.

    После данных действий выполняется копирование или экспортирование образа в подготовленную папку ISO и запись данной папки на CD или USB.
    Об этом мы уже говорили здесь.


    Решение проблем.

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

    Чаще всего ошибки возникают из-за того, что мы закрыли окно командной строки до окончания работы с DISM (окончанием является отключение образа и очистка директории монтирования) и решаются они путем отключения образа без сохранения внесенных изменений:

    Код (Text):
    Dism /Unmount-Wim /MountDir:<Путь к директории со смонтированным образом> /discard
    например:

    Код (Text):
    Dism /Unmount-Wim /MountDir:C:\winpe\mount /discard
    - отключение ранее смонтированного образа и очистка папки монтирования, без внесения изменений в образ.

    Вторым способом (невзамимоисключающем) является команда удаления ресурсов:

    Код (Text):
    Dism /Cleanup-Wim
    - эта команда удаляет все ресурсы, связанные с подключенным WIM-образом, который был отключен. Эта команда не отключает подключенные в данный момент образы и не удаляет образы, которые могут быть подключены повторно.


    На данный момент это все. Подробнее почитать о параметрах командной строки DISM можно на этой странице.
     
    machito, Turok, OKshef и 5 другим нравится это.

Поделиться этой страницей