Как решить "ожидание восстановления системы" в 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 ответа
Сообщение "Ожидание восстановления системы" может быть вызвано как минимум двумя совершенно разными причинами:
- На самом деле выполняется восстановление системы, которое необходимо выполнить или откатить перед запуском
sfc
, 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 удалит все ожидающие операции.