Восстановление хранилища компонентов Windows: способы решения проблемы
Восстановление хранилища компонентов Windows 10
Если при тех или иных действиях по восстановлению системных файлов и образа Windows 10 с помощью DISM вы видите сообщение об ошибках «Ошибка 14098 Хранилище компонентов повреждено», «Хранилище компонентов подлежит восстановлению», «Сбой DISM. Операция не выполнена» или «Не удалось найти исходные файлы. Укажите расположение файлов, необходимых для восстановления компонента, с помощью параметра Источник», требуется выполнить восстановление хранилища компонентов, о чем и пойдет речь в этой инструкции.
Также к восстановлению хранилища компонентов прибегают в том случае, когда при восстановлении целостности системных файлов с помощью sfc /scannow команда сообщает о том, что «Программа защиты ресурсов Windows обнаружила поврежденные файлы, но не может восстановить некоторые из них».
Простое восстановление
Сначала о «стандартном» способе восстановления хранилища компонентов Windows 10, который работает в случаях, когда нет каких-то серьезных повреждений системных файлов, а сама ОС исправно запускается. С большой вероятностью помогает в ситуациях «Хранилище компонентов подлежит восстановлению», «Ошибка 14098. Хранилище компонентов повреждено» или при ошибках восстановления с помощью sfc /scannow.
Для восстановления выполните следующие простые шаги
- Запустите командную строку от имени администратора (для этого в Windows 10 можно начать набирать «Командная строка» в поиске на панели задач, затем нажать правой кнопкой мыши по найденному результату и выбрать «Запуск от имени администратора»).
- В командной строке введите следующую команду:
- Выполнение команды может занять продолжительно время. После выполнения, если вы получаете сообщение о том, что хранилище компонентов подлежит восстановлению, выполните следующую команду.
- Если всё прошло гладко, то по завершении процесса (может «зависать», но настоятельно рекомендую дождаться окончания) вы получите сообщение «Восстановление выполнено успешно. Операция успешно завершена».
Если в итоге вы получили сообщение об успешном восстановлении, то все дальнейшие описываемые в этом руководстве методы вам не пригодятся — всё сработало должным образом. Однако, это не всегда так происходит.
Восстановление хранилища компонентов с использованием образа Windows 10
Следующий метод — использование образа Windows 10 для использования системных файлов с него для восстановления хранилища, что может пригодиться, например, при ошибке «Не удалось найти исходные файлы».
Вам потребуется: образ ISO с такой же Windows 10 (разрядность, версия), что установлена на вашем компьютере или же диск/флешка с нею. В случае, если используется образ, подключите его (правый клик по файлу ISO — подключить). На всякий случай: Как скачать Windows 10 ISO с сайта Майкрософт.
Шаги по восстановлению будут следующими (если из текстового описания команды что-то будет не ясно, обратите внимание на скриншот с выполнением описываемой команды):
- В подключенном образе или на флешке (диске) зайдите в папку sources и обратите внимание на находящийся там файл с именем install (самый большой по объему). Нам потребуется знать его точное имя, возможны два варианта: install.esd или install.wim
- Запустите командную строку от имени администратора и используйте следующие команды.
- В результате выполнения команды вы увидите список индексов и редакций Windows 10 в файле образа. Запомните индекс для вашей редакции системы.
Дождитесь завершения операции восстановления, которое, возможно, в этот раз пройдет успешно.
Исправление хранилища компонентов в среде восстановления
Если по той или иной причине восстановление хранилища компонентов не удается выполнить в запущенной Windows 10 (например, вы получаете сообщение «Сбой DISM. Операция не выполнена»), это можно сделать в среде восстановления. Я опишу способ с использованием загрузочной флешки или диска.
- Загрузите компьютер за загрузочной флешки или диска с Windows 10 в той же разрядности и версии, что установлена на компьютере или ноутбуке. См. Создание загрузочной флешки Windows 10.
- На экране после выбора языка внизу слева нажмите «Восстановление системы».
- Перейдите к пункту «Исправление неисправностей» — «Командная строка».
- В командной строке используйте по порядку 3 команды: diskpart, list volume, exit. Это позволит узнать текущие буквы разделов дисков, которые могут отличаться от тех, к которые используются в запущенной Windows 10. Далее используйте команды.
- Или install.wim, файл находится в папке sources на флешке, с которой вы загрузились. В этой команде мы узнаем индекс нужной нам редакции Windows 10.
- Здесь в /Image:C: указывается буква диска с установленной Windows При наличии отдельного раздела на диске под пользовательские данные, например, D, рекомендую также указать параметр /ScratchDir:D: как на скриншоте для использования этого диска под временные файлы.
Как обычно, дожидаемся окончания восстановления, с большой вероятностью в этот раз оно пройдет успешно.
Восстановление с распакованного образа на виртуальном диске
И еще один метод, более сложный, но также способный пригодиться. Использовать его можно как в среде восстановления Windows 10, так и в запущенной системе. При использовании метода необходимо наличие свободного пространства в объеме около 15-20 Гб на каком-либо разделе диска.
В моем примере будут использованы буквы: C — диск с установленной системой, D — загрузочная флешка (или подключенный образ ISO), Z — диск на котором будет создаваться виртуальный диск, E — буква виртуального диска, которая будет ему присвоена.
- Запустите командную строку от имени администратора (или запустите её же в среде восстановления Windows 10), используйте команды.
- diskpart
- create vdisk file=Z:virtual.vhd type=expandable maximum=20000
- attach vdisk
- create partition primary
- format fs=ntfs quick
- assign letter=E
- exit
- Dism /Get-WimInfo /WimFile:D:sourcesinstall.esd (или wim, в команде смотрим на нужный нам индекс образа).
- Dism /Apply-Image /ImageFile:D:sourcesinstall.esd /index:индекс_образа /ApplyDir:E:
- Dism /image:C: /Cleanup-Image /RestoreHealth /Source:E:Windows /ScratchDir:Z: (если восстановление производится в запущенной системе, то вместо /Image:C: используйте /Online)
И ожидаем в надежде на то, что в этот раз получим сообщение «Восстановление выполнено успешно». После проведения восстановления вы можете размонтировать виртуальный диск (в запущенной системе правый клик по нему — отключить) и удалить соответствующий ему файл (в моем случае — Z:virtual.vhd).
Дополнительная информация
Если сообщение о том, что хранилище компонентов повреждено вы получаете при установке .NET Framework, а его восстановление описываемыми методами никак не влияет на ситуацию, попробуйте зайти в панель управления — программы и компоненты — включение или отключение компонентов Windows, отключить все компоненты .Net Framework, перезагрузить компьютер, а затем повторить установку.
Как восстановить Windows 10 (хранилище компонентов образа) с помощью DISM RestoreHealth
В данной статье показаны действия, с помощью которых можно восстановить Windows 10 (хранилище компонентов образа) с помощью DISM RestoreHealth.
В случае если операционная система работает не корректно, а утилита SFC не может справится с проблемой и выдаёт ошибку, то это значит что в операционной системе нарушена целостность хранилища системных компонентов, которые находятся в папке WinSxS системной директории.
Чтобы восстановить повреждённые компоненты и тем самым вернуть систему в рабочее состояние нужно воспользоваться утилитой для развертывания и обслуживания образов DISM.
Диагностика хранилища компонентов с помощью DISM
Следующие две команды выполняют диагностику (сканирование) системных компонентов образа на наличие повреждений.
Запустите командную строку от имени администратора и выполните следующую команду:
DISM /Online /Cleanup-Image /CheckHealth
Данная команда проверяет, был ли образ помечен как поврежденный и можно ли устранить повреждение, при этом никаких изменений в систему не вносится.
Если при выполнении предыдущей команды повреждение хранилища компонентов не обнаружено, то чтобы убедиться что все в порядке, необходимо запустить диагностику с параметром /ScanHealth. В этом случае выполняется более тщательная проверка целостности и наличие повреждений хранилища компонентов, при этом процесс сканирования занимает больше времени и также никакие изменения в систему не вносятся.
В командной строке открытой от имени администратора выполните команду:
DISM /Online /Cleanup-Image /ScanHealth
Восстановление хранилища компонентов /Restore Health
Если при выполнении предыдущих команд вы получили сообщения о различных ошибках, например: Хранилище компонентов подлежит восстановлению, Ошибка: 1726 Сбой при удалённом вызове процедуры, Ошибка: 1910 Не найден указанный источник экспорта объекта, то чтобы исправить это, нужно восстановить хранилище компонентов.
Чтобы восстановить хранилище компонентов, в командной строке открытой от имени администратора выполните команду:
DISM /Online /Cleanup-Image /RestoreHealth
Данная команда запустит процесс проверки и автоматического восстановления хранилища компонентов, при этом будет использоваться центр обновления Windows для загрузки и восстановления поврежденных файлов, что не гарантирует успешного выполнения в случае проблем с доступом к сети интернет или при повреждении компонентов службы обновления. Процесс сканирования и автоматического восстановления может занять около 20 минут и больше.
Если восстановление хранилища компонентов выполнено успешно, то теперь выполните проверку и восстановление целостности системных файлов с помощью команды sfc /scannow
Восстановление хранилища компонентов с указанием источника
Если команда с параметром /Restore Health после выполнения выдала ошибку 0x800f0906 Не удалось скачать исходные файлы. Укажите расположение файлов, необходимых для восстановления компонента, с помощью параметра «Источник» или ошибку 0x800f081f Не удалось найти исходные файлы. Укажите расположение файлов, необходимых для восстановления компонента, с помощью параметра «Источник», или ошибку 0x800f0950 Сбой DISM. Операция не выполнена,.
то для дальнейшего восстановления потребуется оригинальный ISO-образ Windows 10 который можно получить при помощи Media Creation Tool (соблюдая разрядность и редакцию) или установочная флешка (диск) с дистрибутивом Windows 10.
После того, как вы скачали образ, смонтируйте его в виртуальный привод стандартными средствами и в окне Этот компьютер проверьте, какая буква была присвоена смонтированному образу.
Если у вас имеется загрузочный диск DVD или USB накопитель с дистрибутивом Windows 10, то просто вставьте диск или подключите внешний носитель, и посмотрите, какая буква была присвоена этому накопителю в окне Этот компьютер.
Восстановление хранилища с файлом install.esd
После того как вы смонтировали ISO-образ в виртуальный привод или подключили установочный USB накопитель с дистрибутивом Windows 10, заходим в папку sources и смотрим какое расширение у файла образа install , оно может быть install .esd или install .wim , это пригодится в дальнейшем при вводе команды. Обычно при скачивании образа с помощью Media Creation Tool файл образа бывает с расширением .esd , то есть install.esd . Но также файл образа может быть с расширением .wim , то есть install.wim
Теперь узнаем какие индексы содержит файл образа. В случае, если это install.esd, то в командной строке открытой от имени администратора выполните команду:
DISM /Get-WimInfo /WimFile:F:\Sources\install.esd
Узнав букву диска с дистрибутивом Windows 10 и индекс редакции операционной системы, восстановим хранилище системных компонентов.
Для этого в командной строке открытой от имени администратора выполните команду:
DISM /Online /Cleanup-Image /RestoreHealth /Source:ESD:F:\Sources\ install.esd : 4 /LimitAccess
Где F — буква виртуального дисковода с Windows 10 или буква флеш-накопителя с Windows 10
install.esd : 4 — файл образа с нужным вам индексом
LimitAccess — параметр запрещающий доступ к центру обновлений.
Если восстановление хранилища компонентов выполнено успешно, то теперь осталось выполнить проверку и восстановление целостности системных файлов с помощью команды sfc /scannow
Восстановление хранилища с файлом install.wim
Если в папке sources находится файл образа install.wim, то теперь узнаем какие индексы содержит файл образа. В командной строке открытой от имени администратора выполните команду:
DISM /Get-WimInfo /WimFile:G:\Sources\install.wim
Узнав букву диска с дистрибутивом Windows 10 и индекс редакции операционной системы, восстановим хранилище системных компонентов.
Для этого в командной строке открытой от имени администратора выполните команду:
DISM /Online /Cleanup-Image /RestoreHealth /Source:WIM:G:\Sources\ install.wim : 2 /LimitAccess
Где G — буква виртуального дисковода с Windows 10 или буква флеш-накопителя с Windows 10
install.wim : 2 — файл образа с нужным вам индексом
LimitAccess — параметр запрещающий доступ к центру обновлений.
Если восстановление хранилища компонентов выполнено успешно, то теперь выполните проверку и восстановление целостности системных файлов с помощью команды sfc /scannow
Восстановление хранилища путем монтирования install.wim
Далее представлен ещё один, более сложный способ по восстановлению хранилища компонентов.
Смонтируйте (подключите) ISO-образ в виртуальный привод или подключите установочный USB накопитель с дистрибутивом Windows 10, зайдите в папку sources и посмотрите какое расширение у файла образа install , оно может быть install .esd или install .wim , это пригодится в дальнейшем при вводе команды. В данном примере рассмотрены действия с файлом install.wim.
Теперь узнаем какие индексы содержит файл образа, для этого в командной строке открытой от имени администратора выполните команду:
DISM /Get-WimInfo /WimFile:F:\Sources\install.wim
Где F — буква флеш-накопителя с Windows 10 или буква виртуального дисковода с Windows 10.
В данном примере мы видит что в файле install.wim имеется два индекса (то есть две редакции Windows 10, в данном примере будет восстанавливаться хранилища компонентов Windows 10 Pro, запоминаем нужный индекс, нужной редакции операционной системы).
Теперь создадим временную папку, в которую смонтируем файл образа Windows (wim), для этого в командной строке открытой от имени администратора выполните команду:
Затем смонтируем файл install.wim в созданную директорию, выполнив команду:
DISM /Mount-Wim /WimFile:F:\sources\install.wim /index: 2 /MountDir:C:\WIM /ReadOnly
Где F — буква флеш-накопителя с Windows 10, которую мы узнали ранее.
index: 2 — нужный индекс, нужной редакции операционной системы, который также мы узнали заранее.
ReadOnly — с помощью этого параметра устанавливаются права полного доступа к папке в которую монтируется файл install.wim.
Теперь собственно запустим процесс восстановления хранилища компонентов, выполнив команду:
DISM /Online /Cleanup-Image /RestoreHealth /Source:C:\WIM\Windows /LimitAccess
После того как процесс восстановления успешно выполнится, размонтируйте (отключите) образ, выполнив команду:
Удалите созданную ранее временную папку, выполнив команду:
Теперь обязательно перезагрузите компьютер, для этого выполните команду:
После перезагрузки компьютера выполните проверку и восстановление целостности системных файлов с помощью команды sfc /scannow
Восстанавливаем поврежденное хранилище компонентов
Здравствуйте. В одной из предыдущих публикаций я рассказывал, как выполнить восстановление поврежденного хранилища компонентов с помощью командной строки. Но есть еще один способ, который может сработать, если первый метод не помогает.
Предыстория
Не буду повторяться, поскольку начало «истории» об очистке папки WinSxS Вы можете найти по ссылке. Затем я рассказывал о возможных проблемах этого процесса. Конкретно, речь шла об ошибке 14098, связанной с повреждением хранилища компонентов. Восстановить их можно через утилиту CMD, но для этого требуется подключение к интернету. Если же оно отсутствует, то после запуска нужной команды отобразиться код ошибки 800f0906. Отмечу, что проблема может возникнуть и при наличии сетевого соединения. Вот яркий пример:
Как видите, не получается скачать необходимые файлы компонентов. Нам предлагают указать расположение элементов вручную. Но как это сделать?
Восстановление поврежденного хранилища компонентов Windows в PowerShell
Обязательным условием данного решения является активная служба Windows Update и доступ к интернету.
- Сначала предстоит запустить приложение Power Shell. Сделать это проще всего через поиск:
- Открываем утилиту с администраторскими правами, иначе эффекта не будет.
- Теперь вводим код:
Repair-WindowsImage -Online –RestoreHealth
- Нажимаем «Ввод» на клавиатуре (клавиша Enter)
- Если проблем с интернетом нет, то увидите процесс в виде увеличивающегося количества кружочков:
- В конце процедуры увидите сообщение со статусом операции. На успешность укажет значение «Healthy»:
Это все хорошо, но как поступить, когда связь с сетью недоступна. Увы, бывает и такое. Сейчас поведаю один интересный способ.
Восстановление с помощью образа системы
Как Вы уже, наверное, догадались, нам понадобиться образ ISO с операционной системой Windows соответствующей версии. Его можно скачать на сайте Майкрософт или из других известных Вам источников.
После того, как образ будет в Вашем распоряжении, его следует «открыть» двойным щелчком левой кнопки мыши. Это действие позволит монтировать ISO в виртуальный привод для просмотра его содержимого:
Теперь снова открываем PowerShell с правами админа (выше я рассказывал, как это делать) и прописываем команду:
Dism /Get-WimInfo /WimFile:G:sourcesinstall.wim
Смотрим на цифру индекса, запоминаем её и теперь используем команду:
Repair-WindowsImage -Online -RestoreHealth -Source G:sourcesinstall.wim:1
В конце вставляем свое индексное значение (в моем случае – 1, а в Вашем может быть другое), которое определяет количество систем, расположенных внутри образа.
Итогом операции будет сообщение со статусом «Healthy», если все пройдет гладко.
Осталось только просканировать систему на целостность. Запускаем консоль командной строки и вводим:
Поздравляю с очередной решенной проблемой. Возможно, было непросто, и возникли вопросы по теме. Милости прошу в комментарии, где можно высказать своё мнение, поделиться впечатлениями и предложить более эффективный способ восстановления поврежденного хранилища компонентов Windows 10 (если он существует).
Восстановление хранилища компонентов
Поскольку в современных версиях операционной системы Windows (начиная с Vista) компонентная модель является одной из ключевых системных структур, обеспечивающих бесперебойную работу операционной системы, поддержание её в рабочем состоянии крайне критично для нормального функционирования исполнительной подсистемы Windows. Дело в том, что на протяжении жизненного цикла операционной системы, хранилище компонентов претерпевает постоянные изменения и время от времени может повреждаться. Основные причины рассогласованного состояния хранилища компонентов заключаются в том, что:
- в процессе обновления операционной системы могут повреждаться/удаляться файлы компонентов в местоположениях: %SYSTEMROOT%ServicingPackages и %SYSTEMROOT%WinSxS ;
- в процессе обновления операционной системы могут повреждаться/удаляться ветви/ключи реестра по путям: HKLMComponents , HKLMSchema и HKLMSoftwareMicrosoftWindowsCurrentVersionComponent Based Servicing ;
описанные причины могут быть следствием более глобальных сбоев:
- Ошибки при передаче файлов по сетевому интерфейсу;
- Ошибки дисковой/файловой подсистем;
- Аппаратные сбои: ошибки чтения/записи оперативной памяти, сбои в любых иных аппаратных компонентах;
- Ошибки в работе сторонних инструментов оптимизации: средства очистки реестра, оптимизации файловой системы, оптимизации хранилища компонентов, оптимизации каталога распространения и прч.
- Ошибки в коде модулей компонентов Центра обновления Windows;
Подобные дефекты хранилища компонентов WinSxS могут выявляться при попытках пользователя произвести обновление системы (например, через установку обновления безопасности):
Или же могут быть выявлены в процессе работы разнообразных диагностических и сервисных утилит (модули, входящие в состав Центра обновления Windows), о чем в лог-файлах нам красноречиво сигнализирует статус ERROR_SXS_COMPONENT_STORE_CORRUPT . Описанные выше проблемы впоследствии становятся причиной возникновения различного рода отказов установки обновлений. Чаще всего повреждаются *.cat , *.mum , *.manifest и *.dll -файлы. Все найденные методы восстановления хранилища компонентов я решил выделить в отдельные статьи, а тут попробовать организовать что-то вроде своеобразного хаба.
Этапы восстановления хранилища компонентов
Итак, для восстановления хранилища компонентов у нас в распоряжении имеется целая серия разнообразных методик. Рекомендуется выполнить в указанном порядке следующие действия:
- Запустить проверку целостности системных файлов командой: sfc /scannow . Если результатом явились сообщения о невосстановимых в авторежиме ошибках, и вы их непременно хотите устранить на этом этапе, то как это сделать — в статье про sfc (хотя ошибки на данном этапе можно и пропустить, тем более если у вас не получается их восстановить).
- Произвести восстановления хранилища компонентов:
- для Windows 8/10+ : Восстановление хранилища компонентов при помощи DISM
- для Windows Vista/7 : Восстановление хранилища компонентов при помощи SURT
- Запустить утилиту SFCFix : Восстановление хранилища компонентов при помощи SFCFix
- Выполнить синхронизацию оригинальных файлов с рабочими папками и пересоздание жёстких ссылок повторным запуском команды: sfс /scannow
- Дополнение: если на каком-либо из выполненных вами шагов (1-4) обнаружены поврежденные файлы, которые соответствующие утилиты не смогли автоматически восстановить, то рекомендации по восстановлению были даны в соответствующих статьях. Но если вдруг что-то пошло не так или же вы что-то пропустили, то повторюсь — можно провести поиск и анализ [оставшихся] ошибок в следующих файлах журналов:
- для Windows 8/10+ : %Windir%LogsCBSCBS.log (при необходимости CbsPersist_*.cab ) и %Windir%LogsDISMDISM.log
- для Windows Vista/7 : %Windir%LogsCBSCBS.log (при необходимости CbsPersist_*.cab ) и %Windir%LogsCBSCheckSUR.log (при необходимости CheckSUR.persist.log )
Ну и напоследок методики, напрямую не относящиеся к восстановлению хранилища компонентов, но позволяющие устранить некоторые ошибки, связанные с обновлениями:
Выводы
В общем случае, стратегия автоматического и ручного восстановления хранилища компонентов заключается в поэтапном выявлении поврежденных зависимостей, имен отсутствующих/поврежденных файлов и их планомерном восстановлении с использованием разнообразных методик. Иногда для проведения всех этих манипуляций в ручном режиме требуется довольно существенное время, поскольку чаще всего операции приходится повторять для каждого сбойного файла. Часто в этой кропотливой работе требуются еще и довольно хорошие знания устройства компонентной модели. Отдельно стоит отметить системы, представляющие собой «кастомные» любительские сборки, поскольку на них риск убить компонентную модель многократно повышается.
Теоретически, в самом крайнем случае, восстановление хранилища компонентов можно было бы провести путем переноса (с использованием LiveCD) с работоспособной машины (имеющей аналогичную версию операционной системы) следующих частей:
- Всех вложенных файлов/директорий в папке %WinDir%WinSxS ;
- Всех вложенных файлов/директорий в папке %WinDir%Servicing ;
- Все содержимое ветвей реестра: HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionComponent Based Servicing и HKEY_LOCAL_MACHINECOMPONENTS ;
но на деле подобный глобальный поход может привести к падению системы в синий экран смерти, так что будьте предельно аккуратны!!