На инсталляционном носителе Windows находится не только операционная система, но и связанные с ней драйвера и компоненты системы. Все это хранится в файле, называемом - файл образ. Во время инсталляции этот образ применяется к целевому тому. Образы Windows используют формат файлов Windows Imaging (WIM), который имеет следующие преимущества:
- Методы развертывания. Можно развернуть wim-файлы с помощью загрузочного USB-накопителя, из общего сетевого ресурса или с помощью специализированных технологий развертывания, таких как Службы развертывания Windows (WDS) или System Center Configuration Manager.
- Редактируемость. Можно подключить образ к текущей ОС и редактировать его, включать, отключать или удалять роли и компоненты операционной системы, если это необходимо.
- Возможность обновления. Имеется возможность обновить текущий образ, не создавая захват операционной системы.
Установочный носитель Windows Server 2019 содержит два WIM-файла - это Boot.wim и Install.wim. Файл Boot.wim использует для загрузки среды предустановки, которая запускается в момент развертывания Windows Server 2019. Install.wim хранит один или несколько образов операционной системы. Например, как показано на рисунке ниже, файл Install.wim содержит четыре разных выпуска Windows Server 2019. В зависимости от специфики оборудования, бывает ситуация, в которой потребуется добавить дополнительные драйверы в файл boot.wim. Например, потребуется добавить дополнительные драйвера, если процедура установки Windows не сможет получить доступ к устройству, на которое будет устанавливаться, поскольку драйвер этого устройства не включен в образ загрузки по умолчанию.
Модификация Windows образа
Deployment Image Servicing and Management (DISM) - это приложение командной строки. Программа работает с образами в автономном состоянии. Dism используется для реализации следующих задач:
- Просмотр, добавление или удаление ролей и компонентов
- Добавление, удаление обновлений
- Добавление, удаление драйверов
- Добавление, удаление приложений Windows *.appx
К примеру, можно скопировать файл Install.wim с дистрибутива Windows Server и используя Dism.exe примонитировать образ, добавить новые драйвера и обновления программного обеспечения к этому образу и сохранить или отменить эти изменения, и все это без необходимости выполнять фактическое развертывание ОС. Преимущество заключается в том, что, когда используется этот обновленный образ для развертывания, добавленные драйвера и обновления уже применяются к образу, и не нужно устанавливать их отдельно как часть процедуры настройки после установки.
На сайте каталога Центра обновления Майкрософт (https://catalog.update.microsoft.com) хранятся все сертифицированные драйвера оборудования, обновления программного обеспечения и исправления, опубликованные Microsoft. После загрузки драйверов и обновлений программного обеспечения их можно добавить к существующим установочным образам с помощью Dism.exe или соответствующих командлетов PowerShell в модуле DISM PowerShell.
Обслуживание образа Windows
Для уменьшения времени установки и настройки системы на новых серверах, нужно убедиться в тем, чтобы образы развертывания поддерживались в актуальном состоянии. К образу должны быть применены последние обновления программного обеспечения, а также должны быть включены все новые драйверы устройств для часто используемого серверного оборудования. Если не поддерживать образ развертывания в актуальном состоянии, потребуется дополнительное время на установку драйверов и обновлений. Применение обновлений после развертывания требует значительного времени, а также существенно увеличивает сетевой трафик. Одна из целей при выполнении развертывания сервера должна заключаться в том, чтобы как можно быстрее запустить сервер и включить его в работу.
Программа DISM может использоваться для обслуживания текущей операционной системы в оперативном состоянии или для автономного обслуживания образа Windows.
Обслуживание включает в себя выполнение следующих шагов:
- Монтирование образа для изменения
- Обслуживание образа
- Фиксация или отмена внесенных изменений
Подключение образа
Примонтировав образ, появляется возможность вносить в него изменения, такие как добавление и удаление драйверов, установка обновлений, включение компонентов системы.
Обычно WIM-файл содержит несколько образов операционных систем. Каждому образу присваивается порядковый номер, который необходимо знать, прежде монтировать образ. Номер индекса можно определить с помощью Dism.exe с параметром /Get-wiminfo. Например, если дистрибутив ОС скопирован в D:Images, можно использовать следующую команду, чтобы получить список находящихся в нем образов:
Dism.exe /get-wiminfo /wimfile:d:imagessourcesinstall.wim
Тот же самый результат можно получить, используя командлет PowerShell Get-WindowsImage.
Get-WindowsImage -ImagePath d:imagessourcesinstall.wim
Когда нужный индекс операционной системы определен, монтируем этот образ программой Dism.exe c параметром /Mount-image. Например, чтобы смонтировать редакцию Standard Edition Windows Server 2019 из файла Install.wim, который доступен в папке D:Mount, введите следующую команду:
Dism.exe /mount-image /imagefile:d:imagessourcesinstall.wim /index:2 /mountdir:c:mount
В качестве альтернативы можно использовать команду Mount-WindowsImage:
Mount-WindowsImage -ImagePath D:imagessourcesinstall.wim -index 2 -path c:mount
Интеграция драйверов и обновлений
После того, как образ подключен, можно приступить к его обслуживанию. Наиболее распространенными задачами являются добавление в образ драйверов устройств и обновлений программного обеспечения. Чтобы добавить драйвера к подключенному образу используется Dism с параметром /Add-Driver. Чтобы не добавлять каждый драйвер по отдельности, используется параметр /Recurse, чтобы все драйверы находились в папке и подпапках добавлялись в образ. Например, чтобы добавить все драйвера, расположенные в папке и подпапках D:Drivers к образу, смонтированному в папке C:Mount, используйте следующую команду:
Dism.exe /image:c:mount /Add-Driver /driver:d:drivers /recurse
Командлет Add-WindowsDriver выполнит тоже действие:
Add-WindowsDriver -Path c:mount -Driver d:drivers -Recurse
Параметр /Get-Driver используется для просмотра всех добавленных драйверов, а /Remove-Driver позволяет удалить драйвер из образа. В PowerShell это командлеты Get-WindowsDriver и Remove-WindowsDriver соответственно. Удалять можно только те драйвера, которые были добавлены в образ.
Параметр /Add-Package позволяет добавляет обновления в формате *.cab или *.msu. Обновления программного обеспечения доступны на сайте Центра обновления Майкрософт в формате *.msu. Загрузим обновление с веб-сайта каталога Центра обновления Майкрософт под названием "2019-10 Cumulative Update for Windows Server, version 1903 for x64-based Systems (KB4517389) в папку D:updates на компьютере и применим обновление к образу.
Dism.exe /image:c:mount /Add-Package /PackagePath:"d:updateswindows10.0-kb4517389-x64_6292f6cb3cdf039f01410b509f8addcec8a89450.msu "
Тоже самое можно сделать используя PowerShell команду Add-WindowsPackage:
Add-WindowsPackage -path c:mount -packagepath "d:updateswindows10.0-kb4517389-x64_6292f6cb3cdf039f01410b509f8addcec8a89450.msu"
Добавление ролей и компонентов
Для просмотра ролей и компонентов в смонтированном образе используется параметр /Get-Features. Команда выглядит следующим образом:
Dism.exe /image:c:mount /Get-Features
Используя параметры /Enable-Feature и /Disable-Feature можно включать или отключать компоненты. Пример ниже включит NetFramework в текущем образе.
Dism.exe /image:c:mount /Enable-Feature /all /FeatureName:NetFx3ServerFeatures
Сохранение изменений
После внесения всех изменений в образ, их нужно сохранить, используя параметры /Unmount-Wim и /Commit. Параметр, отменяющий изменения - /Discard. Чтобы внести изменения и затем зафиксировать образ, смонтированный в папке C:mount, выполним команду:
Dism.exe /Unmount-Wim /MountDir:c:mount /commit
После применения изменений, win файл будет обновлен. Затем его можно импортировать в Windows Deployment Services (WDS) или использовать его с загрузочным usb носителем для развертывания Windows Server 2019 с уже примененными обновлениями, изменениями и драйверами.