Windows 10 排错 PHASE1_INITIALIZATION_FAILED
一台 Windows 10 计算机在启动过程中发生 Bug Check,提示“PHASE1_INITIALIZATION_FAILED”,且没有任何参数。微软官方资料也未对该错误有更多的解释,但可以肯定这是非常罕见的启动故障类型,因为即使通过“安全模式”也无法正常启动系统。
用户反馈在发生故障前使用 USB 端口插入过华为手机拷贝过资料(PS:我为什么要重点提牌子呢?!),那么应该与驱动程序或系统文件损坏有关,目前只能使用 WinPE 引导进行脱机修复。
考虑到故障是“PHASE1_INITIALIZATION_FAILED”,那么问题应该发生在“内核初始化”或“会话初始化”阶段,可参考下图(PS:虽然是 Windows 7 Boot Process,但也适用于 Windows 10)。
在内核初始化阶段,内核将初始化数据结构和组件,启动 PnP 管理器,该管理器初始化在 OSLoader 阶段加载的 Boot_START 类型驱动程序。当内核将控制传递给会话管理器进程(smss.exe)时,SMSSInit 子阶段开始,在此子阶段期间,系统将初始化注册表,加载并启动未标记为 Boot_START 的设备和驱动程序,并启动子系统进程,当控件传递给 Winlogon.exe 时 SMSSInit 结束。
所以,我们需要确认当前系统中安装的驱动程序,这也包含一些安全软件的逻辑驱动。如果系统是在线模式,我们可以使用设备管理器,或 Driverquery.exe 查询这些驱动程序。对于离线系统,如果你没有微软的 DaRT,那么只能使用注册表编辑器离线加载系统注册表(C:WindowsSystem32configSYSTEM)。
然后逐个审查“HKLMSYSTEMCurrentControlSetServices”下的项,要识别启动类型则需要通过“Start”键值,这是一个 DWORD 值,具体表示如下:
- 0x00000000: SERVICE_BOOT_START
- 0x00000001: SERVICE_SYSTEM_START
- 0x00000002: SERVICE_AUTO_START
- 0x00000003: SERVICE_DEMAND_START
- 0x00000004: SERVICE_DISABLED
此外,我们还可以从“HKLMSYSTEMCurrentControlSetControlServiceGroupOrder”获得完整的加载顺序。参考资料:https://docs.microsoft.com/en-us/windows-hardware/drivers/ifs/what-determines-when-a-driver-is-loaded
可疑的设备驱动没发现,倒是发现了 360 相关的,以及另一个可疑的驱动,果断干掉,重启后可能会遇到 0xc0000001 故障,可以忽略重启,之后就能够进入桌面。
简单总结一下,在 Windows 登录界面未启动前如果发生异常,则可以重点检查系统加载的驱动程序。当然,也可以对磁盘做一次扫描检测,最好再对系统组件也做一次扫描修复。