Как вернуть winsxs: Восстановление целостности системных файлов Windows

Восстановление целостности системных файлов Windows

Сбои и ошибки в работе функций Windows и сторонних программ часто являются следствием повреждения системных файлов. Файлы Windows могут повреждаться или вовсе исчезать после вирусной атаки, работы стороннего софта, действий неопытных пользователей. Ну и в результате мы потом сталкиваемся с тормозами и глюками интерфейса системы, неработающими службами и компонентами, незапускающимися или вовсе исчезнувшими штатными функциями.

Лучшим решением таких вот проблем является откат Windows к точке восстановления или резервной копии, на момент, когда с операционной системой всё было в порядке. Если же точек и копий нет, можно либо прибегнуть к радикальному способу в виде переустановки Windows, либо попытаться её реанимировать путём восстановления целостности её файлов. Что это за процесс, и как он происходит?

Содержание статьи:

1. Что такое восстановление целостности файлов Windows

В принципе суть процесса отображена в его названии. Windows составляют её системные каталоги, в которых хранятся, соответственно, её системные файлы. Если какие-то из этих файлов повреждаются или уничтожаются, система может и дальше успешно функционировать. Но есть критически важные для работоспособности файлы, в частности, файлы ядра, без которых невозможно нормальное её функционирование. Нормальное функционирование в лучшем случае, функционирование в принципе – в худшем.

И вот Windows обустроена штатным консольным средством самодиагностики на предмет выявления проблем в виде повреждённых или отсутствующих своих файлов. Если это средство находит проблемы, оно автоматически пытается устранить их путём замены повреждённых или отсутствующих файлов Windows. Но для замены этому средству нужен источник системных файлов, и таким источником служит папка «WinSxS» внутри каталога «Windows» на диске С. Это хранилище целостных файлов системы. Очень хорошо, если эта папка содержит нужные в конкретной ситуации целостные файлы, но может быть так, что и содержимое её самой повреждено. И на этот счёт у системы есть решение: с помощью другого консольного средства содержимое папки «WinSxS» можно восстановить за счёт ресурса центра обновления Windows или её установочного образа.

Ну а теперь посмотрим, как всё это выглядит на деле.

2. Сканирование sfc /scannow

Запускаем консольное средство для сканирования системы на предмет поиска повреждённых или отсутствующих файлов. В этом случае и далее мы будем работать с командной строкой, и во всех этих случаях её нужно запускать от администратора.

Запустили и вводим:

sfc /scannow

Ожидаем завершения сканирования. Если процесс пройдёт гладко, средство выявит повреждённые или отсутствующие файлы и отрапортует нам об успешном их восстановлении.

Если средство не сможет восстановить файлы, то оно будет рапортовать о факте обнаружения повреждённых файлов, но неспособности восстановить некоторые из них.

В таком случае нужно прибегнуть к следующей процедуре.

3. Восстановление хранилища целостных файлов: командная строка

В командную строку вписываем:

Dism /Online /Cleanup-Image /RestoreHealth

Ждём завершения операции. Должен отобразиться 100%-ный прогресс и уведомление об успешном выполнении.

И затем снова пробуем выполнить сканирование, как описано в предыдущем пункте статьи.

Средство Dism, запускаемое с параметром RestoreHealth, для восстановления хранилища целостных файлов использует центр обновления Windows. Следовательно, при отсутствии Интернета, при неполадках самого центра мы получим в ответ уведомление о невозможности скачивания файлов. В таком случае нужно в качестве их источника использовать дистрибутив Windows. Подключаем для отображения как диска установочный ISO. В Win8.1 и Win10 это можно сделать просто двойным кликом по файлу ISO. Фиксируем букву подключённого образа, в нашем случае это L.

Вводим команду по типу:

Dism /Online /Cleanup-Image /RestoreHealth /Source:L:\Install.esd /limitaccess

Где в каждом отдельном случае вместо буквы L подставляем свою букву подключённого ISO. Дожидаемся 100%-ого прогресса операции и появления уведомления об успешном выполнении.

И, опять же, повторно запускаем сканирование, как показано в предыдущем пункте статьи.

4. Восстановление хранилища целостных файлов: программа Dism++

Альтернатива консольному средству Dism, запускаемому с параметром RestoreHealth – функция исправления системного образа в составе бесплатной программы Dism++. Она также восстанавливает содержимое хранилища за счёт ресурса центра обновления. Если на компьютере установлено несколько Windows, то на ленте вверху окна программы кликаем образ нужной системы, по умолчанию активной будет текущая. В меню «Восстановление» кликаем «Исправить».

