- Восстановление хранилища компонентов
- Этапы восстановления хранилища компонентов
- Выводы
- Очистка папки WinSxS в Windows 10, 8 и Windows 7
- Очистка папки WinSxS в Windows 10
- Как очистить папку WinSxS в Windows 7
- Удаление содержимого WinSxS в Windows 8 и 8.1
- Автоматическая очистка резервных копий обновлений в WinSxS
Восстановление хранилища компонентов
Поскольку в современных версиях операционной системы Windows (начиная с Vista) компонентная модель является одной из ключевых системных структур, обеспечивающих бесперебойную работу операционной системы, поддержание её в рабочем состоянии крайне критично для нормального функционирования исполнительной подсистемы Windows. Дело в том, что на протяжении жизненного цикла операционной системы, хранилище компонентов претерпевает постоянные изменения и время от времени может повреждаться. Основные причины рассогласованного состояния хранилища компонентов заключаются в том, что:
- в процессе обновления операционной системы могут повреждаться/удаляться файлы компонентов в местоположениях: %SYSTEMROOT%\Servicing\Packages и %SYSTEMROOT%\WinSxS ;
- в процессе обновления операционной системы могут повреждаться/удаляться ветви/ключи реестра по путям: HKLM\Components , HKLM\Schema и HKLM\Software\Microsoft\Windows\CurrentVersion\Component 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%\Logs\CBS\CBS.log (при необходимости CbsPersist_*.cab ) и %Windir%\Logs\DISM\DISM.log
- для Windows Vista/7 : %Windir%\Logs\CBS\CBS.log (при необходимости CbsPersist_*.cab ) и %Windir%\Logs\CBS\CheckSUR.log (при необходимости CheckSUR.persist.log )
и уже с полученным списком поврежденных файлов [самостоятельно] произвести восстановление компонентов прямой заменой файлов
Ну и напоследок методики, напрямую не относящиеся к восстановлению хранилища компонентов, но позволяющие устранить некоторые ошибки, связанные с обновлениями:
Выводы
В общем случае, стратегия автоматического и ручного восстановления хранилища компонентов заключается в поэтапном выявлении поврежденных зависимостей, имен отсутствующих/поврежденных файлов и их планомерном восстановлении с использованием разнообразных методик. Иногда для проведения всех этих манипуляций в ручном режиме требуется довольно существенное время, поскольку чаще всего операции приходится повторять для каждого сбойного файла. Часто в этой кропотливой работе требуются еще и довольно хорошие знания устройства компонентной модели. Отдельно стоит отметить системы, представляющие собой «кастомные» любительские сборки, поскольку на них риск убить компонентную модель многократно повышается.
Теоретически, в самом крайнем случае, восстановление хранилища компонентов можно было бы провести путем переноса (с использованием LiveCD) с работоспособной машины (имеющей аналогичную версию операционной системы) следующих частей:
- Всех вложенных файлов/директорий в папке %WinDir%\WinSxS ;
- Всех вложенных файлов/директорий в папке %WinDir%\Servicing ;
- Все содержимое ветвей реестра: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing и HKEY_LOCAL_MACHINE\COMPONENTS ;
но на деле подобный глобальный поход может привести к падению системы в синий экран смерти, так что будьте предельно аккуратны!!
Очистка папки WinSxS в Windows 10, 8 и Windows 7
Если вас смущает то, что папка WinSxS много весит и интересует вопрос о том, можно ли удалить ее содержимое, в этой инструкции подробно будет описан процесс очистки данной папки в Windows 10, 8 и Windows 7, а заодно расскажу, что это за папка и для чего она нужна и можно ли удалить WinSxS полностью.
В папке WinSxS хранятся резервные копии системных файлов операционной системы до обновлений (и не только, о чем — далее). То есть, всякий раз, как вы получаете и устанавливаете обновления Windows, в эту папку сохраняется информация об изменяемых файлах, сами эти файлы с тем, чтобы у вас была возможность удалить обновление и откатить сделанные изменения.
Через какое-то время папка WinSxS может занимать достаточно много места на жестком диске — несколько гигабайт, при этом размер этот все время увеличивается по мере установки новых обновлений Windows.. К счастью, очистить содержимое данной папки сравнительно легко штатными средствами. И, если компьютер после последних обновлений работает без каких-либо проблем, это действие сравнительно безопасно.
Также в Windows 10 папка WinSxS используется, например, для сброса Windows 10 в исходное состояние — т.е. необходимые для автоматической переустановки файлы берутся именно из нее. Дополнительно, раз уж у вас возникла проблема со свободным пространством на жестком диске, рекомендую к ознакомлению статьи: Как очистить диск от ненужных файлов, Как узнать, чем занято место на диске.
Очистка папки WinSxS в Windows 10
Прежде чем говорить об очистке папки хранилища компонентов WinSxS, хочу предупредить о некоторых важных вещах: не пытайтесь удалить эту папку. Просто довелось видеть пользователей, у которых папка WinSxS не удаляется, они используют методы, похожие на описанные в статье Запросите разрешение от TrustedInstaller и в конце-концов удаляют ее (или часть системных файлов из нее), после чего удивляются, почему система не загружается.
В Windows 10 папка WinSxS хранит не только файлы, связанные с обновлениями, но и файлы самой системы, используемые в процессе работы, а также для того, чтобы вернуть ОС в исходное состояние или выполнить некоторые операции, связанные с восстановлением. Итак: какой-то самодеятельности при очистке и уменьшении размера этой папки не рекомендую. Следующие же действия безопасны для системы и позволяют очистить папку WinSxS в Windows 10 только от ненужных резервных копий, создаваемых при обновлении системы.
- Запустите командную строку от имени администратора (например, через правый клик по кнопке Пуск)
- Введите команду Dism.exe /online /cleanup-image /AnalyzeComponentStore и нажмите Enter. Папка хранилища компонентов будет проанализирована и вы увидите сообщение о необходимости ее очистки.
- Введите команду Dism.exe /online /cleanup-image /StartComponentCleanup и нажмите Enter для запуска автоматической очистки папки WinSxS.
Один важный момент: не следует злоупотреблять этой командой. В некоторых случаях, когда резервных копий обновления Windows 10 в папке WinSxS нет, после выполнения очистки, папка может даже слегка увеличиться. Т.е. производить очистку есть смысл, когда указанная папка слишком, на ваш взгляд, разрослась (5-7 Гб — это не слишком).
Также очистку WinSxS можно произвести автоматически в бесплатной программе Dism++
Как очистить папку WinSxS в Windows 7
Для очистки WinSxS в Windows 7 SP1 требуется предварительно установить необязательное обновление KB2852386, которое добавляет соответствующий пункт в утилиту очистки диска.
Вот как это сделать:
- Зайдите в центр Обновления Windows 7 — это можно сделать через панель управления или воспользоваться поиском в меню пуск.
- Нажмите «Поиск обновлений» в меню слева и подождите. После этого, кликните по необязательным обновлениям.
- Найдите и отметьте необязательное обновление KB2852386 и установите его.
- Перезагрузите компьютер.
После этого, для того, чтобы удалить содержимое папки WinSxS, запустите утилиту очистки диска (также, быстрее всего воспользоваться поиском), нажмите кнопку «Очистка системных файлов» и выберите пункт «Очистка обновлений Windows» или «Файлы резервной копии пакета обновлений».
Удаление содержимого WinSxS в Windows 8 и 8.1
В последних версиях ОС Windows возможность удалить резервные копии обновлений имеется в утилите очистки диска по умолчанию. То есть для того, чтобы удалить файлы в WinSxS, вам следует выполнить следующее:
- Запустить утилиту «Очистка диска». Для этого на начальном экране можете воспользоваться поиском.
- Нажать кнопку «Очистка системных файлов»
- Выбрать пункт «Очистка обновлений Windows»
Помимо этого, в Windows 8.1 есть и еще один способ очистить эту папку:
- Запустите командную строку от имени администратора (для этого нажмите клавиши Win+X на клавиатуре и выберите нужный пункт меню).
- Введите команду dism.exe /Online /Cleanup-Image /StartComponentCleanup /ResetBase
Также, с помощью dism.exe вы можете точно узнать, сколько занимает папка WinSxS в Windows 8, для этого воспользуйтесь следующей командой:
Автоматическая очистка резервных копий обновлений в WinSxS
Помимо очистки содержимого данной папки вручную, вы можете воспользоваться планировщиком заданий Windows, для того, чтобы это происходило автоматически.
Для этого необходимо создать простую задачу StartComponentCleanup в Microsoft\Windows\Servicing с нужной периодичностью выполнения.
Надеюсь, статья будет полезной и предостережет от нежелательных действий. В случае возникновения вопросов — задавайте, постараюсь ответить.
А вдруг и это будет интересно:
Почему бы не подписаться?
Рассылка новых, иногда интересных и полезных, материалов сайта remontka.pro. Никакой рекламы и бесплатная компьютерная помощь подписчикам от автора. Другие способы подписки (ВК, Одноклассники, Телеграм, Facebook, Twitter, Youtube, Яндекс.Дзен)
18.12.2019 в 07:34
Добрый день!
Не путайте, пожалуйста, резервные копии файлов до обновления системы с точками восстановления. Точки восстановления хранятся в System Volume Information.
18.12.2019 в 08:06
Пробовал использовать команду Dism.exe /online /cleanup-image /StartComponentCleanup, но папка WinSxS так и не была очищена. При этом команда выполнилась на 100%. Размер папки до выполнения команды был 98Гб, теперь 100Гб. В чём может быть дело?
24.04.2020 в 21:12
19.02.2020 в 20:23
Windows 7, установлено обновление KB2852386, но в очистке диска нет нужного пункта, хотя папка winsxs занимает 18 гб. В чём может дело?
15.03.2020 в 09:48
Кто мучается и не может вычистить Windows 7, рекомендую немецкую программу Patch Cleaner 1.4.2.0 (пока это последний релиз). Работает как АК-47 и не подводила ни разу. Все штатные средства на семёрке беспомощны ввиду патологической её природы с обновлениями.
22.09.2020 в 14:39
Patch Cleaner 1.4.2.0 чистит папку Installer, и не трогает папку winsxs.
21.04.2020 в 13:31
она (папка) ни через панель, ни вручную не удаляется.
21.04.2020 в 15:02
Я удалил часть вашего комментария, и вообще на будущее — я не против критики, но нормальным языком и без оскорблений, а только по делу.
А так — да, эту папку нельзя удалить, там почти вся Windows в ней и находится, я и не писал нигде, что ее можно прямо удалить.
22.04.2020 в 10:19
Спасибо за статью. Будьте добры, выделите жирным для особо одаренных детей природы — ПАПКУ ВРУЧНУЮ УДАЛЯТЬ НЕЛЬЗЯ. Ваш сайт довольно популярен, но читают люди уж слишком по диагонали.
29.06.2020 в 09:42
МОЖНО удалить вручную, но не всё, а что само получится и всё нормально.
06.01.2021 в 10:53
Здравствуйте! Большое спасибо за статью!
Меня интересует вот этот момент: «но и файлы самой системы, используемые в процессе работы».
Вопрос: Как можно определить какие именно файлы нужны системе для работы?
Цель: Удалить все прочее, ненужное для работы системы.
1) Восстановление меня не интересует. Для этого есть много хороших программ, создающих бэкап системы. Никогда штатным восстановлением не пользовался.
2) Файлы на HDD могут быть заражены зловредами. Последствия восстановления из таких файлов не предсказуемы..
Обновления Windows 7 уже не получает. Поддержка прекращена. Не вижу смысла хранить старые ненужные файлы..
06.01.2021 в 17:09
Здравствуйте.
К сожалению, я не могу дать ответа на такой вопрос (я даже не уверен, что ответ чёткий и не упирающийся во множество нюансов наподобие набора включенных компонентов и служб существует).