sonyps4.ru

Восстановление dism. Как исправить ошибки при установке обновлений Windows с помощью встроенного восстановления компонентов

Возникли проблемы с Windows 10 и не можете их исправить? Повреждены системные файлы и традиционная команда sfc /scannow не работает? Посмотрите, как использовать функцию DISM для исправления поврежденных системных файлов или восстановления их с оригинального образа системы без повторной установки Windows 10.

Как правило, в случае возникновения проблем с системными файлами используют утилиту SFC, которая сканирует жесткий диск на наличие ошибок и исправляет их. Но всё же это средство первой помощи не всегда приносит нужные результаты. В системе доступна ещё одна утилита DISM, о которой мы мельком упоминали в предыдущих статьях, способная устранить проблемы с поврежденными файлами в Windows 10. На этот раз рассмотрим полный спектр функций DISM, опишем различные варианты использования и покажем, как использовать её для восстановления поврежденных системных файлов с оригинального образа системы (хранилища компонентов).

Эта функция предназначена для исправлений и подготовки образов WIndows, таких как загрузочного диска ОС, средств восстановления системы и т. д. С помощью этих образов можно переустановить или восстановить систему в случае возникновения проблем. При использовании утилиты SFC для сканирования и восстановления диска, возникшие проблемы с поврежденными файлами решаются только с помощью соответствующего образа из хранилища компонентов на жестком диске. Когда этот образ поврежден, система не может извлечь из хранилища компонентов системные файлы и, следовательно, не способна восстановить их с помощью функции SFC. Именно в этом случае, нам поможет утилита DISM, которая решит проблему с образами для восстановления и позволит функции SFC корректно завершить свою работу.

Как использовать утилиту DISM?

Восстановить системные файлы через утилиту не сложно. Этим приложением можно восстановить компоненты по тому же самому принципу, как с помощью SFC через командную строку. Для вызова командной строки нажмите комбинацию клавиш Windows + X и в появившемся меню выберите пункт «командная строка (администратор). Затем в консоли нужно ввести команду DISM с соответствующими параметрами.

До команды DISM можем дописать дополнительные параметры, с помощью которых можно выполнить проверку, сканирование и восстановление образов различными способами. Рассмотрим наиболее важные комбинации.

DISM с параметром CheckHealth

В консоли командной строки введите следующую команду:

DISM /Online /Cleanup-Image /CheckHealth

С помощью этого параметра можно быстро проверить образ и отдельные компоненты инсталляции системы, которые хранятся на диске на наличие повреждений. Эта команда не производит какие-либо изменения – она является полностью безопасной. CheckHealth предоставляет информацию о состоянии пакета операционной системы. Это очень полезная опция, когда мы хотим в безопасный способ проверить не произошли ли какие-либо повреждения системного файла в хранилище компонентов.

DISM с параметром ScanHealth

Действие этого параметра похоже на CheckHealth, но занимает немного больше времени за счёт более тщательного сканирования, но также ничего не исправляет. Его стоит использовать, когда предыдущая опция /CheckHealth проинформировала, что всё в порядке, но мы хотим убедиться, что это, безусловно, так. Введите:

DISM /Online /Cleanup-Image /ScanHealth

Сканирование может занять гораздо больше времени, чем с предыдущей опцией (приблизительно 10 минут). Если сканирование останавливается на 20% или 40%, то нужно подождать – может показаться так, что компьютер завис – но в действительности выполняется сканирование.

DISM с параметром RestoreHealth

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

DISM /Online /Cleanup-Image /RestoreHealth

Параметр использует центр обновлений Windows для восстановления поврежденных файлов в хранилище компонентов. Процедура сканирования и автоматического восстановления может занять приблизительно 20 минут (иногда и больше). DISM обнаруживает сбой, создает список поврежденных файлов, а затем загружает их из серверов Майкрософта с помощью центра обновлений Windows.

Как восстановить файлы из указанного источника с помощью параметра RestoreHealth

