Win7系统“系统修复挂起”解决方法

Win7系统“系统修复挂起”解决方法

msconfig.exe我的 PC 运行 Windows 7 Home Premium 64 位,突然无法正常启动。我能够启动到带网络连接的安全模式,但即使使用禁用后也无法正常启动一切。我尝试从最后一个正确配置启动,但以完全相同的方式失败。我很久以前就禁用了系统还原,因此没有还原点。我运行了 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

我让启动修复运行了几次,最终在诊断和修复详细信息中发现了这一点:

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 /fixbootbootrec /fixmbr,两者都“成功”完成,但问题仍然存在。)

我决定运行sfc修复损坏的系统文件。但是,它失败了,提示有一个系统修复正在等待。这似乎可以通过C:\Windows\winsxs\pending.xml包含大量内容(看起来有几百行)的事实得到证实。我在其他地方读到过,干扰修复过程(例如删除pending.xml)可能会导致操作系统损坏而无法修复,我希望避免重新安装。

我该如何摆脱这个待处理的系统修复以便sfc可以运行?

答案1

“系统修复待处理”消息可能由至少两种截然不同的原因引起:

  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 GB SSD),而卷 2 是系统启动卷(通常标记为“系统保留”,并且似乎始终为 100 MB)。重要的是,卷 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

答案2

要取消待处理的操作,您必须启动进入恢复选项

在此处输入图片描述

选择Command Prompt并运行此命令:

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

当您现在重新启动 Windows 时,Windows 将删除所有待处理的操作。

相关内容