Повертаючись до технології сховища компонентів (Component Store) в Windows 8 розглянемо сценарії його відновлення. Нагадаємо, що починаючи з Windows Vista Microsoft ввела концепцію компонентного обслуговування ОС (component based servicing). Завдяки компонентної структурі вдалося домогтися створення більш стабільної системи установки / видалення оновлень, патчів і пакетів оновлень SP. Ця ж система лежить в основі архітектури Windows 8. Файли сховища компонентів Windows на диску розташовуються в каталозі WindowsWinSxS, Що має властивість з часом значно розширився в розмірах (докладніше про те, чому розмір цього каталогу з часом зростає і як зменшити розмір папки WinSxS читайте в цій статті).

Однак в деяких випадках сховище компонентів може пошкоджуватися, що призводить до проблем при установці оновлень Windows та іншого ПО Microsoft. Для відновлення сховища компонентів в попередніх версіях Windows (Windows Vista, Windows 7, Windows Server 2008 / R2) Microsoft розробила спеціальну утиліту – CheckSUR или Засіб готовності до оновлення системи (KB947821). Дана утиліта є досить великий за розміром (більше 350 Мб), і в міру вихід нових оновлень Windows регулярно оновлюється. Це означає, що кожен раз доводиться викачувати свіжу версію CheckSUR.

Що ж робить дана утиліта? System Update Readiness Tool перевіряє цілісність наступних ресурсів:

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

  • % SYSTEMROOT% Обслуговування Пакети
  • % SYSTEMROOT% WinSxS Маніфести
    Вміст гілок реєстру:

  • % SYSTEMROOT% WinSxS Маніфести
  • HKEY_LOCAL_MACHINE Схема
  • HKEY_LOCAL_MACHINE Компоненти
  • HKEY_LOCAL_MACHINE Software 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 × 80092003 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 (командлет 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

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

Операція відновлення завершена успішно. Виправлено пошкодження магазину компонентів.

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

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

Get-WindowsImage -ImagePath E:sourcesinstall.wim

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

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

Наступна команда запустить відновлення сховища з відновленням пошкоджених компонентів з оригінального способу Windows 8:

Repair-WindowsImage -Online -RestoreHealth -Source G:sourcesinstall.wim:1

, Де 1 – індекс версії образу в дистрибутиві, отриманий раніше.

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

Наступний (не завжди обов’язковий етап) – перевірка цілісності системних файлів за допомогою команди:

sfc /scannow

Порада. Якщо до відновлення сховища компонентів ви вдалися через проблеми з установкою оновлень Windows, запустіть службу Windows Update і скиньте локальних кеш оновлень. Для цього в командному рядку послідовно виконайте наступні команди:

net stop wuauserv

net stop bits

net stop cryptsvc

ren %systemroot%SoftwareDistribution oldSD

ren %systemroot%System32catroot2 oldCat2

net start cryptsvc

net start bits

net start wuauserv

Leave a Reply

Your email address will not be published. Required fields are marked *