Дожидаемся завершения операции исправления.

И снова запускаем сканирование – выполняем действия, описанные во втором пункте статьи.

5. Обновление Windows

Если ни один из предлагаемых выше способов не помог устранить проблему, можно прибегнуть к последнему способу – её обновлению через запуск утилиты-установщика в составе установочного диска. Этот процесс обновляет систему до актуальной сборки или версии, это, по сути, тот же процесс интеграции накопительных обновлений, когда мы обновляем, например, Windows 10 версии 1809 до версии 1903. При этом мы не теряем ничего из наработанного – ни профиль, ни пользовательские файлы, ни установленные программы, ни системные настройки, ни активацию.

Как и предыдущие способы, это не панацея, но в процессе обновления системные файлы будут, соответственно, обновлены. И это может стать решением имеющихся проблем. Для обновления нам потребуется свежий дистрибутив той версии Windows, что установлена на компьютере. Качаем его с сайта Microsoft или иных источников в Интернете. Подключаем ISO-образ. Запускаем в его корне файл setup.

На примере Windows 10 далее действо будет происходить следующим образом. Жмём «Далее».

Принимаем условия лицензии.

Ожидаем загрузки обновлений.

Жмём «Установить».

Основная часть процесса обновления будет происходить в режиме предзагрузки, на синем фоне с описанием этапов и индикатором прогресса процесса.

Восстановление хранилища компонентов | Блог по Windows

Поскольку в современных версиях операционной системы 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-файлы. Все найденные методы восстановления хранилища компонентов я решил выделить в отдельные статьи, а тут попробовать организовать что-то вроде своеобразного хаба.

Этапы восстановления хранилища компонентов

Итак, для восстановления хранилища компонентов у нас в распоряжении имеется целая серия разнообразных методик. Рекомендуется выполнить в указанном порядке следующие действия:

  1. Запустить проверку целостности системных файлов командой: sfc /scannow. Если результатом явились сообщения о том, что утилита нашла ошибки, но не смогла восстановить ошибки в автоматическом режиме, то на данном этапе их можно проигнорировать.
  2. Произвести восстановления хранилища компонентов:
    • для Windows 8/10+: Восстановление хранилища компонентов при помощи DISM
    • для Windows Vista/7: Восстановление хранилища компонентов при помощи SURT
  3. Запустить утилиту SFCFix: Восстановление хранилища компонентов при помощи SFCFix
  4. Выполнить синхронизацию оригинальных файлов с рабочими папками и пересоздание жёстких ссылок повторным запуском команды: sfс /scannow.
  5. Произвести перезагрузку операционной системы

Дополнение: если на каком-либо из выполненных вами шагов (1-4) обнаружены поврежденные файлы, которые соответствующие утилиты не смогли автоматически восстановить, то рекомендации по восстановлению были даны в соответствующих статьях. Например утилита sfc может сообщать нам, что выявлены повреждения и она не смогла их устранить, то идем в статью про sfc и там изучаем раздел Анализ результатов (в нем даны рекомендации по ручному восстановлению файлов).

Ну и напоследок методики, напрямую не относящиеся к восстановлению хранилища компонентов, но позволяющие устранить некоторые ошибки, связанные с обновлениями:

  • Сброс центра обновления Windows

Выводы

В общем случае, стратегия автоматического и ручного восстановления хранилища компонентов заключается в поэтапном выявлении поврежденных зависимостей, имен отсутствующих/поврежденных файлов и их планомерном восстановлении с использованием разнообразных методик. Иногда для проведения всех этих манипуляций в ручном режиме требуется довольно существенное время, поскольку чаще всего операции приходится повторять для каждого сбойного файла. Часто в этой кропотливой работе требуются еще и довольно хорошие знания устройства компонентной модели. Отдельно стоит отметить системы, представляющие собой «кастомные» любительские сборки, поскольку на них риск убить компонентную модель многократно повышается.
Теоретически, в самом крайнем случае, восстановление хранилища компонентов можно было бы провести путем переноса (с использованием LiveCD) с работоспособной машины (имеющей аналогичную версию операционной системы) следующих частей:

  1. Всех вложенных файлов/директорий в папке %WinDir%\WinSxS;
  2. Всех вложенных файлов/директорий в папке %WinDir%\Servicing;
  3. Все содержимое ветвей реестра: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing и HKEY_LOCAL_MACHINE\COMPONENTS;

но на деле подобный глобальный поход может привести к падению системы в синий экран смерти, так что будьте предельно аккуратны!!

Перемещение папки winsxs | Experts Exchange

Просмотреть все статьи > Перемещение папки winsxs

