Sfc.exe: Для завершения восстановления системы требуется перезагрузка…

Sfc.exe: Для завершения восстановления системы требуется перезагрузка…

27.09.2019 1 Автор GodKnowses

Ошибка sfc.exe: Для завершения восстановления системы требуется перезагрузка.

Приветствую всех на страницах блога К76, сегодня попытаемся справиться с очередной ошибкой утилиты восстановления системных файлов Windows sfc.exe. На этот раз симптомы проблемы таковы. Запуская утилиту с целью проверить целостность жизненно важных для Windows файлов из консоли

sfc /scannow

проверка файловой системы sfc scannow

консоль возвращает нам бессмысленную, казалось бы, ошибку, обозначенную в заголовке:

Для завершения восстановления системы требуется перезагрузка. Перезапустите систему Windows и выполните sfc еще раз.

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

Как избавиться от ошибки ” Для завершения восстановления системы требуется перезагрузка “?

Чаще всего эта проблема подстерегает владельцев Windows 7. Подойдём к решению вопроса с нескольких сторон. По определению, я всё-таки должен вас попросить послушаться совета консоли и перезагрузить Windows с целью запустить sfc.exe повторно. Но, раз уж вы здесь, постоянный перезапуск системы уже не помогает.

Убиваем файл pending.xml

Ну не могу я вас оставить без теории. Вероятнее всего, что причиной такого поведения утилиты (и системы в целом) стали некорректно установленные обновления. И указанный файл pending.xml содержит в себе информацию по полученным и применяемым файлам обновлений и ключей (а иногда и целых разделов) реестра. Которые, как вы успели заметить, просятся к установке во время завершения работы Windows. Как только мы согласимся, в систему полезут критические и не очень обновления. Если что-то пойдёт не так ещё на этапе применения критических обновлений, система откатится обратно. Если критические обновления установятся успешно, но неудача подстережёт нас на этапе установки некритических, система попытается их установить при перезагрузке, используя ключ реестра SetupExecute и подсистему Диспетчера сеанса (smss.exe). Когда система загружается, она читает указанный ключ реестра на повторную установку обновлений. И, если снова беда – установка обновлений откладывается. Так что при круговой перезагрузке из-за неудачных обновлений следует удалять именно указанный ключ. Однако в нашем случае система не может именно разобрать границы между “качеством” обновлений на очереди: где критические, а где нет. И Windows загружается нормально. А, раз она загрузилась, значит и обновлений никаких к применению нет. Таким образом ситуация глупая – внешне всё работает, однако до очередной попытки обновиться неполадки в системе может заметить только sfc и DISM. Вывод? Он в заглавии абзаца.

  • Отправляемся в папку

C:\Windows\WinSxS\

ищем файл pending.xml и переименуем его любым понравившимся вам способом. Все стающие в очередь при перезагрузке задачи не появятся в следующем сеансе, и можно будет попробовать запустить sfc повторно.

Если не помогло…

Перезагружаем Windows в ремонтную консоль, вызывая средство восстановления системы. В Windows это делается обычно прерыванием (один-два раза) нормальной загрузки системы. Вобщем, нам нужна “аварийная” консоль команд:

shift +f10 для выхода в cmd

зажмите Shift + F10 для выхода в консоль

дополнительные параметры windows 10

cmd в windows 10 в ремонтном режиме

  • Запускаем команды поочерёдно:
del *:\Windows\WinSxS\cleanup.xml

del *:\Windows\WinSxS\pending.xml

где * – буква тома с системными файлами Windows. ВНИМАНИЕ! Буква диска может отличаться от привычной С. Для определения нужной буквы вам пригодится утилита по работе с разделами DISKPART.

Для Windows 8|10 можно попробовать и такую команду:

dism.exe /image:*:\ /cleanup-image /revertpendingactions

Обратите внимание, флаг /online отсутствует не случайно, дабы избежать ошибки типа DISM doesn’t support servicing Windows PE with /Online option.

  • Теперь попробуем запустить sfc.exe отсюда:
sfc /scannow /offbootdir=*:\ /offwindir=*:\windows
  • Выходим из консоли
exit

и перезагружаемся.

Успехов.