DISM /RestoreHealth: Восстановление хранилища компонентов образа Windows
Для сканирования образа Windows на наличие ошибок и их исправления используется параметр . Рассмотренные ниже команды выполняются в командной строке, запущенной с правами администратора.
Чтобы проверить наличие признака повреждения хранилища компонентов образа Windows (флага CBS) , который выставил один из системных процессов, выполните следующую команду (не применимо к Windows 7/Server 2008R2):
При запуске этой команды не выполняется сканирование хранилища, проверяются лишь записанные ранее значения и события в журнале Windows. Изменения не вносятся. Команда проверит, не помечен ли образ как поврежденный и возможно ли устранить данное повреждение.
В этом примере команда вернула, что с образом все хорошо:
– выполнить полное сканирование хранилища компонентов на наличие повреждений в системных образа Windows (выполняется довольно долго от 10 до 30 минут).
В Windows 7 / Windows Server 2008 R2, чтобы работал параметр DISM /ScanHealth нужно установить отдельное обновление KB2966583 (иначе при запуске DISM будет появляться “Ошибка 87. Параметр ScanHealth не распознан в этом контексте”). Кроме, того эта же команда в Windows 7 используется для проверки хранилища и восстановления системных файлов (нет ключей /CheckHealth и /RestoreHealth).
Если команда /ScanHealth возвращает ошибки:
- Хранилище компонентов подлежит восстановлению (The component sore is repairable);
- Ошибка: 1726. Сбой при удалённом вызове процедуры;
- Ошибка: 1910. Не найден указанный источник экспорта объекта.
Это однозначно говорит о том, что ваш образ Windows 10 поврежден и его нужно восстановить.
Чтобы исправить ошибки, автоматически скачать и заменить файлы повреждённых или отсутствующих компонентов эталонными версиями файлов (библиотек) из центра обновлений Windows (на компьютере должен быть доступ в Интернет), выполните:
Процесс сканирования и восстановления компонентов может быть довольно длительным (30 минут или более).
Если восстановление выполнится успешно, появится сообщение:
Если на компьютере (сервере) отсутствует доступ в Интернет или отключена служба Windows Update, то при восстановлении хранилища компонентов появляются ошибки вида:
- 0x800f0906 — Не удалось скачать исходные файлы. Укажите расположение файлов, необходимых для восстановления компонента, с помощью параметра Источник (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);
- Ошибка: 0x800f0950 — Сбой DISM. Операция не выполнена (0x800f0950 — DISM failed. No operation was performed);
- Ошибка: 0x800F081F. Не удалось найти исходные файлы. Укажите расположение файлов, необходимых для восстановления компонента, с помощью параметра Источник (Error 0x800f081f, The source files could not be found. Use the «Source» option to specify the location of the files that are required to restore the feature).
Вы можете указать WIM или ESD файл с оригинальным установочным образом Windows, который нужно использовать в качестве источника для восстановления файлов компонентов системы. Предположим, вы смонтировали установочный ISO образ Windows 10 в виртуальный привод E:. Для восстановления хранилища компонентов из образа используйте одну из команд:
Или:
Чтобы запретить использовать центр обновлений Windows в Интернете, и выполнять сканирование и восстановление образа Windows только из локального WIM/ESD файла:
Или:
Примечание. Для восстановления поврежденных файлов в хранилище компонентов из локального источника версия и редакция Windows в образе должна полностью совпадать с вашей.
Журнал сканирования и восстановления системных файлов утилиты DISM можно найти здесь: .
После восстановления хранилища компонентов вы можете запустить утилиту проверки системных файлов . Скорее всего она успешно восстановит поврежденные файлы (Программа защиты ресурсов Windows обнаружила поврежденные файлы и успешно их восстановила).
DISM
Утилита обслуживания образов развертывания и управление ими позволяет творить чудеса даже в очень трудных случаях. DISM занимается обслуживанием хранилища компонентов (WinSxS). Его проверка и восстановление как раз по плечу DISM.
Давайте договоримся, что первой я буду указывать команду для cmd, а далее дублировать для PowerShell.
Просмотр состояния хранилища компонентов
Для отображения последнего выясненного состояния хранилища компонентов используется команда:
Эта команда не проверяет хранилище, а отображает последнее известное его состояние.
Проверка хранилища компонентов
Проверка хранилища, напротив, выполняется продолжительное время и отражает реальное положение дел в системе. Для проверки хранилища используется команда:
Она найдет ошибки и предупредит об их наличии, но не восстанавливает. Как видим, у меня с системой всё в порядке.
Восстановление хранилища компонентов
Для восстановления хранилища компонентов DISM требуется источник, откуда он будет брать исправные копии повреждённых компонентов. В качестве источника могут использоваться:
- Windows Update или WSUS
- Установочный образ ESD или WIM
Как видим, вариантов источников много, их можно указывать последовательно в одной команде. Будет использоваться первый, где требуемый компонент будет найден. Есть особенность, что если мы укажем образ соседней системы и компонент там найден не будет, будет произведён поиск в Windows Update.
Команда ниже проверит хранилище на наличие повреждённых компонентов и попробует их восстановить, скачав исходные файлы с центра обновления Windows:
Однако метод может потерпеть неудачу, если отсутствует соединение с интернетом или повреждены компоненты центра обновления Windows. Рассмотрим восстановление с установочного носителя. С загрузочного образа, диска или флешки нам нужен всего один файл: install.wim или install.esd
Иногда требуется указать номер индекса требуемой редакции. Уточнить номер индекса требуемой редакции совсем несложно — например через PowerShell:
Индекс сборки потом указываете через двоеточие. Например:
Если требуется запретить использование Windows Update или WSUS, используйте параметр /LimitAccess.
Восстановление системы, которая не загружается
Рассмотрим случай, когда система уже не загружается. Для её восстановления нам потребуется доступ к системному диску. Мы можем использовать среду восстановления, имеющуюся на компьютере:
Среду восстановления можно запустить с установочного носителя:
Одним словом, не имеет значения как вы получите доступ к диску. Диск можно также подключить к другому компьютеру. Если использовали среду восстановления, то следует разобраться с буквами дисков. Може использовать для этих целей команду bcdedit или запустить notepad и через меню файл — открыть увидеть буквы дисков и их содержимое.
System File Checker
Утилита проверки целостности системных файлов и в этой ситуации может прийти на помощь! Для этого у ней есть соответствующие параметры /offbootdir и /offwindir. Нам остаётся лишь указать букву системного диска и путь папки Windows.
Программа работает долго, но зачастую результат превосходит ожидания.
DISM
DISM настолько крут, что и в такой ситуации найдёт выход. Подробнее про офлайн обслуживание хранилища компонентов поговорим в другой раз — сейчас сосредоточимся на восстановлении. Сразу скажу, что из среды восстановления PowerShell не работает. Команды управления образом апривожу на случай, если диск подключен к другой системе.
Просмотр состояния хранилища компонентов
Команда используется как и ранее с той лишь разницей, что мы указываем путь к системному диску повреждённой Windows
Мы видим, что хранилище компонентов моей тестовой системы требует восстановления.
Проверка хранилища компонентов
Проверка хранилища компонентов как и ранее работает долго, но даёт более актуальный результат в отличие от предыдущей команды.
Восстановление хранилища компонентов
Восстановление хранилиза компонентов по сути своей не отличается от ситуации с загруженной системой, поэтому не буду приводить полный список команд. Ограничусь простой командой восстановления через Windows Update. Разница лишь в указании пути к системе.
Способ 7: Есть две операционные системы
Данный способ помогает, когда у вас существует две операционные системы, но загружается совершенно другая. Также могут быть проблемы с загрузкой обоих, особенно после установки второй ОС. Мы сейчас попробуем сделать обе ОС активными, чтобы вы смогли выбирать их при загрузке. Опять через загрузочную флешку заходим в консоль и прописываем волшебные заклинания:
Bootrec /ScanOs /RebuildBcd
После этого система предложит записать обе системы в меню загрузки. В обоих случаях нужно ввести в консоль обычную букву «Y» и нажать «Enter».
Прежде чем выходить командной «exit» – введите ещё одну команду:
bootsect /NT60 SYS
Проверяем целостность файлов в Windows 10 с помощью SFC
Начинать проверку целостности файлов операционной системы рекомендуется с команды SFC. Она позволяет найти ошибки в ключевых файлах и исправить их.
Выполнить проверку с помощью SFC можно как в привычном интерфейсе Windows 10 через командную строку, так и через среду восстановления, далее мы разберем оба этих способа.
Способ-1: Через командную строку в интерфейсе Windows
Выполнять проверку с помощью SFC лучше начать через стандартный интерфейс Windows, используя командную строку. Чаще всего этого оказывается достаточно.
Чтобы проверить целостность файлов необходимо сделать следующее:
- Запустить командную строку от имени администратора (кстати вот 5 способов как это сделать). Я воспользуюсь сочетанием клавиш Win+Х и в открывшемся слева меню выберу пункт «Командная строка (Администратор)»
- Прописываем команду sfc /scannow и нажимаем Enter;
- После этого начнется процесс сканирования системы и замены поврежденных (измененных) элементов.
Если с системными файлами Windows нет никаких проблем, после проверки мы увидим сообщение, что «Защита ресурсов Windows не обнаружила нарушение целостности».
В такой ситуации можно переходить к проверке файлов с помощью DISM
Однако в некоторых ситуациях неверно работать могут файлы, которые отвечают за отображение графического интерфейса Windows, и их система исправить не сможет, поскольку они активны. В таких случаях необходимо провести проверку SFC через среду восстановления, которая не требует загрузки графического интерфейса и способна работать с данными файлами, а также изменять их при необходимости.
Способ-2: Через среду восстановления
Чтобы провести проверку целостности файлов с помощью команды SFC через среду восстановления, потребуется выполнить следующие действия:
- Нажмите в левом нижнем углу на кнопку «Пуск» и перейдите в «Параметры»;
- Далее выберите пункт «Обновление и безопасность», в левой части экрана перейдите на вкладку «Восстановление» и в пункте «Особые варианты загрузки» нажмите «Перезагрузить сейчас». В результате данных действий компьютер отправится в перезагрузку;
- После этого потребуется запустить систему с заранее созданного диска (или флешки) восстановления Windows 10. Сперва появится экран выбора языка, а далее предложение установить систему. На данном этапе необходимо нажать в левом нижнем углу на надпись «Восстановление системы»;
- Загрузится среда восстановления, где необходимо запустить командную строку. Для этого нажмите «Поиск и устранение неисправностей», далее пункт «Дополнительные параметры» и выберите вариант «Командная строка»;
- Далее запустится командная строка, в которой последовательно необходимо писать команды, приведенные ниже, а после каждой из них нажимать Enter:
После выполнения второй команды отобразится список доступных томов
Здесь требуется обратить внимание на диск, который зарезервирован системой и на системный раздел с операционной системой. Далее с ними потребуется производить манипуляции. Продолжите вводить команды:
Продолжите вводить команды:
В последней команде требуется указать диски, которые были отмечены выше. То есть, в приведенном примере команды диск C является разделом с загрузчиком, а диск E – местом, где установлена операционная система Windows 10.
- После ввода последней из четырех команд начнется сканирование целостности файлов операционной системы.
Преимуществом работы через среду восстановления является возможность инструмента SFC заменять файлы, которые необходимы для загрузки графического интерфейса Windows.
Проверка в данном случае продлится чуть дольше, чем при работе через командную строку в интерфейсе операционной системы. При этом графически пользователя командная строка в среде восстановления не будет извещать о скорости выполнения процесса. Определить, что компьютер работает исправно и проверка целостности файлов не зависла можно по мигающему значку подчеркивания.
По окончанию проверки пользователь увидит информацию о том, что нарушения целостности не были обнаружены или были успешно устранены. После этого можно перейти ко второму способу проверки – при помощи инструмента DISM.
Устранение ошибок Windows Update, вызванных повреждением хранилища компонентов
В справке предыдущих ОС Microsoft для ошибки 80073712 есть описание, из которого следует, что причиной является повреждение хранилища компонентов. Для Windows Vista и Windows 7 была выпущена утилита System Update Readiness Tool (CheckSUR), призванная устранить целый ряд ошибок Windows Update.
80070002 ERROR_FILE_NOT_FOUND 8007000D ERROR_INVALID_DATA 800F081F CBS_E_SOURCE_MISSING 80073712 ERROR_SXS_COMPONENT_STORE_CORRUPT 800736CC ERROR_SXS_FILE_HASH_MISMATCH 800705B9 ERROR_XML_PARSE_ERROR 80070246 ERROR_ILLEGAL_CHARACTER 8007370D ERROR_SXS_IDENTITY_PARSE_ERROR 8007370B ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME 8007370A ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE 80070057 ERROR_INVALID_PARAMETER 800B0100 TRUST_E_NOSIGNATURE 80092003 CRYPT_E_FILE_ERROR 800B0101 CERT_E_EXPIRED 8007371B ERROR_SXS_TRANSACTION_CLOSURE_INCOMPLETE 80070490 ERROR_NOT_FOUND
Для исправления этих ошибок в Windows 8 и более новых ОС утилита CheckSUR не нужна, потому что все необходимое уже встроено в систему! Вы можете восстановить поврежденные компоненты с помощью командлета PowerShell (рекомендуемый способ) или утилиты DISM.exe.
Этап 1 – восстановление поврежденного хранилища компонентов
Восстановление можно выполнить без установочного диска Windows, но в некоторых случаях он может вам понадобиться.
Восстановление без установочного диска
В этом случае используются файлы хранилища на локальном диске и Windows Update.
Запустите PowerShell и выполните команду:
Repair-WindowsImage -Online -RestoreHealth
Альтернативно, вы можете выполнить в командной строке, запущенной с правами администратора, команду:
Dism /Online /Cleanup-Image /RestoreHealth
Длительность процедуры восстановления зависит от конфигурации ПК и степени повреждения хранилища. У меня она заняла около 7 минут, а ее результат вы видите на рисунке ниже.
Состояние хранилища компонентов обозначается параметром Image Health State. У него Healthy означает, что с хранилищем компонентов все нормально. Для дальнейшей диагностики переходите к проверке целостности системных файлов чуть ниже ↓ Если же повреждение хранилища не исправлено, нужно попробовать сделать это с помощью установочного диска.
Восстановление с помощью установочного диска
Когда системе не удается восстановить какие-либо компоненты, вам может помочь оригинальный установочный диск.
Щелкните правой кнопкой мыши по ISO-образу и выберите в меню Подключить
Обратите внимание на букву диска, которую получил подключенный образ.
В PowerShell выполните команду:
Repair-WindowsImage -Online -RestoreHealth -Source:WIM:Е:\sources\install.wim:1
Здесь буква «E» соответствует букве подключенного образа, а цифра «1» — индексу издания в образе (в примере используется образ Windows 8 Enterprise с единственным изданием). По окончании процедуры убедитесь, что хранилище компонентов в порядке (Healthy).
По окончании процедуры убедитесь, что хранилище компонентов в порядке (Healthy).
Этап 2 – проверка целостности системных файлов
Строго говоря, этот этап не имеет отношения к восстановлению компонентов. Однако техническая поддержка Microsoft рекомендует после проверки целостности хранилища компонентов также проверить и целостность системных файлов. Для этого в командной строке, запущенной от имени администратора, выполните команду:
sfc /scannow
У меня один из файлов был поврежден, и утилита SFC успешно восстановила его.
Случаи, когда системе не удалось восстановить какие-либо файлы, выходят за рамки этой статьи (я разберу их в другой раз).
Этап 3 – установка обновления
Итак, две команды восстановили целостность хранилища компонентов и системных файлов. Самое время попробовать установить обновление заново.
Как видите, на сей раз у меня все сработало!