Иногда бывает так, что повреждения операционной системы гораздо шире и затрагивают службу обновления Windows. В этом случае, не удастся через параметр RestoreHealth устранить повреждения в образе, потому что система не может подключится к серверам Майкрософта. В этой ситуации следует выполнить другую операцию – укажем путь к установщику (инсталлятору) Windows, с которого будут загружены «рабочие» файлы без использования Интернет и центра обновлений.

Для этого нужен установщик Windows 10 на DVD-диске, флэш-накопителе или в формате образа ISO. Последний может быть загружен через приложение Media Creation Tool для Windows 10.

Скачайте версию для Windows 10 (32 или 64 битную), запустите приложение и следуйте указаниям мастера по загрузке ISO на ваш компьютер. После того, как образ скачан и сохранён, перейдите в окно проводника и дважды кликните на файл ISO с инсталлятором, чтобы его смонтировать. В окне «Этот компьютер» проверьте, какая буква была присвоена смонтированному образу (например, буква «E»).

Если у вас имеется загрузочный диск DVD или USB накопитель с инсталляцией Windows 10, то ничего не надо скачивать – просто вставьте диск или подключите внешний носитель, и посмотрите, какая буква была присвоена этому накопителю в разделе «Этот компьютер».

После того, как накопитель с инсталляцией Windows обнаружен системой и нам известна буква настало время использовать соответствующий параметр DISM, который укажет путь к этому носителю. Для этого введите следующую команду:


Dism /Online /Cleanup-Image /RestoreHealth /Source:wim:E:\Sources\install.wim:1 /limitaccess

Ещё раз обратите внимание на то, что если в нашем случае, DVD, флэш-накопителю или образу ISO присвоится другая буква чем «Е», то поменяйте её в вышеуказанной команде. После нажатия на Enter поврежденные файлы хранилища компонентов будут восстановлены из оригинального установщика Windows по указанному пути.

Исправление ошибок в Windows

После того, как вы выполнили все вышеуказанные шаги, то теперь нужно снова использовать утилиту SFC для исправления ошибок в системе из восстановленных образов Windows. Введите в окне командной строки:

sfc /scannow

Иногда может возникнуть необходимость сканировать систему три раза, чтобы полностью устранить все ошибки. SFC теперь имеет доступ до восстановленных образов в хранилище компонентов и может полностью восстановить поврежденные системные файлы.

В преддверии поступления Windows 8 в продажу Microsoft выпустила большое кумулятивное обновление KB2756872 , чего никогда раньше не делала для клиентских операционных систем. Однако при установке обновления меня ждал неприятный сюрприз — ошибка 80073712.

Сегодня я расскажу о том, как победить эту и ряд других ошибок при установке обновлений Windows с помощью новой возможности обслуживания – встроенного восстановления компонентов (in-box corruption repair).

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

Сегодня в программе

Устранение ошибок 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.

Upd. 28-Jul-2015 . Microsoft выпустила специальное обновление , которое привносит в Windows 7 возможность встроенного восстановления компонентов по аналогии с Windows 8+.

Этап 1 – восстановление поврежденного хранилища компонентов

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

Восстановление без установочного диска

В этом случае используются файлы хранилища на локальном диске и Windows Update.

Состояние хранилища компонентов обозначается параметром Image Health State . У него Healthy означает, что с хранилищем компонентов все нормально. Для дальнейшей диагностики переходите к проверке целостности системных файлов чуть ниже ↓ Если же повреждение хранилища не исправлено, нужно попробовать сделать это с помощью установочного диска.

Восстановление с помощью установочного диска

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

  1. Щелкните правой кнопкой мыши по ISO-образу и выберите в меню Подключить . Обратите внимание на букву диска, которую получил подключенный образ.
  2. В PowerShell выполните команду: Repair-WindowsImage -Online -RestoreHealth -Source:WIM:Е:\sources\install.wim:1

    Здесь буква «E» соответствует букве подключенного образа, а цифра «1» — индексу издания в образе (в примере используется образ Windows 8 Enterprise с единственным изданием).

  3. По окончании процедуры убедитесь, что хранилище компонентов в порядке (Healthy).

Этап 2 – проверка целостности системных файлов

Строго говоря, этот этап не имеет отношения к восстановлению компонентов. Однако техническая поддержка Microsoft рекомендует после проверки целостности хранилища компонентов также проверить и целостность системных файлов. Для этого в командной строке, запущенной от имени администратора, выполните команду:

Sfc /scannow

У меня один из файлов был поврежден, и утилита SFC успешно восстановила его.

Случаи, когда системе не удалось восстановить какие-либо файлы, выходят за рамки этой статьи (я разберу их в другой раз).

Этап 3 – установка обновления

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

Как видите, на сей раз у меня все сработало!

Что такое обслуживание Windows и зачем оно нужно

Преимущества встроенного восстановления компонентов Windows

Давайте сравним ключевые моменты восстановления компонентов в разных операционных системах.

Windows Vista и Windows 7

Цель проверки (работающая система и образы)

Целью проверки может являться как установленная система, так и образ в формате WIM или VHD.

Проверяет работающую систему.

Проверяет подключенный автономный образ по указанному после параметра пути.

Проверка и восстановление хранилища

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

  • отсутствие повреждений (Healthy)
  • наличие повреждений, которые можно восстановить (Repairable)
  • наличие повреждений, которые нельзя восстановить (Not repairable)

Однако функции параметров отличаются.

-CheckHealth

Моментально проверяет, присутствует ли в системном реестре маркер, обозначающий повреждение. Этот маркер может появиться в процессе работы системы обслуживания.

-ScanHealth

Проверяет хранилище на предмет повреждений. Эта операция занимает больше времени, чем простая проверка маркера.

-RestoreHealth

Проверяет хранилище на предмет повреждений и выполняет их восстановление. Эта операция является самой длительной из трех.

Источник компонентов для восстановления

Чтобы восстановить компоненты, их нужно откуда-то взять. Когда источник не указан , при проверке автоматически используется локальное хранилище компонентов и Windows Update.

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

В обоих случаях вы можете указывать более одного источника и даже блокировать Windows Update при этом. Приведенные ниже параметры предназначены только для восстановления, и поэтому допустимы только в связке с -RestoreHealth .

В качестве источника можно использовать путь к:

  • работающей системе, к которой имеется доступ по сети
  • автономному образу, причем его предварительное подключение необязательно

Здесь любопытна возможность указать путь непосредственно к изданию в WIM-образе без его предварительного копирования на локальный диск и последующего подключения. Она является тайным знанием, пока не отраженным в документации;) Это работает благодаря функции автоматического подключения WIM, реализованной на последних стадиях разработки Windows 8.

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

Когда в качестве источника используется WIM-образ, необходимо указать тип образа и его индекс:

Source:WIM:Е:\sources\install.wim:1

-LimitAccess

Блокирует доступ к Windows Update во время проверки.

Примеры команд PowerShell

Я приведу несколько примеров практического использования командлета Repair-WindowsImage с разными целями и источниками проверки. Первые два вы уже видели в начале статьи.

Восстановление хранилища работающей системы, используя локальные файлы и Windows Update в качестве источника:

Repair-WindowsImage -Online -RestoreHealth

Восстановление хранилища работающей системы, используя Windows Update и WIM-образ в качестве источников:

Repair-WindowsImage -Online -RestoreHealth -Source:WIM:Е:\sources\install.wim:1

Проверка хранилища автономного VHD-образа. Сначала он подключается в папку C:\mount (это происходит очень быстро), а затем выполняется проверка.

Mount-Windowsimage -ImagePath C:\vhd\Win8.vhd -Index 1 -Path C:\mount Repair-WindowsImage -Path C:\mount -ScanHealth

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

Mount-Windowsimage -ImagePath C:\vhd\Win8.vhd -Index 1 -Path C:\mount Repair-WindowsImage -Path C:\mount -RestoreHealth -Source:WIM:Е:\sources\install.wim:1 Dismount-WindowsImage -path C:\mount -Save

Результаты проверки и восстановления

Помимо результатов в консоли вы можете найти подробный отчет ближе к концу файла %WinDir%\Logs\DISM\dism.log

В первой половине приведенного фрагмента видны конкретные компоненты и результат их восстановления (успех или неудача), а во второй – сводка об операции, включая время ее выполнения.

Checking System Update Readiness. (p) CSI Manifest Corrupt (Fixed) amd64_microsoft-windows-lpksetup_31bf3856ad364e35_6.2.9200.16384_none_7a23086df63cad13 (p) CSI Manifest Corrupt (Fixed) amd64_microsoft-windows-l..oyment-languagepack_31bf3856ad364e35_6.2.9200.16384_ru-ru_2422e0b40b0ac235 (p) CSI Manifest Corrupt (Fixed) amd64_microsoft-windows-l..oyment-languagepack_31bf3856ad364e35_6.2.9200.16384_ru-ru_2a982e5d65c9a294 (p) CSI Manifest Corrupt (Fixed) amd64_microsoft-windows-l..oyment-languagepack_31bf3856ad364e35_6.2.9200.16384_ru-ru_53ea2a36610cb913 (p) CSI Manifest Corrupt (Fixed) amd64_microsoft-windows-l..oyment-languagepack_31bf3856ad364e35_6.2.9200.16384_ru-ru_879ccd7f3842e229 (p) CSI Manifest Corrupt (Fixed) amd64_microsoft-windows-l..oyment-languagepack_31bf3856ad364e35_6.2.9200.16384_ru-ru_8e2bd9e9b9aeac5f (p) CSI Manifest Corrupt (Fixed) amd64_microsoft-windows-l..oyment-languagepack_31bf3856ad364e35_6.2.9200.16384_ru-ru_c73545896a8993dd Summary: Operation: Detect and Repair Operation result: 0x0 Last Successful Step: Entire operation completes. Total Detected Corruption: 7 CBS Manifest Corruption: 0 CBS Metadata Corruption: 0 CSI Manifest Corruption: 7 CSI Metadata Corruption: 0 CSI Payload Corruption: 0 Total Repaired Corruption: 7 CBS Manifest Repaired: 0 CSI Manifest Repaired: 7 CSI Payload Repaired: 0 CSI Store Metadata refreshed: True Total Operation Time: 221 seconds.

Как видите, у меня были повреждены 7 манифестов, относящихся языковому пакету, что и стало препятствием к установке обновления Windows. Все повреждения были исправлены.

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

Однако ошибки Windows Update, связанные с повреждением хранилища, вовсе не редкость, даже если судить только по форуму OSZone. Поэтому важно знать, как бороться с ними.

Мне показалось, что часть аудитории блога откровенно заскучала от серии статей о современном интерфейсе Windows 8 и приложений. Конечно, там все примитивно, никаких технических тонкостей, а главное – у некоторых людей создается ощущение, что кроме Modern UI в Windows 8 нет ничего нового. Это не так…

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

Вам хватило технических тонкостей сегодня? ;)

Если нет, в следующей записи из этой серии вас ждет не только экскурс в историю инструментов обслуживания ОС Microsoft, но и уникальная возможность попробовать себя в роли г-сборщика Windows! Но до этого в блоге появятся записи на другие темы.

Системные неполадки неразрывно связаны с нашей цифровой жизнью и к ним всегда нужно быть готовыми. Многие пользователи стремятся предугадать и предупредить подобные сбои, устанавливая всевозможные утилиты, созданные для исправления ошибок . Однако, к сожалению, даже подобная предусмотрительность не всегда помогает эффективно решить вопрос.

В данной статье мы рассмотрим ситуацию при которой на компьютере повреждается хранилище системных компонентов, расположенное в папке WinSxS .

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

Диагностика DSIM

Прежде чем начать восстановление, необходимо определить состояние хранилища. Для этого откройте командную строку от имени администратора и введите в ней следующую команду:

DISM /Online /Cleanup-Image /CheckHealth

Полезные статьи


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

Даже при положительном результате проверки нельзя быть на сто процентов уверенными в ее достоверности. Ведь сбой мог произойти в пропущенном малогабаритном файле, который тоже вносит определенный вклад в работоспособность системы.