Обновление от 03. 11.2014. Хотя приведенная ниже статья поможет вам переместить папку WINSXS, Microsoft наконец-то выпустила утилиту для уменьшения размера папки WINSXS. Почему-то это не так просто. Он работает только в Windows 2008 и выше (это единственные ОС, на которые влияют большие папки WINSXS)

В недавнем обновлении MS обновила мастер очистки диска (cleanmgr.exe) для Win 2008 x86, Win 2008 x64 и Win 2008 R2. Я не уверен насчет настольных ОС, но я предполагаю, что они тоже получили обновление.

Новый cleanmgr.exe имеет возможность очистки файлов обновления Windows. Это вычистит гигабайты из папки WINSXS (хотя и не все). Вы не увидите выигрыша в пространстве, пока не перезагрузите машину. Когда вы перезагружаетесь после запуска утилиты cleanmgr.exe, она появляется, как будто она только что применила обновления, с экраном «Настройка обновлений WIndows … Не выключайте компьютер». После перезагрузки вы увидите, что размер WINSXS значительно уменьшился. У меня вернулось от 2 до 10 Гб.

Забавно то, что хотя новый файл cleanmgr.exe будет существовать на вашем компьютере, если вы следите за обновлениями Windows, он будет недоступен, если вы не переместите некоторые файлы. Следуйте приведенным ниже инструкциям, чтобы поместить cleanmgr.exe и связанные с ним файлы в нужное место, после чего вы сможете их запустить:

Расположение файлов, которые необходимо скопировать, зависит от вашей версии Windows: выполните команду копирования на основе соответствующей версии

Windows Server 2008 R2

64-разрядная версия

копия C:\Windows\winsxs\amd64_mi crosoft-wi ndows-clea nmgr_31bf3 856ad364e3 5_6.1.7600 .16385_non e_c93 92808 773cd7da\c leanmgr.ex e %systemroot%\System32

копия C:\Windows\winsxs\amd64_mi crosoft-wi ndows-clea nmgr. resou rces_31bf3 856ad364e3 5_6.1.7600 .16385_ en- us_b9cb619 4b257cc63\ cleanmgr.e xe.mui %systemroot%\System32\en-u s

cleanmgr.exe

Windows Server 2008

64-разрядная версия

копия C:\Windows\winsxs\amd64_mi crosoft-wi ndows-clea nmgr.resou rces_31bf3 856ad364e3 5_6.0.6001 .18000_ en- us_b9f50b7 1510436f2\ cleanmgr.e xe.mui %systemroot% \Система3

копия C:\Windows\winsxs\amd64_mi crosoft-wi ndows-clea nmgr_31bf3 856ad364e3 5_6.0.6001 .18000_non e_c962 d1e5 15e94269\c leanmgr.ex e.mui %systemroot%\System3\en -us
cleanmgr.exe

Windows Server 2008

 32 разряда

копия C:\Windows\winsxs\x86_micr osoft-wind ows-cleanm gr. resourcec es_31bf385 6ad364e35_ 6.0.6001.1 8000_en-us _5dd66fed9 8a6c5bc\cl eanmgr.exe .mui %systemroot%\System3

копия C:\Windows\winsxs\x86_micr osoft-wind ows-cleanm gr_31bf385 6ad364e35_ 6.0.6001.1 8000_none_ 6d443 6615d 8bd133\cle anmgr.exe %systemroot%\System3\en-us
cleanmgr .Exe
90 096

Теперь вы можете запустить мастер очистки диска, запустив Cleanmgr.exe из командной строки или Пуск > Выполнить.

**************************** ********** ********** ********** ********** ********** ********

Я видел несколько статей о перемещении папки \Windows\winsxs. Большинство из них связано с использованием сторонних утилит для выполнения отложенных перемещений и отложенных переименований при перезагрузке. Я нашел более простой способ, не требующий дополнительных утилит. Спасибо тем людям, которые разработали эти методы с помощью утилит, так как это помогло мне начать разработку этого более простого метода.

Winsxs — это сокращение от «Windows Side by Side». Это позволяет размещать одни и те же файлы в разных версиях операционной системы. Папка и ее содержимое необходимы для нормальной работы вашего компьютера. Вы НЕ должны просто удалять или перемещать эту папку. При тестировании я сделал синий экран машины, сделав ее папку winsxs недоступной.

Он существует в Windows Vista, Windows 7 и Windows Server 2008.

Проблема с ним в том, что он может стать огромным. Обычно более 5 ГБ, но иногда и более 15 ГБ. Это может быть проблемой, если размер вашего системного диска слишком мал и нет возможности его расширить, или если вы заплатили за дорогостоящую недвижимость в виде твердотельного диска и не хотите тратить все это пространство впустую.

