Как решить "ожидание восстановления системы" в Win7

Мой компьютер под управлением Windows 7 Home Premium 64-bit неожиданно не загружается нормально. Я могу загрузиться в безопасном режиме с поддержкой сети, но не могу нормально загрузиться даже после использования msconfig.exe отключить все Я пытался загрузиться с последней хорошей конфигурации, но это не удалось точно так же. Я отключил восстановление системы давно, поэтому нет точек восстановления. Я запустил Malwarebytes и ничего не нашел. У меня установлена ​​программа AVG с первого дня, и у меня не было проблем с вирусами с момента ее создания. chkdsk /f не сообщает об ошибках.

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

Problem Event Name: StartupRepairOffline
Problem Signature 01: 6.1.7600.16385
Problem Signature 02: 6.1.7600.16385
Problem Signature 03: unknown
Problem Signature 04: 21200512
Problem Signature 05: ManualRepair
Problem Signature 06: 2
Problem Signature 07: NoBootFailure
OS Version: 6.1.7601.2.1.0.256.1
Locale ID: 1033

Я позволил Startup Repair работать несколько раз, и в конце концов я нашел это в деталях диагностики и ремонта:

Root cause found:
---------
Unspecified changes to system configuration might have caused the problem.

Repair action: System files integrity check and repair
Result: Failed. Error code = 0x490
Time taken = 124661 ms

(Сеть говорит, что 0x490 сигнализирует о плохом загрузочном секторе. Я уже бегаю bootrec /fixboot а также bootrec /fixmbr, оба из которых завершаются "успешно", но проблема сохраняется.)

Я решил бежать sfc исправить поврежденные системные файлы. Однако, это терпит неудачу, говоря, что есть ожидание восстановления системы. Это подтверждается тем фактом, что C:\Windows\winsxs\pending.xml имеет много контента (выглядит как пара сотен строк). Я читал в другом месте, что вмешательство в процесс восстановления (например, удаление pending.xml) может привести к повреждению ОС без возможности восстановления, и я хочу избежать переустановки.

Как мне избавиться от этого отложенного восстановления системы, чтобы sfc может бежать?

2 ответа

Решение

Сообщение "Ожидание восстановления системы" может быть вызвано как минимум двумя совершенно разными причинами:

  1. На самом деле выполняется восстановление системы, которое необходимо выполнить или откатить перед запуском sfc,
  2. sfc пытается исправить системные файлы на неправильном диске.

В моем случае обе проблемы применяются.

Сначала мне пришлось заняться проблемой № 2. Правильная команда:

sfc /scannow /offbootdir=X:\ /offwindir=Y:\Windows

Куда:

  • X системный том (часто называется "Зарезервировано системой")
  • Y том, на котором установлена ​​Windows

Вам нужно использовать diskpart выяснить, какие правильные буквы. Даже если Windows обычно установлена ​​на C:\ (как это часто бывает), буквы дисков могут быть назначены по-разному в среде восстановления Windows (WRE).

Из командной строки в WRE:

> diskpart
DISKPART > list volume

Volume ###  Ltr  Label        Fs     Type         Size     Status     Info   
----------  ---  -----------  -----  -----------  -------  ---------  -------
Volume 0    C    Old Games    NTFS   Partition     465 GB  Healthy           
Volume 1    D                 NTFS   Partition      59 GB  Healthy           
Volume 2                      FAT32  Partition     100 MB  Healthy    Hidden 
Volume 3    E    Storage      NTFS   Partition     931 GB  Healthy           
Volume 4    F    Games        NTFS   Partition     476 GB  Healthy           
Volume 5    G    Traffic      NTFS   Partition     297 GB  Healthy           

Исходя из их размеров, я распознаю том 1 как основной том, на котором установлена ​​Windows (иначе как обычно C: диск, 60 ГБ SSD) и том 2 в качестве загрузочного тома системы (который часто обозначается как "Зарезервировано системой" и, по-видимому, всегда равен 100 МБ). Важно отметить, что Том 2 не имеет буквы диска, что означает, что мы не можем ссылаться на него в sfc команда. Мы можем назначить букву диска следующим образом:

DISKPART > select volume 2
DISKPART > assign letter=b:

# now that we're done, exit back to DOS
DISKPART > exit

Теперь мы готовы к запуску sfc с правильными значениями:

sfc /scannow /offbootdir=B:\ /offwindir=D:\windows\

На этом этапе я по-прежнему получаю сообщение об ошибке "ожидается восстановление системы", поэтому нам нужно использовать dism решить это. Команда:

dism /image:X:\ /cleanup-image /revertpendingactions

куда X том, на котором установлена ​​Windows. Мы уже знаем, что это D: так что мы можем запустить:

dism /image:D:\ /cleanup-image /revertpendingactions

За dism чтобы закончить работу, нужно перезагрузить компьютер.

Хотя это не решило мои проблемы с загрузкой, это позволило sfc бежать.

ПРИМЕЧАНИЕ. Опять же, буквы дисков, отличающиеся в WRE, могут мешать sfc ведение журнала, который пытается войти в C:\Windows\Logs\CBS\CBS.log, Если, как и я, ваш том Windows не назначен C: в WRE вы можете временно переопределить путь журнала с помощью этой команды:

> set WINDOWS_TRACING_LOGFILE=D:\Windows\Logs\CBS\CBS.log

(Опять же, используя букву диска, выбранную путем консультации diskpart.)

Эффект этой команды длится только до выхода из командной строки. Также, sfc не будет создавать никаких каталогов для вас, поэтому, если вы решите хранить журналы в другом месте, например, C:\i_just_made_this_folder_up\mylog.txt необходимо вручную создать i_just_made_this_folder_up папка перед запуском sfc,

Чтобы отменить ожидающую операцию, вам нужно загрузиться в опциях восстановления

Выбрать Command Prompt и запустите эту команду:

DISM /image:C:\ /cleanup-image /revertpendingactions

Когда вы сейчас перезагрузите Windows, Windows удалит все ожидающие операции.

Другие вопросы по тегам