Как быть в этом случае? Достаточно лишь заменить параметр CheckHealth на ScanHealth , что позволит провести глубокое сканирование хранилища. Такая проверка займет несколько больше времени.

Введите в командной строке следующую команду:

DISM /Online /Cleanup-Image /ScanHealth

Восстановление системного хранилища

Если ошибки не были обнаружены — поздравляем! Это говорит о том, что хранилище WinSxS не было повреждено и не нуждается в исправлении. Если же системные сбои не перестают вас донимать, первопричину следует искать в другом месте.

Обнаружились ошибки? Например:

  • Хранилище компонентов подлежит восстановлению.
  • Ошибка: 1726 Сбой при удаленном вызове процедуры.
  • Ошибка 1910 Не найден указанный источник экспорта объекта.

Эти сообщения говорят нам о том, что хранилище тем или иным образом повреждено и нуждается в восстановлении.

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

DISM /Online /Cleanup-Image /RestoreHealth

Восстановление хранилища компонентов при помощи загрузочной флешки

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

  • 0x800f0906 Не удалось скачать исходные файлы. Укажите расположение файлов, необходимых для восстановления компонента, с помощью параметра “Источник”.
  • 0x800f081f Не удалось найти исходные файлы. Укажите расположение файлов, необходимых для восстановления компонента, с помощью параметра “Источник”.
  • 0x800f0950 Сбой DISM. Операция не выполнена.

Чтобы выйти из сложившейся ситуации, вам понадобится загрузочная флешка или диск с ISO-образом установленной операционной системы Windows 10.

Воспользуйтесь приведенной ниже инструкцией, чтобы завершить процесс восстановления хранилища:

1. Определите букву загрузочного устройства в разделе Мой компьютер (Этот компьютер) .

В нашем случае это диск F: .

2. Двойным щелчком откройте содержимое папки и перейдите в sources .

3. Найдите файл install .

Он может быть в формате .ESD или .WIM . Запомните или запишите эти данные, в дальнейшем они пригодятся.

На данном этапе нам нужно узнать индексацию файла образа системы. Откройте командную строку от имени администратора и введите следующую команду:

DISM /Get-WimInfo /WimFile:F:\Sources\install.esd

Внимание!
Укажите корректный путь к диску, на котором хранится ваша Windows. Окончание (формат инсталлятора) введите соответственно тому, что написано напротив вашего файла. Он может быть с расширением .WIM .

Теперь нам известен индекс операционной системы.

5. Пришло время перейти непосредственно к восстановлению операционной системы! Введите в командной строке команду:

DISM /Online /Cleanup-Image /RestoreHealth /Source:ESD:F:\Sources\install.esd:1 /LimitAccess

F: — буква диска, на который был установлен ISO-образ операционной системы.

install.esd:1 — индекс операционной системы.

LimitAccess — создание запрета на доступ к центру обновления Windows.

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

Откройте командную строку от имени администратора и введите команду:

sfc /scannow

Теперь введите команду shutdown /r /t 0 и перезапустите компьютер, чтобы применить и сохранить внесенные изменения.

На всякий случай, если потребуется восстановление других стертых файлов и папок в системе Windows, вам помогут инструменты Starus Recovery .

Эта документация перемещена в архив и не поддерживается.

Управление хранилищем компонентов

Многие пользователи Windows задают вопрос: "Почему папка WinSxS такая большая?" Этот вопрос обсуждался в блогах, но в этом разделе рассматриваются дополнительные сведения о принципах, на которых основано хранилище компонентов (в частности, папка WinSxS), а затем даются ссылки на разделы, где описываются способы ограничения размера папки WinSxS.

Если отвечать коротко, то размер папки WinSxS на самом деле не так велик, как может показаться с первого взгляда, поскольку при его вычислении могут учитываться двоичные файлы Windows, размещаемые в других местах.

Хранилище компонентов Windows и папка WinSxS

