Восстановление хранилища компонентов в Windows 8

Возвращаясь к технологии хранилища компонентов (Component Store)в Windows 8 рассмотрим сценарии его восстановления. Напомним, что начиная с Windows Vista Microsoft ввела концепцию компонентного обслуживания ОС (component based servicing). Благодаря компонентной структуре удалось добиться создания более стабильной системы установки/удаления обновлений, патчей и пакетов обновлений SP. Эта же система лежит в основе архитектуры Windows 8. Файлы хранилища компонентов Windows на диске располагаются в каталоге \Windows\WinSxS, имеющего свойство со временем значительно разрастаться в размерах (подробнее о том, почему размер этого каталога со временем растет и как уменьшить размер папки WinSxS читайте в этой статье).

Однако в некоторых случая хранилище компонентов может повреждаться, что приводит к проблемам при установке обновлений Windows и другого ПО Microsoft. Для восстановления хранилища компонентов в предыдущих версиях Windows (Windows Vista, Windows 7, Windows Server 2008 /R2) Microsoft разработала специальную утилиту — CheckSUR или System Update Readiness Tool (KB947821). Данная утилита является достаточно большой по размеру (более 350 Мб), и по мере выход новых обновлений Windows регулярно обновляется. Это означает, что каждый раз приходится выкачивать свежую версию CheckSUR.

Совет. В одной из предыдущих статей мы уже рассматривали пример использования CheckSUR для поиска и восстановления поврежденных компонентов: 0x800F0818 — ошибка при ролей в Windows Server 2008 R2.

Что же делает данная утилита? System Update Readiness Tool проверяет целостность следующих ресурсов:

    Файлы в каталогах:

  • %SYSTEMROOT%\Servicing\Packages
  • %SYSTEMROOT%\WinSxS\Manifests
    Содержимое веток реестра:

  • %SYSTEMROOT%\WinSxS\Manifests
  • HKEY_LOCAL_MACHINE\Schema
  • HKEY_LOCAL_MACHINE\Components
  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Component Based Servicing

В том случае, если утилитой CheckSUR будут обнаружены ошибки или несоответствия, она попытается их восстановить.

Проблемы с хранилищем компонентов могут вызывать различные ошибки при установке обновлений Windows. Ниже приведен список типовых кодов ошибок, которые данная утилита должна устранить.

Список ошибок WindowsUpdate, вызванных повреждением хранилища компонентов

CodeErrorDescription
0×80070002ERROR_FILE_NOT_FOUNDThe system cannot find the file specified.
0x8007000DERROR_INVALID_DATAThe data is invalid.
0x800F081FCBS_E_SOURCE_MISSINGThe source for the package or file not found.
0×80073712ERROR_SXS_COMPONENT_STORE_CORRUPTThe component store is in an inconsistent state.
0x800736CCERROR_SXS_FILE_HASH_MISMATCHA component’s file does not match the verification information present in the component manifest.
0x800705B9ERROR_XML_PARSE_ERRORUnable to parse the requested XML data.
0×80070246 ERROR_ILLEGAL_CHARACTERAn invalid character was encountered.
0x8007370DERROR_SXS_IDENTITY_PARSE_ERRORAn identity string is malformed.
0x8007370BERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_NAMEThe name of an attribute in an identity is not within the valid range.
0x8007370AERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUEThe value of an attribute in an identity is not within the valid range.
0×80070057ERROR_INVALID_PARAMETERThe parameter is incorrect.
0x800B0100TRUST_E_NOSIGNATURENo signature was present in the subject.
0×80092003CRYPT_E_FILE_ERRORAn error occurred while Windows Update reads or writes to a file.
0x800B0101CERT_E_EXPIREDA required certificate is not within its validity period when verifying against the current system clock or the time stamp in the signed file.
0x8007371BERROR_SXS_TRANSACTION_CLOSURE_INCOMPLETEOne or more required members of the transaction are not present.
0×80070490ERROR_NOT_FOUNDWindows could not search for new updates.

В Windows 8 и Windows Server 2012 функционал, аналогичный утилите CheckSUR, уже встроен в систему и называется Inbox Corruption Repair (встроенное восстановление компонентов). Встроенное восстановление компонентов может работает в двух режимах: фоновом и ручном. Фоновое восстановление автоматически запускается в случае появления ошибок при попытке установить обновление Windows Update. Windows в этом случае автоматически пытается исправить поврежденный компонент и переустановить пакет Windows Update. В том случае, если автоматическое восстановление не может самостоятельно исправить проблему, администратор может исправить ошибки вручную, восстановив работоспособное состояния хранилища компонентов. Сделать это можно с помощью утилиты обслуживания образа DISM (команда Dism /Online /Cleanup-Image) или с помощью Powershell (командлет Repair-WindowsImage).

Чтобы проверить состояние хранилища компонентов, откройте командную строку с повышенными привилегиями и выполните:

Dism /Online /Cleanup-Image /CheckHealth

Советы.

  1. DISM в отличие от большинства утилит Windows чувствительна к регистру символов.
  2. Команда Dism /Cleanup-Image сохраняет логи в каталогах C:\Windows\Logs\CBS\CBS.log и C:\Windows\Logs\DISM\dism.log

Аналогичная команда Powershell:

Repair-WindowsImage -Online -CheckHealth

Восстановление хранилища компонентов (component store ) в windows 8

Проверка CheckHealth займет несколько минут. Как вы видите, текущий статус хранилища компонентов в образе – Healthy (Здоровый), т.е. восстановление не требуется.

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

Dism.exe /Online /Cleanup-Image /Restorehealth

Аналогичная Powershell команда:

Repair-WindowsImage -Online -RestoreHealth

В данном примере восстановление системных файлов прошло успешно:

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

dism восстановление хранилища компонентов в windows 8

В том случае, если система самостоятельно не смогла восстановить некоторые компоненты в хранилище, вам может понадобится дистрибутив (установочный диск) Windows 8. Вставьте данный диск в привод или смонтируйте его iso образ. Допустим, диску с дистрибутивом назначена буква E. Получим список доступных версий Windows 8 на диске с помощью команды PoSH:

Get-WindowsImage -ImagePath E:\sources\install.wim

Список доступных образов в дистрибутиве Windows 8

В данном примере, мы видим, что на диске имеется только один образ (Windows 8 Pro) с индексом 1 (Index: 1).

Следующая команда запустит восстановление хранилища с восстановлением повреждённых компонентов из оригинального образа Windows 8:

Repair-WindowsImage -Online -RestoreHealth -Source G:\sources\install.wim:1

, где 1 – индекс версии образа в дистрибутиве, полученный ранее.

После завершения восстановления удостоверьтесь, что хранилище компонентов находится в работоспособном состоянии (статус: Healthy)

Следующий (не всегда обязательный этап) – проверка целостности системных файлов с помощью команды:

sfc /scannow
Совет. Если к восстановлению хранилища компонентов вы прибегли из-за проблем с установкой обновлений Windows, перезапустите службу Windows Update и сбросьте локальных кэш обновлений. Для этого в командной строке последовательно выполните следующие команды:
net stop wuauserv

net stop bits

net stop cryptsvc

ren %systemroot%\SoftwareDistribution oldSD

ren %systemroot%\System32\catroot2 oldCat2

net start cryptsvc

net start bits

net start wuauserv

Предыдущая статья Следующая статья


Комментариев: 5 Оставить комментарий

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)