Windows(R) 恢复环境 (Windows RE) 是一个基于 Windows 预安装环境 (Windows PE) 的可扩展恢复平台。计算机无法启动时,Windows 会自动故障转移到此环境中,并且 Windows RE 中的启动修复工具会自动诊断和修复无法启动的 Windows® 7 安装。本主题描述了 Windows RE 并具体介绍了自动故障转移行为、手动诊断和修复过程。它还描述了启动修复工具的工作原理。
本主题包括以下内容:
自动故障转移
运行 Windows 7 的计算机仅在检测到启动失败时才会自动故障转移到磁盘上的 Windows RE。启动时,Windows 加载器将设置状态标志,以表明启动过程开始,通常会在显示 Windows 登录屏幕之前清除此标志。如果启动尝试失败,则不会清除此标记。计算机下次启动时,加载器会检测到该标记并假设已出现启动失败。发生这种情况时,加载器将启动 Windows RE 而不启动 Windows 7。
![]() |
---|
是否检测到启动失败取决于启动是否完成,而不取决于 Windows 7 中是否出现错误。误报的示例之一是,如果在启动过程中断电,则即使可启动 Windows 安装,但仍会启动 Windows RE。 |
因为故障转移机制依赖于 Windows 启动管理器和 Windows 启动加载器,所以某些失败将会致使 Windows RE 无法访问。在以下情况中,用户必须使用可启动的 Windows RE 媒体来恢复计算机。
- 主启动记录 (MBR)、分区表或 Windows RE 分区的启动扇区中的磁盘元数据已损坏。
- 缺少启动管理器或启动管理器已损坏。
- 缺少启动配置数据或启动配置数据已损坏。
有时,启动加载器无法读取或写入启动状态标志,此时 Windows 将不会自动故障转移至 Windows RE。但是,用户仍可以通过 F8 菜单手动启动到磁盘上的 Windows RE。
手动诊断和修复
从 Windows RE CD/DVD 启动或使用 F8 高级启动选项菜单启动磁盘上的 Windows RE 时,用户可以手动启动以下系统恢复工具:
- 启动修复(非自动启动时)
- 系统还原(使用现有还原点进行回滚)
- Complete PC 还原(从卷备份映像还原)
- 命令提示符(可从其中使用所有标准的 Windows PE 控制台工具,如 Regedit 和 ChkDsk)
- 计算机制造商提供的自定义支持和恢复工具
启动修复
启动修复是对不可启动的 Windows 7 安装自动进行常见诊断和修复任务的工具。如果计算机由于检测到启动失败而故障转移到 Windows RE,启动修复会自动启动。如果无法自动故障转移到磁盘上的 Windows RE,也可以将启动修复作为手动恢复工具从 Windows RE CD/DVD 启动。
启动修复过程
启动修复会尝试修复由于以下原因无法启动的计算机:
- 注册表损坏
- 系统文件和驱动程序文件丢失或已损坏
- 磁盘元数据损坏(MBR、分区表和启动扇区)
- 文件系统元数据损坏
- 安装存在问题的驱动程序或不兼容的驱动程序
- 安装不兼容的 Windows Service Pack 和修补程序
- 启动配置数据损坏
- 内存和硬盘硬件损坏(仅检测)
启动修复不会修复由以下问题导致的无法启动的系统:
- 不正常的固件和其他硬件组件
- Windows 清理安装或 Windows 升级(例如,从 Windows XP 升级到 Windows Vista)时出现的问题
- Windows 登录错误
- 病毒和恶意软件
启动修复日志
启动修复运行后,会生成具有诊断信息和修复结果的文本日志。此日志文件位于 %WINDIR%\System32\LogFiles\Srt\SrtTrail.txt。
日志文件以有关诊断和修复会话的信息开始,如以下示例中所示。
Session Summary: System Disk = \Device\Harddisk0 WinDir = C:\windows AutoChk Run = 0 Root causes = 1
下表描述了这些字段。
字段 | 描述 |
---|---|
System Disk | Windows 安装程序所在的磁盘的设备路径。 |
WinDir | 要修复的 Windows 安装程序的完整路径。 |
AutoChk Run | 非零值指明 AutoChk 在 Windows PE 启动期间运行。 |
Root causes | 诊断期间找到的根源号码。 |
日志文件的下一部分包含所执行的诊断任务。例如,
Test Performed: --------------------------- Name: Software installation log diagnosis Result: Completed successfully. Error code = 0x0 Time taken = 125 ms Test Performed: --------------------------- Name: ACL test Result: Completed successfully. Error code = 0x0 Time taken = 18200 ms
下表描述了这些字段。
字段 | 描述 |
---|---|
Name | 执行的诊断任务的名称。 |
Result | 测试是否成功完成的文字描述。 |
Error code | 诊断过程的 Win32(R) 返回代码。值 0x0 指出指定的测试成功运行。 |
Time taken | 诊断步骤所花费的时间量(以毫秒为单位)。 |
下表介绍了启动修复执行的诊断任务。
诊断任务 | 描述 |
---|---|
磁盘元数据测试 | 验证 MBR、分区表和启动扇区的完整性。 |
确定目标 OS | 从引导配置数据 (BCD) 提取 Windows 安装程序的位置。 |
注册表配置单元测试 | 验证注册表配置单元的完整性。 |
快速卷元数据测试 | 验证 Windows 目录是否存在。 |
事件日志诊断 | 检查事件日志是否记录了对 Windows 的最新更改。 |
引导状态测试 | 验证 Windows 是否没有成功启动。 |
启动状态检查 | 检查 Windows 安装期间是否出现失败。 |
检测错误分析 | 分析在失败的启动尝试期间创建的可用故障转储。 |
软件安装日志诊断 | 检查最近是否安装了 Windows 更新。 |
磁盘故障诊断 | 检查硬盘硬件上的自动监控分析报告技术 (SMART) 状态。 |
Chkdsk | 运行 Chkdsk,以确认文件系统元数据问题。 |
二进制文件完整性测试 | 验证启动所需的系统文件的完整性。 |
ACL 测试 | 验证启动所需的系统文件是否具有正确的访问控制列表 (ACL)。 |
根源
发现启动失败的根本原因时,日志文件中将添加详细信息和由此导致的操作。例如,
Root cause found: --------------------------- ACLs on file C:\windows\system32\user32.dll are not proper. Old value = 0xd015f Repair action: ACLs fix Result: Completed successfully. Error code = 0x0
下表描述了这些字段。
字段 | 描述 |
---|---|
Root cause found | 问题的文字描述。 |
修复操作 | 所采取的修复操作的名称。 |
结果 | 修复操作成功与否的文字描述。 |
Error code | 修复过程的 Win32 返回代码。值 0x0 指出指定的修复成功完成。 |
下表列出了启动失败的可能的根本原因。
根本原因 | 描述 |
---|---|
引导管理器无法找到 OS 加载器。 | 缺少 Winload.exe 或无法对其进行访问。 |
引导配置已损坏。 | 缺少启动配置文件或其包含的操作系统项无效。 |
启动关键文件 <filename> 已丢失。 | 启动所需的指定文件已丢失。 |
启动关键文件 <filename> 已损坏。 | 启动所需的指定文件已损坏。 |
多个启动关键文件已损坏。 | 启动所需的多个文件已损坏。 |
注册表已损坏。 | 注册表配置单元无法加载。 |
未知的检测错误 <code>。参数 = <param1>、<param2>、<param3>、<param4>。 | 启动过程中系统出现故障,发生了指定的检测错误。 |
驱动程序 <drivername> 正在阻止系统启动。 | 缺少指定的驱动程序或指定的驱动程序已损坏。 |
最新的驱动程序安装程序或升级可能在阻止系统启动。 | 启动失败前安装了不兼容的驱动程序。 |
修补程序正在阻止系统启动。 | 启动失败前安装了操作系统的更新。 |
文件 <filename> 上的 ACL 错误。旧值 = <value>。 | 由于错误的 ACL 而无法访问指定的文件。 |
分区表的系统分区无效。 | 分区表中列出的系统分区未包含所需的系统文件。 |
MBR 已损坏。 | 系统磁盘上的 MAB 已损坏。 |
磁盘 <drivenumber> 上的分区表已损坏。 | 指定磁盘上的分区表未包含任何有效的项。 |
系统磁盘分区的启动扇区已损坏。 | 启动扇区信息无效。 |
系统磁盘分区的启动扇区代码已损坏。 | 启动扇区代码与默认启动扇区不匹配。 |
磁盘上的系统卷已损坏。 | 无法访问系统卷。 |
磁盘上无法找到 OS 文件。 | Windows 目录未包含有效的 Windows 安装程序。 |
缺少引导管理器。 | 系统分区上无法找到启动管理器。 |
无法找到硬盘。如果已安装硬盘,则它未响应。 | 无法检测任何已安装的硬盘。这只适用于从 CD/DVD 运行 Windows RE。 |
此计算机上的安全设置正在阻止 Windows 启动。 | Windows 无法审核系统。 |
系统分区的文件系统类型未知。 | 系统分区的格式化使用了 Windows 无法识别的文件系统类型。 |
引导状态指出 OS 成功引导。 | Windows 成功启动。如果用户手动启动 Windows RE 并运行 Startup Repair,则此为常见方案。 |
安装正在进行中时失败。 | 计算机由于失败的 Windows 安装而无法启动。 |
操作系统版本与启动修复不兼容。 | Windows 的版本与启动修复的版本不匹配。例如,试图使用启动修复来修复 Windows XP 会触发此根源。 |
修复操作
下表介绍了可能的修复操作。
修复操作 | 描述 |
---|---|
引导关键磁盘元数据修复 (BCDMD) | 修复 MBR、分区表或启动扇区。 |
ChkDsk | 以修复模式运行 ChkDsk。 |
文件修复 | 用备份副本取代损坏的系统文件。 |
BootCfg | 重建引导配置数据 (BCD)。 |
系统还原 | 使用系统还原回滚系统状态。 |
ACL 修正 | 将指定的文件的 ACL 设为默认值。 |
注册表回滚 | 用备份副本取代损坏的注册表配置单元。 |
更改“审核失败时崩溃”设置 | 禁用 Windows 审核。仅有管理员才可以登录到 Windows。 |
内存诊断 | 运行 Windows 内存诊断工具。 |
下表介绍了可能的诊断或修复结果。
结果文字 | 描述 |
---|---|
Completed successfully.Error code = 0x0 | 诊断和修复进程已完成,未发生错误。 |
Failed.Error code = <errorcode> | 诊断和修复进程失败,发生指定的错误。 |
Started but not completed | 诊断进程或修复进程由用户取消。 |