Папка WinSxS расположена в папке Windows, например: c:\Windows\WinSxS . Это расположение для файлов хранилища компонентов Windows. Хранилище компонентов Windows поддерживает выполнение функций, необходимых для настройки и обновления Windows. Вот несколько примеров использования файлов из хранилища компонентов Windows.

    Использование Центра обновления Windows для установки новых версий компонентов. Это обеспечивает защиту и актуальность систем.

    Включение и отключение компонентов Windows.

    Добавление ролей и компонентов с помощью диспетчера сервера.

    Перемещение систем между различными выпусками Windows.

    Восстановление системы после повреждения или неудачной загрузки.

    Удаление проблемных обновлений.

    Выполнение программ с использованием параллельных сборок.

Хранилище компонентов Windows впервые появилось в Windows XP для поддержки параллельных сборок. Начиная с Windows Vista хранилище компонентов было улучшено для отслеживания и обслуживания всех компонентов, составляющих операционную систему. Эти различные компоненты операционной системы отслеживают такие объекты, как файлы, каталоги, разделы реестра и службы. Конкретные версии компонентов часто объединяются в пакеты. Пакеты используются в Центре обновления Windows и программой DISM для обновления Windows. Компоненты и пакеты, используемые в процессе установки Windows, обрабатываются хранилищем компонентов Windows. Определение размера хранилища компонентов Windows усложняется тем, что многие используемые Windows файлы находятся в каталогах за пределами хранилища компонентов Windows с применением метода жесткой связи . В некоторых случаях файлы определенной версии компонента встречаются и в хранилище компонентов Windows, и вне его. С помощью жестких связей в Windows может создаться впечатление хранение нескольких копий одного файла без расхода фактического места на размещение нескольких копий.

Жесткие связи

Жесткая связь – это объект файловой системы, который позволяет двум файлам ссылаться на одно расположение на диске. Это значит, что несколько файлов могут ссылаться на одни и те же данные, а изменения этих данных в одном файле отражаются на других файлах. Это усложняет подсчет размера каталогов, как показано в следующем примере.

    Каталог А содержит три файла: 1.txt, 2.txt и 3.txt.

    Каталог Б содержит один файл: 4.txt.

    Файлы 1.txt и 2.txt соединены жесткой связью и содержат 1 МБ данных.

    Файлы 3.txt и 4.txt также соединены жесткой связью и содержат 2 МБ данных.

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

Какой размер имеет каталог А?

Ответ зависит от того, что вы планируете делать с каталогом А.

    При считывании файлов в каталоге А размер всех считанных файлов будет суммой размеров каждого файла. В данном примере это будет 4 МБ.

    При копировании всех файлов из каталога А в новое расположение объем копируемых данных будет суммой всех данных, участвующих в жестких связях с файлами. В данном примере это будет 3 МБ.

    При освобождении места путем удаления каталога А размер будет уменьшен только на объем файлов, которые участвуют в жесткой связи только в каталоге А. В данном примере можно будет освободить 1 МБ.

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

Возвращаясь к технологии хранилища компонентов (Component Store)в Windows 8 рассмотрим сценарии его восстановления. Напомним, что начиная с Windows Vista Microsoft ввела концепцию компонентного обслуживания ОС (component based servicing). Благодаря компонентной структуре удалось добиться создания более стабильной системы установки/удаления обновлений, патчей и пакетов обновлений SP. Эта же система лежит в основе архитектуры Windows 8. Файлы хранилища компонентов Windows на диске располагаются в каталоге \ Windows \ WinSxS , имеющего свойство со временем значительно разрастаться в размерах (подробнее о том, почему размер этого каталога со временем растет и как уменьшить размер папки WinSxS читайте в ).

Однако в некоторых случая хранилище компонентов может повреждаться, что приводит к проблемам при установке обновлений Windows и другого ПО Microsoft. Для восстановления хранилища компонентов в предыдущих версиях Windows (Windows Vista, Windows 7, Windows Server 2008 /R2) Microsoft разработала специальную утилиту — CheckSUR или System Update Readiness Tool (KB947821). Данная утилита является достаточно большой по размеру (более 350 Мб), и по мере выход новых обновлений Windows регулярно обновляется. Это означает, что каждый раз приходится выкачивать свежую версию CheckSUR .

