我安装了全新的联想 900s,在安装完标准软件和开发系统后,系统突然无法启动,卡在启动屏幕上。我首先认为它有缺陷,然后重新启动,尝试修复 UEFI 引导扇区等,但无济于事。偶然我在与同事交谈时将它卡在了启动屏幕上,当我回到机器时,我可以登录了。
然后我发现机器启动需要 10 到 20 分钟。我运行了性能工具包,发现它卡在了 Wininit 阶段,但我无法找出哪个特定进程或驱动程序导致了这种情况。
我已经尝试过的:
sfc /scannow
dism restorehealth
- Windows 10 就地升级
- 卸载蓝牙和音频,重新安装
- 更新所有驱动程序
- 清除 Appcompat 缓存
这是启动阶段的图片:
截图中的文字:
线 # | 阶段名称 | 持续时间(秒) |
---|---|---|
1 | 会话前初始化 | 2.68 |
2 | 会话初始化 | 4.27 |
3 | 初始化 | 745.39 |
4 | 资源管理器初始化 | 24.78 |
5 | 启动后 | 38.00 |
编辑1:当我使用配置文件在性能分析器中加载 ETL 时,我可以看到该阶段正在运行的进程是、、和Fullboot.boot
。ntoskrnl.sys
这可能与 directX 有关?此外,在整个阶段几乎没有 CPU/磁盘活动。cdd.dll
cxkrnl.sys
win32kbase.sys
dxgmms2.sys
编辑2:我进行了一次日志启动。states没有加载(ntblog.txt
这cdrom.sys
是有道理的,因为没有 cdrom),四次(分布在日志中)dxgkrnl.syss 没有加载,接近末尾 wdFilter.sys 没有加载。DXDIAG 没有发现任何问题。设备管理器中没有警告标志。
编辑3:由于cdd
(标准显示驱动程序)涉及感兴趣的阶段,我卸载了 Intel 550 显示驱动程序,并选择删除文件。效果是常规徽标阶段和重新启动时“返回”徽标阶段之间的延迟更短。最终,显示器在问题发生之前初始化,更可能不是原因。
编辑4:我使用更多选项重新运行了启动监控,并打开了通用事件视图。我只能看到系统和空闲阶段处于活动状态,并且有几个子进程,但这并没有什么帮助,因为事件分布在 700 年代的时间线上。
编辑5:为了确保万无一失,我重置了 Windows 更新(停止服务、重命名软件分发文件夹、重新启动服务)。重启后没有变化……
编辑6:我决定采用痛苦的方式重新安装我的所有东西(因为我是一名开发人员,所以这相当麻烦),尤其是因为这是第二次了。我现在将返回到运行良好的早期映像,并在每次主要安装步骤之前设置还原点,然后重新启动。一旦我发现原因,我会在这里发布。
更新 1:我彻底重新安装了除 STEAM 之外的所有应用程序,并设置了系统还原点,每一步之后都重新启动 - 启动和重新启动需要 10 秒!我现在将制作两个映像,运行 bitlocker,然后尝试 steam(之前有一个还原点)。祈祷 ;-)
最后更新:我用 Bitlocker 加密了 C: 和 D: 并安装了 Steam。一切正常。与之前两次安装相比,导致启动时间延长 10-20 分钟的唯一区别是 Photoshop CS2。但我安装了它,检查了重新启动,工作正常,然后再次卸载它,因为我现在使用 Corel Photopaint。一方面我不知道是什么导致了这些问题,另一方面我现在很高兴拥有一台运行良好的 900。
答案1
WinLogonInit 阶段很慢。
此子阶段发生的情况
WinLogonInit 子阶段在 SMSSInit 完成并启动 Winlogon.exe 时开始。在 WinLogonInit 期间,会出现用户登录屏幕,服务控制管理器启动服务,并运行组策略脚本。WinLogonInit 在 Explorer 进程启动时结束。视觉提示WinLogonInit 在登录屏幕出现之前不久开始。它在桌面首次出现之前结束。
WinLogonInit 性能漏洞WinLogonInit 期间许多操作并行发生。在许多系统上,此子阶段受 CPU 限制,并且具有大量 I/O 需求。在此阶段启动的服务的良好公民身份对于优化启动时间至关重要。服务可以声明依赖关系或使用加载顺序组来确保它们以特定顺序启动。Windows 按串行顺序处理加载顺序组。早期加载顺序组中的服务初始化延迟会阻止后续加载顺序组,并可能阻止启动过程。
在打开捕获的trae后Windows 性能分析器 (wpa.exe)并应用FullBoot.Boot.wpaprofile
转到通用事件 - 通用 Fullboot 表并展开Microsoft-Windows-Winlogon
提供程序,查找属于一起的任务(任务名称相同,但 1 个事件带有开始,1 个事件带有停止操作码),查看时间列并从结束时间中减去开始时间以获得整个持续时间。现在任务很长。
在示例中,RequestCredentials(输入密码)和AuthenticateUser(检查输入的数据)花费的时间太长。