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

2898
Tom

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

-1
загрузитесь в параметры восстановления (CMD.exe) и выполните эту команду: ** DISM / образ: C: \ / cleanup-image / revertpendingactions ** magicandre1981 8 лет назад 0
@ magicandre1981: Я полагаю, вы имеете в виду «D: \», чтобы обозначить диск с ОС? Tom 8 лет назад 0
СЭП. Ты это пробовал? magicandre1981 8 лет назад 0
@ magicandre1981: я сделал, и я обновил свой пост. Выглядело, как будто это работает (pending.xml пропал), но `sfc / scannow` по-прежнему говорит, что ожидается восстановление. Tom 8 лет назад 0

2 ответа на вопрос

1
magicandre1981

To cancel the pending operation, you have to boot into the recovery options

enter image description here

select Command Prompt and run this command:

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

When you now reboot to the Windows, Windows will remove all pending operations.

Как указывает мой оригинальный пост, я уже пробовал это. `dism` сообщил об успехе, но` sfc` все равно не работает. Спасибо, в любом случае. 8) Tom 8 лет назад 0
не смешивайте все вопросы в 1. вы хотели знать, как это остановить. Я ответил на это. magicandre1981 8 лет назад 0
Вы правы - я объединяю несколько вопросов в один. Я отредактирую OP, чтобы сосредоточиться на отмене ожидающего действия. Однако и ваш комментарий, и ответ не содержат важной информации, поэтому я не могу пометить это как ответ. Tom 8 лет назад 0
чего не хватает? Вы сказали, что моя команда исправила нерешенную проблему, и я ** ДОЛЖЕН ** опубликовать ее как ответ. magicandre1981 8 лет назад 0
@ Том - это ответ на предложенный вопрос. В этом ответе нет критической информации. Ramhound 8 лет назад 0
@ramhound В этом ответе не упоминается, что сообщение, которое я получаю, может быть вызвано нацеливанием на неправильный диск, и при этом не описывается, как перенаправить команду на правильный. Этот ответ, скорее всего, потерпит неудачу для любого, у кого есть более одного внутреннего устройства хранения данных, предположительно из-за сопоставления портов SATA или IDE на mobo. Возможно, самое главное: выполнение команды из этого ответа не решило проблему, не изменив ее в соответствии с инструкциями, которые я должен был найти в другом месте. Я искренне ценю это усилие, но я не отмечаю это как ответ. Tom 8 лет назад 0
Я бросил это, ты пламя, потому что я не вижу в своем мяче, что твоя Windows - это диск D :. LOL ** facepalm **, в будущем я буду игнорировать тебя. magicandre1981 8 лет назад 0
Я с уважением не согласен. Ваше сообщение является неадекватным ответом, потому что в нем не указана соответствующая причина ошибки, о которой я писал, и которая может относиться к другим, кто находит этот пост. Если вы считаете, что ваш ответ лучше моего, вы можете пригласить модератора здесь. Я надеюсь, что вы переосмыслите свое решение игнорировать мои посты в будущем - ваш комментарий в конечном итоге помог мне диагностировать проблему. Но мой ответ отражает неделю исследований и экспериментов, которая намного превосходит ваш вклад. Я хотел бы думать, что вы могли бы даже чему-то научиться из этого. Ты не можешь победить их всех, друг. Tom 8 лет назад 0
1
Tom

The "system repair pending" message can be caused by at least two very different things:

  1. There is actually a system repair in-progress, which must be completed or rolled back before running sfc.
  2. sfc is attempting to fix system files on the wrong drive.

In my case, both problems applied.

I had to address problem #2 first. The correct command is:

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

Where:

  • X is the system volume (often named "System Reserved")
  • Y is the volume where Windows is installed

You need to use diskpart to figure out what the correct letters are. Even if Windows is normally installed on C:\ (which it often is), drive letters can be assigned differently in the Windows Recovery Environment (WRE).

From the command prompt in the 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 

Based on their sizes, I recognize Volume 1 as the primary volume where Windows is installed (aka my usual C: drive, a 60 GB SSD), and Volume 2 as the system boot volume (which is often labeled "System Reserved," and is apparently always 100 MB). Importantly, Volume 2 doesn't have a drive letter, which means we can't refer to it in the sfc command. We can assign a drive letter like so:

DISKPART > select volume 2 DISKPART > assign letter=b: # now that we're done, exit back to DOS DISKPART > exit 

Now we're ready to run sfc with the correct values:

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

At this point, I still receive the "system repair pending" error, so we need to use dism to resolve it. The command is:

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

Where X is the volume where Windows is installed. We already know that's D:, so we can run:

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

For dism to finish the job, you have to reboot.

While this didn't fix my boot issues, it did allow sfc to run.

NOTE: Again, drive letters being different in the WRE can interfere with sfc logging, which attempts to log to C:\Windows\Logs\CBS\CBS.log. If, like me, your Windows volume isn't assigned to C: in the WRE, you can temporarily override the log path with this command:

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

(Again using a drive letter chosen by consulting diskpart.)

The effect of this command only lasts until you exit the command prompt. Also, sfc will not create any directories for you, so if you decide to store the logs somewhere else, e.g. C:\i_just_made_this_folder_up\mylog.txt, you need to manually create the i_just_made_this_folder_up folder before running sfc.

Я должен упомянуть, что только задним числом мне стало ясно, что я должен был сначала решить проблему № 2. Я не знал, что сообщение об ожидающем ремонте, которое я видел, могло быть вызвано нацеливанием на неправильный диск, и оно, кажется, не широко известно. К тому времени, когда я узнал об этом, я уже выполнил команду `dism` (с правильной буквой диска), чтобы откатить ожидающую операцию восстановления. Независимо от этого, выполнение этого процесса в порядке, который я описываю, должно работать для всех, независимо от того, какой из этих двух вопросов относится к ним. Tom 8 лет назад 0