Таким образом, мы создадим пустую целевую папку winsxs в месте, отличном от системного тома, затем перезагрузимся в режиме восстановления, скопируем исходное содержимое в новое место, переименуем источник и добавим символическую ссылку на новый расположение. После перезагрузки мы можем удалить оригинал.

В режиме восстановления буквы дисков могут отличаться от тех, которые используются при нормальной работе Windows. Спасительная грация заключается в том, что вы можете создать символическую ссылку в любом месте, даже если цель не существует. Вы просто указываете своей символической ссылкой путь к перемещенной папке winsxs, когда Windows работает нормально, независимо от того, какие буквы дисков находятся в режиме восстановления.

В приведенном ниже примере при загрузке Windows каталог Windows — C:\Windows, а целевая папка winsxs — K:\Windows\Winsxs

При загрузке в режиме восстановления каталог Windows — E:\Windows, а целевая папка winsxs — D:\Windows\Winsxs.

1. Создать цель

При нормальной работе компьютера в Windows создайте или определите целевой том, который будет содержать папку winsxs

Создайте пустой путь для \Windows\winsxs на этом томе (K:\Windows\winsxs).

Этот путь будет использоваться в консоли восстановления независимо от того, какая буква диска назначена в консоли восстановления.

Назначить NTSERVICE\TrustedInstaller владельца и полный доступ к папке.

2. Загрузите Windows Repair

Перезагрузите систему и нажмите F8 перед запуском Windows. Выберите «Восстановить компьютер». Если вы не видите эту опцию, вы можете загрузиться с компакт-диска Windows, и есть «восстановить компьютер».

Когда появится графический интерфейс восстановления компьютера, выберите командную строку.

3. Найти тома и пути

Найдите целевой том и путь, он может отличаться при загрузке восстановления

4. Скопируйте содержимое winsxs

Измените каталог на каталог Windows

xCopy содержимое исходной папки winsxs в целевую папку winsxs

xcopy E:\Windows\winsxs D:\Windows\winsxs /e

5. Переименовать источник

Переименовать исходную папку winsxs

переименовать winsxs winsxs.old

6.

Создать символическую ссылку

Создайте символическую ссылку в исходном местоположении, которая указывает на новую папку winsxs.

mklink /D winsxs K:\Windows\winsxs

7. Перезагрузка

Перезагрузите и запустите Windows в обычном режиме

8. Подтверждение успеха и очистка

Подтверждение существования символической ссылки C:\Windows\winsxs и правильности ее назначения. Он должен работать так же, как и папка в C:\Windows, однако содержимое находится на другом томе.

Удалить исходную папку winsxs

rmdir E:\Windows\winsxs.old /s

ssd — Перенос Windows\winsxs\Backup на другой диск

Задавать вопрос

спросил

Изменено
10 лет, 1 месяц назад

Просмотрено
3к раз

Я установил SSD и для ряда больших каталогов (например, Users\me\Downloads) я смог использовать команду Sysinternals «junction» для создания жесткой ссылки на C:, которая ссылается на копию каталог на жестком диске, который раньше был C:, а теперь D:.

Кажется, что каталог winsxs\backup является идеальным кандидатом для этого — все, что думает, что оно записывает или читает из c:\windows\winsxs\backup, действительно будет работать с d:\whatever\path\I\choose \backup, и это конечно будет медленнее, но файлы там редко трогаются (я так думаю).

Однако не представляется возможным удалить каталог, чтобы использовать его для повторного создания в качестве жесткой ссылки на каталог на диске D:. Кто-нибудь знает способ обойти это?

  • жесткий диск
  • ssd
  • соединение
  • winsxs

не делайте этого. Эта папка используется sfc для восстановления поврежденных файлов. Перемещение папки может привести к поломке инструмента. Но вы можете сжать папку с помощью сжатия NTFS после того, как вы предоставили учетной записи полные разрешения. Windows 8 выполняет это сжатие NTFS, когда я вызываю очистку WinSxS.

1

Загрузите Linux live cd , а затем выполните задание. .. C:\Windows другие каталоги защищены антикопией во время работы win (Microsoft не хочет, чтобы кто-то копировал окна для ее друзей…)

Зарегистрируйтесь или войдите в систему

Зарегистрируйтесь с помощью Google

Зарегистрироваться через Facebook

Зарегистрируйтесь, используя адрес электронной почты и пароль

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания и подтверждаете, что прочитали и поняли нашу политику конфиденциальности и кодекс поведения.