针对 Windows 启动问题的高级疑难解答

试用我们的虚拟代理- 它可以帮助你快速识别和修复常见的 Windows 搜索问题。

注意

本文适用于支持代理和 IT 专业人员。 如果要查找有关恢复选项的更多常规信息,请参阅 Windows 10 中的恢复选项

适用于:Windows 10

摘要

基于 Windows 的计算机在启动时出现问题,原因有多种。 若要排查启动问题,请首先确定计算机在以下哪个阶段出现问题:

阶段 启动进程 BIOS UEFI
1 预启动 MBR/PBR(启动代码) UEFI 固件
2 Windows 引导管理器 %SystemDrive%\bootmgr \EFI\Microsoft\Boot\bootmgfw.efi
3 Windows OS 加载程序 %SystemRoot%\system32\winload.exe %SystemRoot%\system32\winload.efi
4 Windows NT OS 内核 %SystemRoot%\system32\ntoskrnl.exe
  1. 预启动:PC 的固件启动开机自检 (POST) 并加载固件设置。 在检测到有效的系统磁盘时,此预启动过程将结束。 固件 (MBR) 读取主启动记录,然后启动 Windows 引导管理器。

  2. Windows 引导管理器:Windows 引导管理器将查找并启动 Windows 启动分区上的 Windows 加载程序 (Winload.exe)。

  3. Windows 操作系统加载程序:将加载启动 Windows 内核所需的基本驱动程序,并且内核将开始运行。

  4. Windows NT OS 内核:该内核将系统注册表配置单元和其他标记为 BOOT_START 的驱动程序加载到内存中。

    内核将控制权传递给会话管理器进程 (Smss.exe),该进程会初始化系统会话,并加载和启动未标记为 BOOT_START 的设备和驱动程序。

下面是启动序列摘要、屏幕上将显示的内容以及序列中该点的典型启动问题。 在开始疑难解答之前,必须大致了解启动过程和显示状态,以确保在开始处理时正确识别问题。 选择缩略图可进行放大显示。

启动序列流程图的示意图。

每个阶段都对应不同的疑难解答方法。 本文提供前三个阶段中出现的问题的疑难解答方法。

注意

如果计算机反复启动到恢复选项,请在命令提示符处运行以下命令以解决此问题:

Bcdedit /set {default} recoveryenabled no

如果 F8 选项不起作用,请运行以下命令:

Bcdedit /set {default} bootmenupolicy legacy

BIOS 阶段

若要确定系统是否已通过 BIOS 阶段,请执行以下步骤:

  1. 如果有任何外部外围设备连接到计算机,请断开它们的连接。

  2. 检查物理计算机上的硬盘驱动器指示灯是否正常工作。 如果不工作,则此故障指示启动进程卡在 BIOS 阶段。

  3. 按 NumLock 键以查看指示灯是否打开和关闭。 如果未切换,则此故障指示启动进程卡在 BIOS 处。

    如果系统卡在 BIOS 阶段,可能存在硬件问题。

启动加载程序阶段

如果屏幕为黑色,但光标闪烁,或者收到以下错误代码,则此状态指示启动进程卡在启动加载程序阶段:

  • 启动配置数据 (BCD) 缺失或损坏
  • 启动文件或 MBR 已损坏
  • 操作系统丢失
  • 启动扇区缺失或损坏
  • Bootmgr 缺失或损坏
  • 由于系统配置单元缺失或损坏,无法启动

要解决此问题,请使用 Windows 安装媒体启动计算机,按 Shift+F10 获取命令提示符,然后使用以下任何方法。

方法 1:启动修复工具

启动修复工具会自动修复许多常见问题。 该工具还可用于快速诊断和修复更复杂的启动问题。 当计算机检测到启动问题时,计算机将启动启动修复工具。 该工具启动时,它会执行诊断。 这些诊断包括分析启动日志文件以确定问题的原因。 当启动修复工具确定原因时,该工具会尝试自动修复问题。

要执行此调用启动修复工具的任务,请执行以下步骤。

注意

有关启动 WinRE 的其他方法,请参阅 Windows 恢复环境 (Windows RE)

  1. 将系统启动到已安装版本的 Windows 的安装媒体。 有关更多信息,请参阅针对 Windows 创建安装介质
  2. 在“安装 Windows”屏幕上,选择“下一步”>“修复计算机”
  3. 在“选择一个选项”屏幕上,选择“疑难解答”
  4. 在“高级选项”屏幕上,选择“启动修复”
  5. 启动修复后,选择“关闭”,然后打开电脑以查看 Windows 是否可以正常启动。

启动修复工具会生成一个日志文件,以帮助了解启动问题和所做的修复。 可以在以下位置查找此日志文件:

%windir%\System32\LogFiles\Srt\Srttrail.txt

