Интеграция обновлений в дистрибутив ОС 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
- Добавлен раздел “Автоматизация”.
- Добавлены скрипты по автоматизации процессов.
Категории
Смотрите также
Похожие записи не найдены.