Совет . В одной из предыдущих статей мы уже рассматривали пример использования CheckSUR для поиска и восстановления поврежденных компонентов: .

Что же делает данная утилита? System Update Readiness Tool проверяет целостность следующих ресурсов:

    Файлы в каталогах:
  • %SYSTEMROOT%\Servicing\Packages
  • %SYSTEMROOT%\WinSxS\Manifests
    Содержимое веток реестра:
  • %SYSTEMROOT%\WinSxS\Manifests
  • HKEY_LOCAL_MACHINE\Schema
  • HKEY_LOCAL_MACHINE\Components
  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Component Based Servicing

В том случае, если утилитой CheckSUR будут обнаружены ошибки или несоответствия, она попытается их восстановить.

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

Список ошибок WindowsUpdate, вызванных повреждением хранилища компонентов

Code Error Description
0×80070002 ERROR_FILE_NOT_FOUND The system cannot find the file specified.
0x8007000D ERROR_INVALID_DATA The data is invalid.
0x800F081F CBS_E_SOURCE_MISSING The source for the package or file not found.
0×80073712 ERROR_SXS_COMPONENT_STORE_CORRUPT The component store is in an inconsistent state.
0x800736CC ERROR_SXS_FILE_HASH_MISMATCH A component’s file does not match the verification information present in the component manifest.
0x800705B9 ERROR_XML_PARSE_ERROR Unable to parse the requested XML data.
0×80070246 ERROR_ILLEGAL_CHARACTER An invalid character was encountered.
0x8007370D ERROR_SXS_IDENTITY_PARSE_ERROR An identity string is malformed.
0x8007370B ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME The name of an attribute in an identity is not within the valid range.
0x8007370A ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE The value of an attribute in an identity is not within the valid range.
0×80070057 ERROR_INVALID_PARAMETER The parameter is incorrect.
0x800B0100 TRUST_E_NOSIGNATURE No signature was present in the subject.
0×80092003 CRYPT_E_FILE_ERROR An error occurred while Windows Update reads or writes to a file.
0x800B0101 CERT_E_EXPIRED A required certificate is not within its validity period when verifying against the current system clock or the time stamp in the signed file.
0x8007371B ERROR_SXS_TRANSACTION_CLOSURE_INCOMPLETE One or more required members of the transaction are not present.
0×80070490 ERROR_NOT_FOUND Windows could not search for new updates.

В Windows 8 и Windows Server 2012 функционал, аналогичный утилите CheckSUR, уже встроен в систему и называется Inbox Corruption Repair (встроенное восстановление компонентов). Встроенное восстановление компонентов может работает в двух режимах: фоновом и ручном . Фоновое восстановление автоматически запускается в случае появления ошибок при попытке установить обновление 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

Проверка CheckHealth займет несколько минут. Как вы видите, текущий статус хранилища компонентов в образе – Healthy (Здоровый), т.е. восстановление не требуется.

В том случае, если будут обнаружены какие-то проблемы или ошибки, следует запустить процедуру восстановления хранилища командой:

Dism.exe /Online /Cleanup-Image /Restorehealth

Аналогичная Powershell команда:

Repair-WindowsImage -Online -RestoreHealth

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

The restore operation completed successfully. The component store corruption was repaired.

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

Get-WindowsImage -ImagePath E:\sources\install.wim

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

Следующая команда запустит восстановление хранилища с восстановлением повреждённых компонентов из оригинального образа Windows 8:

Repair-WindowsImage -Online -RestoreHealth -Source G:\sources\install.wim:1

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

Следующий (не всегда обязательный этап) – проверка целостности системных файлов с помощью команды:

Sfc /scannow

Совет . Если к восстановлению хранилища компонентов вы прибегли из-за проблем с установкой обновлений Windows, перезапустите службу Windows Update и сбросьте локальных кэш обновлений. Для этого в командной строке последовательно выполните следующие команды:

Net stop wuauserv net stop bits net stop cryptsvc ren %systemroot%\SoftwareDistribution oldSD ren %systemroot%\System32\catroot2 oldCat2 net start cryptsvc net start bits net start wuauserv



Загрузка...