有关详细信息,请参阅对蓝屏错误进行疑难解答

方法 2:修复启动代码

要修复启动代码,请运行以下命令:

BOOTREC /FIXMBR

要修复启动扇区,请运行以下命令:

BOOTREC /FIXBOOT

注意

同时运行 BOOTRECFixmbr 仅覆盖主启动代码。 如果 MBR 中的损坏影响分区表,运行 Fixmbr 可能无法修复问题。

方法 3:修复 BCD 错误

如果收到与 BCD 相关的错误,请执行以下步骤:

  1. 扫描安装的所有系统。 要执行此步骤,请运行以下命令:

    Bootrec /ScanOS
    
  2. 重启计算机以检查问题是否已修复。

  3. 如果问题未修复,请运行以下命令:

    bcdedit /export c:\bcdbackup
    
    attrib c:\boot\bcd -r -s -h
    
    ren c:\boot\bcd bcd.old
    
    bootrec /rebuildbcd
    
  4. 重新启动系统。

方法 4:替换 Bootmgr

如果方法 1、2 和 3 无法修复问题,请将 Bootmgr 文件从驱动器 C 替换为系统保留分区。 要进行此替换,请按照下列步骤操作:

  1. 在命令提示符下,将目录更改为“系统保留”分区。

  2. 运行 attrib 命令以取消隐藏文件:

    attrib -r -s -h
    
  3. 导航到系统驱动器并运行相同的命令:

    attrib -r -s -h
    
  4. 将 bootmgr 文件重命名为 bootmgr.old

    ren c:\bootmgr bootmgr.old
    
  5. 导航到系统驱动器。

  6. 复制 bootmgr 文件,然后将其粘贴到“系统保留”分区。

  7. 重启计算机。

方法 5:还原系统配置单元

如果 Windows 无法将系统注册表配置单元加载到内存中,则必须还原系统配置单元。 若要执行此步骤,请使用 Windows 恢复环境或使用紧急修复磁盘 (ERD) 将文件从 C:\Windows\System32\config\RegBack 目录复制到 C:\Windows\System32\config

如果问题仍然存在,则建议将系统状态备份还原到备用位置,然后检索要替换的注册表配置单元。

注意

从 Windows 10 版本 1803 开始,Windows 不再自动将系统注册表备份到 RegBack 文件夹。此更改是设计使然,旨在帮助减少 Windows 的整体磁盘空间占用。 若要恢复注册表配置单元损坏的系统,Microsoft 建议使用系统还原点。 有关详细信息,请参阅从 Windows 10 版本 1803 开始,系统注册表不再备份到 RegBack 文件夹

内核阶段

如果系统停滞在内核阶段,你会遇到多种症状或收到多个错误消息。 这些错误消息包括但不限于以下示例:

若要解决这些问题,请逐一尝试以下恢复启动选项。

方案 1:尝试使用“安全模式”或“最近一次的正确配置”启动计算机

在“高级启动选项”屏幕上,尝试使用“安全模式”或“网络安全模式”启动计算机。 如果任一选项都有效,请使用事件查看器来帮助识别和诊断造成启动问题的原因。 若要查看事件日志中记录的事件,请执行以下步骤:

  1. 可使用以下方法之一打开事件查看器:

    • 前往“开始”菜单,选择“管理工具”,然后选择“事件查看器”
    • 在 Microsoft 管理控制台 (MMC) 中启动事件查看器管理单元。
  2. 在控制台树中,展开事件查看器,然后选择要查看的日志。 例如,选择“系统日志”或“应用程序日志”

  3. 在详细信息窗格中,打开要查看的事件。

  4. 在“编辑”菜单上,选择“复制”。 在要在其中粘贴事件的程序中打开新文档。 例如,Microsoft Word。 然后选择“粘贴”

  5. 使用向上键或向下键查看上一个或下一个事件的说明。

干净启动

若要排查影响服务的问题,请使用系统配置 (msconfig) 进行一次干净启动。 选择“选择性启动”,逐个测试服务,以确定是哪个服务导致了问题。 如果找不到原因,请尝试包含系统服务。 但是,在大多数情况下,有问题的服务都是第三方服务。

禁用发现有故障的任何服务,并尝试通过选择“正常启动”再次启动计算机。

有关详细说明,请参阅如何在 Windows 中执行干净启动

如果计算机在“禁用驱动程序签名”模式下启动,请在“禁用驱动程序强制签名”模式下启动计算机,然后按照以下文章中所述的步骤确定哪些驱动程序或文件需要强制实施驱动程序签名: 排查因缺少驱动程序签名而导致的启动问题 (x64)

注意

如果计算机是域控制器,请尝试目录服务还原模式 (DSRM)。

如果遇到停止错误 "0xC00002E1" 或 "0xC00002E2",此方法是一个重要步骤

示例

警告

如果使用注册表编辑器或使用其他方法错误地修改了注册表,则可能会发生严重问题。 这些问题可能需要重新安装操作系统才能解决。 Microsoft 不能保证可解决这些问题。 修改注册表的风险由您自行承担。

错误代码 INACCESSIBLE_BOOT_DEVICE (STOP 0x7B)

要对此停止错误进行疑难解答,请按照以下步骤筛选驱动程序:

  1. 通过将系统的 ISO 磁盘放入磁盘驱动器,转到 Windows 恢复环境 (WinRE)。 ISO 应具有相同版本的 Windows 或更高版本。

  2. 打开注册表。

  3. 加载系统配置单元并将其命名为 test

  4. 在以下注册表子项下,检查非 Microsoft 驱动程序的下级筛选器项和上级筛选器项:

    HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class

  5. 对于找到的每个第三方驱动程序,选择上级或下级筛选器,然后删除值数据。

  6. 在整个注册表中搜索类似项。 根据需要处理,然后卸载注册表配置单元。

  7. 在正常模式下重启服务器。

有关更多疑难解答步骤,请参阅停止错误 7B 或 Inaccessible_Boot_Device 的高级疑难解答

要修复安装 Windows 更新后出现的问题,请使用以下步骤检查挂起的更新:

  1. 在 WinRE 中打开命令提示符窗口。

  2. 运行以下命令:

    DISM /image:C:\ /get-packages
    
  3. 如果有任何挂起的更新,请运行以下命令将其卸载:

    DISM /image:C:\ /remove-package /packagename: name of the package
    
    DISM /Image:C:\ /Cleanup-Image /RevertPendingActions
    

    尝试启动计算机。

如果计算机未启动,请执行以下步骤:

  1. 在 WinRE 中打开命令提示符窗口,并启动文本编辑器,例如记事本。

  2. 导航到系统驱动器,并搜索 windows\winsxs\pending.xml

  3. 如果找到 pending.xml 文件,请将该文件重命名为 pending.xml.old

  4. 打开注册表,然后在 HKEY_LOCAL_MACHINE 中将组件配置单元加载为 test。

  5. 突出显示加载的测试配置单元,然后搜索 pendingxmlidentifier 值。

  6. 如果 pendingxmlidentifier 值存在,请将其删除。

  7. 卸载测试配置单元。

  8. 加载系统配置单元,将其命名为 test

  9. 导航到以下子项:

    HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\TrustedInstaller

  10. 将“开始”值从 1 更改为 4

  11. 卸载配置单元。

  12. 尝试启动计算机。

如果在启动进程的后期出现停止错误,或者仍生成停止错误,则可以捕获内存转储。 良好的内存转储有助于确定停止错误的根本原因。 有关详细信息,请参阅生成内核或完整的故障转储

有关 Windows 10 或 Windows Server 2016 中页面文件问题的详细信息,请参阅页面文件简介

有关停止错误的详细信息,请参阅停止错误或蓝屏错误问题的高级疑难解答

有时转储文件显示与驱动程序相关的错误。 例如,windows\system32\drivers\stcvsm.sys 缺失或损坏。 在此实例中,请遵循以下准则:

  • 检查驱动程序提供的功能。 如果驱动程序是第三方启动驱动程序,请确保了解它的用途。

  • 如果驱动程序不重要且没有依赖项,请加载系统配置单元,然后禁用该驱动程序。

  • 如果停止错误指示系统文件损坏,请在脱机模式下运行系统文件检查器。

    • 若要执行此操作,请打开 WinRE,打开命令提示符,然后运行以下命令:

      SFC /Scannow /OffBootDir=C:\ /OffWinDir=C:\Windows
      

      有关详细信息,请参阅使用系统文件检查器 (SFC) 修复问题

    • 如果磁盘损坏,请运行检查磁盘命令:

      chkdsk /f /r
      
  • 如果停止错误指示一般注册表损坏,或者你认为安装了新的驱动程序或服务,请执行以下步骤:

    1. 启动 WinRE 并打开命令提示符窗口。
    2. 启动一个文本编辑器(例如记事本)。
    3. 导航到 C:\Windows\System32\Config\
    4. 通过向名称追加 .old 来重命名所有五个配置单元。
    5. Regback 文件夹中复制所有配置单元,将其粘贴到 Config 文件夹中,然后尝试在“正常模式”下启动计算机。

注意

从 Windows 10 版本 1803 开始,Windows 不再自动将系统注册表备份到 RegBack 文件夹。此更改是设计使然,旨在帮助减少 Windows 的整体磁盘空间占用。 若要恢复注册表配置单元损坏的系统,Microsoft 建议使用系统还原点。 有关详细信息,请参阅从 Windows 10 版本 1803 开始,系统注册表不再备份到 RegBack 文件夹