Връщайки се към технологията на компонентния магазин в 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 × 80070002 | ERROR_FILE_NOT_FOUND | Системата не може да намери посочения файл. |
0x8007000D | ERROR_INVALID_DATA | Данните са невалидни. |
0x800F081F | CBS_E_SOURCE_MISSING | Източникът за пакета или файла не е намерен. |
0 × 80073712 | ERROR_SXS_COMPONENT_STORE_CORRUPT | Магазинът на компонентите е в непоследователно състояние. |
0x800736CC | ERROR_SXS_FILE_HASH_MISMATCH | Файлът на компонент не съвпада с информацията за потвърждение, налична в манифеста на компонента. |
0x800705B9 | ERROR_XML_PARSE_ERROR | Исканите XML данни не могат да бъдат анализирани. |
0 × 80070246 | ERROR_ILLEGAL_CHARACTER | Беше открит невалиден знак. |
0x8007370D | ERROR_SXS_IDENTITY_PARSE_ERROR | Идентификационният низ е неправилно оформен. |
0x8007370B | ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME | Името на атрибут в идентичност не е в рамките на валидния диапазон. |
0x8007370A | ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE | Стойността на атрибут в идентичност не е в рамките на валидния диапазон. |
0 × 80070057 | ERROR_INVALID_PARAMETER | Параметърът е неправилен. |
0x800B0100 | TRUST_E_NOSIGNATURE | Нямаше подпис в темата. |
0 × 80092,003 | CRYPT_E_FILE_ERROR | Възникна грешка, докато Windows Update чете или записва във файл. |
0x800B0101 | CERT_E_EXPIRED | Изисквания сертификат не е в рамките на срока му на валидност при проверка спрямо текущия системен часовник или времевия печат в подписания файл. |
0x8007371B | ERROR_SXS_TRANSACTION_CLOSURE_INCOMPLETE | Един или повече необходими членове на транзакцията не присъстват. |
0 × 80070490 | ERROR_NOT_FOUND | Windows не можа да търси нови актуализации. |
В Windows 8 и Windows Server 2012 функционалност, подобна на CheckSUR, вече е вградена в системата и се нарича Входящи корупция ремонт (вградено възстановяване на компоненти). Вграденото възстановяване на компоненти може да работи в два режима: фона и наръчник. Възстановяването на фона автоматично започва, ако възникнат грешки при опит за инсталиране на Windows Update. В този случай Windows автоматично се опитва да поправи повредения компонент и да инсталира отново пакета Windows Update. В случай, че автоматичното възстановяване не може да отстрани проблема самостоятелно, администраторът може да поправи грешките ръчно, като възстанови функционалното състояние на магазина за компоненти. Можете да направите това с помощта на помощната програма за поддържане на изображението DISM (команда Dism / Online / Cleanup-Image)или с помощта на Powershell (cmdlet Ремонт-WindowsImage).
За да проверите състоянието на магазина за компоненти, отворете команден ред с повишени привилегии и стартирайте:
Dism / Online / Cleanup-Image / CheckHealth
Съвети.
- DISM, за разлика от повечето помощни програми за Windows, е чувствителен към регистъра.
- Командата 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