-1

Мой компьютер под управлением 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 ответа2

1

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

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

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

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

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

Куда:

  • X - системный том (часто называемый "System Reserved")
  • 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 .

1

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

выберите Command Prompt и выполните эту команду:

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .