Възстановяване на компонентния магазин в Windows 8

Връщайки се към технологията на компонентния магазин в Windows 8, ще разгледаме сценарии за неговото възстановяване. Спомнете си, че започвайки с Windows Vista, Microsoft представи концепцията за обслужване на компоненти. Благодарение на структурата на компонентите беше възможно да се създаде по-стабилна система за инсталиране / деинсталиране на актуализации, пачове и сервизни пакети SP. Същата система е в основата на архитектурата на Windows 8. Файловете за съхранение на компоненти на Windows на диска се намират в директорията \Windows\WinSxS, който има свойството да се увеличава значително с течение на времето (за повече подробности защо размерът на тази директория нараства с течение на времето и как да намалите размера на папката WinSxS, прочетете тази статия).

В някои случаи обаче, складът на компоненти може да се повреди, което води до проблеми при инсталиране на актуализации на Windows и друг софтуер на Microsoft. Microsoft е разработила специална помощна програма за възстановяване на компоненти за съхранение в предишни версии на Windows (Windows Vista, Windows 7, Windows Server 2008 / R2) - CheckSUR или Инструмент за готовност за актуализация на системата (KB947821). Тази помощна програма е с доста големи размери (над 350 MB) и с появата на нови актуализации на Windows тя се актуализира редовно. Това означава, че всеки път, когато трябва да изпомпвате нова версия CheckSUR.

съвет. В една от предишните статии вече разгледахме пример за използване на CheckSUR за търсене и възстановяване на повредени компоненти: 0x800F0818 - грешка по време на роли в Windows Server 2008 R2.

Какво прави тази програма? Инструментът за готовност за актуализация на системата проверява целостта на следните ресурси:

    Файлове в директории:

  • % SYSTEMROOT% \ Обслужване \ Пакети
  • % SYSTEMROOT% \ WinSxS \ Манифести
    Съдържанието на клоновете на регистъра:

  • % SYSTEMROOT% \ WinSxS \ Манифести
  • HKEY_LOCAL_MACHINE \ Схема
  • HKEY_LOCAL_MACHINE \ Компоненти
  • HKEY_LOCAL_MACHINE \ Софтуер \ Microsoft \ Windows \ CurrentVersion \ Компонентно обслужване

В случай, че помощната програма CheckSUR открие грешки или несъответствия, тя ще се опита да ги поправи.

Проблемите със съхранението на компоненти могат да причинят различни грешки при инсталиране на актуализации на Windows. Следва списък на често срещаните кодове за грешки, които тази програма трябва да разреши..

Списък на грешки в WindowsUpdate, причинени от корупция в магазина на компоненти

кодгрешкаописание
0 × 80070002ERROR_FILE_NOT_FOUNDСистемата не може да намери посочения файл.
0x8007000DERROR_INVALID_DATAДанните са невалидни.
0x800F081FCBS_E_SOURCE_MISSINGИзточникът за пакета или файла не е намерен.
0 × 80073712ERROR_SXS_COMPONENT_STORE_CORRUPTМагазинът на компонентите е в непоследователно състояние.
0x800736CCERROR_SXS_FILE_HASH_MISMATCHФайлът на компонент не съвпада с информацията за потвърждение, налична в манифеста на компонента.
0x800705B9ERROR_XML_PARSE_ERRORИсканите XML данни не могат да бъдат анализирани.
0 × 80070246ERROR_ILLEGAL_CHARACTERБеше открит невалиден знак.
0x8007370DERROR_SXS_IDENTITY_PARSE_ERRORИдентификационният низ е неправилно оформен.
0x8007370BERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_NAMEИмето на атрибут в идентичност не е в рамките на валидния диапазон.
0x8007370AERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUEСтойността на атрибут в идентичност не е в рамките на валидния диапазон.
0 × 80070057ERROR_INVALID_PARAMETERПараметърът е неправилен.
0x800B0100TRUST_E_NOSIGNATUREНямаше подпис в темата.
0 × 80092,003CRYPT_E_FILE_ERRORВъзникна грешка, докато Windows Update чете или записва във файл.
0x800B0101CERT_E_EXPIREDИзисквания сертификат не е в рамките на срока му на валидност при проверка спрямо текущия системен часовник или времевия печат в подписания файл.
0x8007371BERROR_SXS_TRANSACTION_CLOSURE_INCOMPLETEЕдин или повече необходими членове на транзакцията не присъстват.
0 × 80070490ERROR_NOT_FOUNDWindows не можа да търси нови актуализации.

В Windows 8 и Windows Server 2012 функционалност, подобна на CheckSUR, вече е вградена в системата и се нарича Входящи корупция ремонт (вградено възстановяване на компоненти). Вграденото възстановяване на компоненти може да работи в два режима:  фона и наръчник. Възстановяването на фона автоматично започва, ако възникнат грешки при опит за инсталиране на Windows Update. В този случай Windows автоматично се опитва да поправи повредения компонент и да инсталира отново пакета Windows Update. В случай, че автоматичното възстановяване не може да отстрани проблема самостоятелно, администраторът може да поправи грешките ръчно, като възстанови функционалното състояние на магазина за компоненти. Можете да направите това с помощта на помощната програма за поддържане на изображението DISM (команда Dism / Online / Cleanup-Image)или с помощта на Powershell (cmdlet Ремонт-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:

Ремонт-WindowsImage -Online -CheckHealth

Проверката на CheckHealth ще отнеме няколко минути. Както можете да видите, текущото състояние на компонентното съхранение в изображението е Здравословно, т.е. не се изисква възстановяване.

В случай че бъдат открити проблеми или грешки, трябва да стартирате процедурата за възстановяване на съхранение с командата:

Dism.exe / Онлайн / Почистване-изображение / Възстановяване на здравето

Подобна команда на Powershell:

Ремонт-WindowsImage -Online -RestoreHealth

В този пример възстановяването на системни файлове беше успешно:

Операцията по възстановяване приключи успешно. Корупцията в компонентния магазин бе отстранена.

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

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

В този пример виждаме, че има само едно изображение на диска (Windows 8 Pro) с индекс 1 (Индекс: 1).

Следващата команда ще започне възстановяване на съхранение с възстановяване на повредени компоненти от оригиналното изображение на Windows 8:

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

, където 1 е индексът на версията на изображението в разпределението, получено по-рано.

След като възстановяването завърши, уверете се, че складът на компонентите е в здраво състояние (състояние: Здравословен)

Следващата (не винаги задължителна стъпка) е проверка на целостта на системните файлове с помощта на командата:

sfc / scannow
съвет. Ако прибягвате до възстановяване на магазина за компоненти поради проблеми с инсталирането на актуализации на Windows, рестартирайте услугата Windows Update и нулирайте локалния кеш на актуализациите. За да направите това, в командния ред, изпълнете следните команди:
net stop wuauserv net stop bits net stop cryptsvc ren% systemroot% \ Софтуерно разпространение oldSD ren% systemroot% \ System32 \ catroot2 oldCat2 net start cryptsvc net start bits net start wuauserv