Windows Server 2012 R2 : Ошибка 14098 Хранилище компонентов повреждено (The component store has been corrupted) в результате выполнения очистки хранилища компонент Dism.exe

Windows Server 2012 R2 : Error 14098 The component store has been corrupted as a result of running Dism.exe component store cleanupВ ходе выполнения процедуры очистки хранилища компонент Windows в каталоге WinSxS на ОС Windows Server 2012 R2 может возникнуть ошибка с кодом 14098 и описанием "The component store has been corrupted". Подробную информацию о проблеме можно получить из лог-файла C:\Windows\Logs\DISM\dism.log, который после своей работы оставляет утилита Dism.exe.

Dism error with code 14098 and description "The component store has been corrupted"

В такой ситуации можно воспользоваться командой проверки хранилища на предмет возможности восстановления:

Dism /Online /Cleanup-Image /CheckHealth

Dism message "The component store is repairable"

Как видно из вывода работы утилиты Dism, в нашем случае хранилище подлежит восстановлению.

Важным моментом является то, что прежде, чем запускать процедуру восстановления, восстанавливаемой системе необходимо открыть прямой доступ в Интернет для возможности соединений с онлайн-службой Windows Update.

Если у восстанавливаемой системы будет отсутствовать доступ в Интернет или окажется выключенной служба "Windows Update" (wuauserv) / "Центр обновления Windows", то в ходе восстановления может появится ошибка 0x800f0906 "The source files could not be downloaded. Use the source option to specify the location of the files that are required to restore the feature".

Подводным камнем в процедуре восстановления является то, что если в организации для доступа в Интернет используется прокси-сервер с обязательным требованием аутентификации пользователя и задействован механизм авто-настройки прокси, то на время процедуры восстановления может потребоваться отключить этот механизм (например, через апплет "Свойства браузера" в Панели управления Windows). На практике мы сталкивались с ситуацией, когда процедура восстановления, вроде бы, отрабатывала без явных ошибок, но при повторной проверке оказывалось, что хранилище всё-равно остаётся повреждённым.

Выполняем попытку восстановления:

Dism /Online /Cleanup-Image /RestoreHealth

Dism : The restore operation completed successfully. The component store corruption was repaired.

В случае возникновения ошибок при сканировании и восстановлении системных файлов, диагностировать проблему поможет журнал механизма CBS (Component-Based Servicing), который по умолчанию расположен в файле:

C:\Windows\Logs\CBS.log

После завершения процедуры восстановления желательно выполнить перезагрузку системы.

Снова выполняем сканирование и проверку на наличие ошибок, чтобы убедиться в том, что не появляется сообщений о повреждённом хранилище:

Dism /Online /Cleanup-Image /CheckHealth
Dism /Online /Cleanup-Image /ScanHealth

Dism : No component store corruption detected

После устранения ошибок хранилища можно снова пробовать выполнять очистку этого хранилища.

Описанная процедура справедлива и для более новых ОС Windows Server и клиентских ОС Windows.

Всего комментариев: 3 Комментировать

  1. Роман /

    Давно используют метод восстановления хранилища из локального ресурса, без доступа в интернет. В ключах dism можно указать источник файлов.

    1. Алексей Максимов / Автор записи

      Спасибо, кэп. Но использование старого образа (без учёта чемодана установленных после развёртывания из этого образа обновлений) далеко не всегда срабатывает. Я не просто так написал про требование к активности службы Windows Update и доступности интернет-узлов Windows Update. И да, то, что, в качестве источника, можно указать соседнюю в локальной сети обновлённую и исправную систему, я тоже в курсе, и это тоже не всегда помогает. Собственно, суть поста и была в обозначении этой особенности, а не в том, чтобы рассказать в 38 раз то, что такое Dism и какие там есть ключи запуска.

  2. Роман /

    Особенность восстановления хранилища из локального ресурса в том, что не важно, включен или выключен wuauserv. Специально подготовленный локальный ресурс можно задать глобально через gpo. У меня этот метод срабатывает всегда, сбоев не было ни разу.

Добавить комментарий