Что было. Сервер на Windows Server 2019 (сразу несколько ролей на одной машине, переустановка невозможна) не принимает месячное накопительное обновление: ошибка 0x800f0988 (PSFX_E_INVALID_DELTA_COMBINATION, проблема с дельтами компонентов). Администратор уже сделал стандартный набор: переименовал SoftwareDistribution и catroot2, прогнал DISM /RestoreHealth и sfc /scannow (нашли и починили повреждения хранилища компонентов), ставил .msu вручную из каталога, пробовал через WSUS и в чистой загрузке. Не помогло.
Что предложили.
- Полный сброс компонентов обновления одним блоком: остановить
wuauserv,cryptSvc,bits,msiserver; переименоватьSoftwareDistributionиcatroot2; запустить службы;bitsadmin /reset /allusers. - Проверить размер системного раздела (раздел «Зарезервировано системой» или EFI): при менее 500 МБ обновления с новыми компонентами загрузчика падают.
- Восстановление обновлением на месте: смонтировать ISO той же редакции и версии,
setup.exe, «Сохранить файлы и приложения». Это единственный надёжный способ починить хранилище компонентов, когда DISM уже не может.
Автор упёрся в третий пункт: под рукой был только Evaluation-образ, а установлена Standard, и установщик такой апгрейд не принимает. Тема без подтверждённого итога.
Что мы добавим из практики.
- Перед всем этим убедиться, что установлено актуальное обновление стека обслуживания (SSU). С 2021 года оно входит в накопительные, но на давно не обновлявшихся машинах может потребоваться поставить его отдельно первым.
DISM /Online /Cleanup-Image /StartComponentCleanupпередRestoreHealth: иногда хранилище чинится после очистки заменённых компонентов.- Читать
C:\Windows\Logs\CBS\CBS.logпо ключу0x800f0988: там название конкретного пакета, из-за которого ломается сборка дельт. Иногда достаточно удалить одно предыдущее обновление. - Для виртуальной машины: снимок диска перед каждым шагом. Восстановление на месте занимает час и требует двух-трёх перезагрузок; планировать окно.
- Когда сервер несёт критичные роли, дешевле развернуть чистую машину этой же версии, перенести роли и вывести старую. Чем дольше сервер не обновляется, тем дороже каждое следующее обновление.
Ресурсы по ошибкам обновления собраны в документации Microsoft.