Накопительное обновление на Windows Server 2019 падает с 0x800f0988: что пробовать по порядку и когда останавливаться

Что было. Сервер на Windows Server 2019 (сразу несколько ролей на одной машине, переустановка невозможна) не принимает месячное накопительное обновление: ошибка 0x800f0988 (PSFX_E_INVALID_DELTA_COMBINATION, проблема с дельтами компонентов). Администратор уже сделал стандартный набор: переименовал SoftwareDistribution и catroot2, прогнал DISM /RestoreHealth и sfc /scannow (нашли и починили повреждения хранилища компонентов), ставил .msu вручную из каталога, пробовал через WSUS и в чистой загрузке. Не помогло.

Что предложили.

  1. Полный сброс компонентов обновления одним блоком: остановить wuauserv, cryptSvc, bits, msiserver; переименовать SoftwareDistribution и catroot2; запустить службы; bitsadmin /reset /allusers.
  2. Проверить размер системного раздела (раздел «Зарезервировано системой» или EFI): при менее 500 МБ обновления с новыми компонентами загрузчика падают.
  3. Восстановление обновлением на месте: смонтировать ISO той же редакции и версии, setup.exe, «Сохранить файлы и приложения». Это единственный надёжный способ починить хранилище компонентов, когда DISM уже не может.

Автор упёрся в третий пункт: под рукой был только Evaluation-образ, а установлена Standard, и установщик такой апгрейд не принимает. Тема без подтверждённого итога.

Что мы добавим из практики.

  • Перед всем этим убедиться, что установлено актуальное обновление стека обслуживания (SSU). С 2021 года оно входит в накопительные, но на давно не обновлявшихся машинах может потребоваться поставить его отдельно первым.
  • DISM /Online /Cleanup-Image /StartComponentCleanup перед RestoreHealth: иногда хранилище чинится после очистки заменённых компонентов.
  • Читать C:\Windows\Logs\CBS\CBS.log по ключу 0x800f0988: там название конкретного пакета, из-за которого ломается сборка дельт. Иногда достаточно удалить одно предыдущее обновление.
  • Для виртуальной машины: снимок диска перед каждым шагом. Восстановление на месте занимает час и требует двух-трёх перезагрузок; планировать окно.
  • Когда сервер несёт критичные роли, дешевле развернуть чистую машину этой же версии, перенести роли и вывести старую. Чем дольше сервер не обновляется, тем дороже каждое следующее обновление.

Ресурсы по ошибкам обновления собраны в документации Microsoft.