Интеграция обновлений в дистрибутив ОС MS Windows
Microsoft каждый месяц выпускает новые версии дистрибутивов с уже интегрированными обновлениями. Но есть редакции ОС, например LTSC, для которых Microsoft не выполняет подобные действия. Приходится делать самому…
Подготовка
Для интеграции обновлений в дистрибутив ОС, потребуется:
- Дистрибутив операционной системы в файле .iso.
- Доступ в интернет для скачивания необходимых инструментов и обновлений.
- Рекомендуется #SSD. Все ниже приведённые этапы требуют активной работы с файлами. Поэтому, существенное ускорение можно получить выполняя все задачи на #SSD.
Структура директорий
Для начала необходимо создать структуру директорий, которая послужит базисом для процесса интеграции обновлений:
- C:\BuildFarm- корневая директория для работы.- \MNT- директория, в которую будет монтироваться образ WIM.
- \UPD- директория для хранения скаченных обновлений.
- \WIM- директория для хранения образа WIM.
 
MS DISM
Для интеграции обновлений потребуется инструмент Deployment Image Servicing and Management (DISM) (DISM.exe), который входит в комплект Windows Assessment and Deployment Kit (Windows ADK). Обычно, DISM уже поставляется с операционной системой, но я рекомендую скачивать последнюю версию с сайта Microsoft и устанавливать вручную.
Когда Windows ADK установлен, #DISM можно найти в меню “Пуск” вместе с остальными программам. Запускать #DISM необходимо под администратором. Все команды, приведённые ниже, должны будут выполняться только через установленный вручную #DISM. Использовать #DISM, поставляемый с операционной системой нет необходимости.
Установленный вручную DISM можно найти в меню “Пуск” / Windows Kits / Среда средств развертывания и работы с образами.
Интеграция обновлений
Обновления можно скачивать с сайта-каталога Microsoft Update Catalog. Я беру так называемые “кумулятивные (накопительные) обновления” (cumulative updates), содержащие в себе сразу множество пакетов с исправлениями и обновлениями функций. Найти такие крупные обновления можно в каталоге при помощи поискового запроса cumulative update.
Скачиваемые обновления помещаются в директорию C:\BuildFarm\UPD для дальнейшей интеграции в дистрибутив ОС.
Извлечение файла WIM из дистрибутива MS Windows
Образ ОС находится в специальном файле sources\install.wim. Его необходимо извлечь при помощи программ для работы с файлами .iso (подойдёт UltraISO или PowerISO) в директорию C:\BuildFarm\WIM.
Получение информации из WIM-образа
Файл install.wim может содержать несколько редакций ОС. Каждая редакция ОС имеет свой индекс. Для того, чтобы увидеть эти индексы, нужно ввести команду:
Где:
- /Get-ImageInfo- получить информацию о версиях операционной системы, находящихся в WIM-образ.
- /ImageFile- путь к WIM-образу.
Введённая команда предоставит примерно такой выхлоп:
|  |  | 
Монтирование WIM-образа
Индексы получены. Теперь необходимо примонтировать редакцию ОС из конкретного индекса. Выбор индекса зависит от вас: выбираете индекс той редакции ОС, которая вам необходима. Я выбрал редакцию Windows 10 Pro с индексом 5:
Где:
- /Mount-Image- команда на монтирование WIM-образа.
- /MountDir- путь к директории, в которую необходимо поместить содержимое монтируемого WIM-образа.
- /index:5- номер версии дистрибутива ОС. Номер можно узнать командой- /Get-ImageInfo.
Если что-то пошло не так, размонтировать образ без сохранения можно следующей командой:
Проверить список примонтированных образов можно следующей командой:
Если после размонтирования образ всё ещё остаётся подключённым к системе и является повреждённым, следующая команда можешь помочь:
Она удалит все ресурсы, связанные с повреждённым образом и очистит систему от “зависших” точек монтирования.
Интеграция обновлений в WIM-образ
После монтирования редакции ОС с конкретным индексом, можно начинать процесс интеграции обновлений:
Где:
- /Image- путь к директории, в которой находится содержимое примонтированного WIM-образа.
- /Add-Package- команда на добавление пакетов (обновлений) в WIM-образ.- /PackagePath- путь к директории, в которой находятся пакеты (обновления) для интеграции в WIM-образ.
 
Проверка корректности интеграции обновлений (опционально)
По окончании процесса интеграции, можно проверить корректность выполненной задачи. Команда ниже покажет список пакетов, установленных в примонтированной редакции ОС. В этом списке пакетов будут интегрированные обновления.
Где:
- /Image- путь к директории, в которой находится содержимое примонтированного WIM-образа.
- /Get-Packages- команда для получения информации о интегрированных пакетах примонтированного WIM-образа.
Очистка хранилища компонентов WIM-образ (опционально)
Для уменьшения размера дистрибутива можно запустить процедуру удаления предыдущих версий компонентов, которые были изменены (заменены) установленными обновлениями:
Где:
- /Image- путь к директории, в которой находится содержимое примонтированного WIM-образа.
- /Cleanup-Image- очистка и восстановление образа.- /StartComponentCleanup- удаляет заменённые компоненты и уменьшает размер хранилища компонентов.- /ResetBase- сброс базы заменяемых компонентов.
 
 
Проверка хранилища компонентов WIM-образа (опционально)
Опциональный шаг перед заключительным этапом - проверить системные компоненты и файлы на повреждения:
Где:
- /Image- путь к директории, в которой находится содержимое примонтированного WIM-образа.
- /Cleanup-Image- очистка и восстановление образа.- /ScanHealth- сканирование образа на наличие повреждений хранилища компонентов.
 
Сохранение изменений в WIM-образе
После выполнения всех действий, необходимо отмонтировать редакцию ОС с сохранением изменений. Делается это командой:
Где:
- /Unmount-Image- команда для отмонтирования WIM-образа.
- /MountDir- путь к директории, в которой находится содержимое примонтированного WIM-образа.
- /Commit- сохранение совершённых изменений в WIM-образе.
Всё. Мы получили файл install.wim с интегрированными обновлениями. Теперь этот файл install.wim необходимо обратно упаковать в образ ISO с заменой старого.
Автоматизация
Я люблю автоматизировать всё по максимуму. И здесь я не упустил шанс написать небольшой скрипт с деревянной логикой, который сделает все шаги по интеграции обновлений за человека. Только вот, извлечь файл install.wim из ISO-образа придётся самому.
|  |  | 
Поместить скрипт нужно в корень директории BuildFarm и запустить из терминала #DISM. Если же возникнут какие-либо проблемы, ниже есть небольшой скрипт, который размонтирует образ и очистит систему от точек монтирования.
|  |  | 
2023-10-18
- Добавлен раздел “Автоматизация”.
- Добавлены скрипты по автоматизации процессов.
Категории
Смотрите также
Похожие записи не найдены.