# 蓝屏(BSOD)排查 ## 场景 服务器自己重启了,事件日志里有 `Kernel-Power` 41,或者面板上留下 `MEMORY.DMP`。 ## 前置条件 - 确认是蓝屏而不是断电(看事件日志和 dump 文件) - 打开了转储:系统属性 → 高级 → 启动和故障恢复 - 有 WinDbg 或者能拿到 dump 文件 ## 配置 先确认转储配置: ```powershell Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\CrashControl" | Select-Object CrashDumpEnabled, DumpFile, MinidumpDir ``` `CrashDumpEnabled`:0 无、1 小内存、2 内核、3 完全、7 自动。 收集信息: ```powershell # 最近的异常关机 Get-WinEvent -FilterHashtable @{LogName='System'; Id=41,1001,6008} -MaxEvents 10 | Format-Table TimeCreated, Id, ProviderName -AutoSize # 小内存转储 Get-ChildItem C:\Windows\Minidump\ | Sort-Object LastWriteTime -Descending ``` 分析(WinDbg Preview 打开 dump): ```text !analyze -v lmvm <驱动名> !sysinfo machineid ``` ## 验证 看 `BugCheck` 代码和 `Probably caused by : xxx.sys`,再对照驱动版本和厂商。 ## 回滚 - 如果是刚更新的驱动/补丁引起的,卸载更新或回滚驱动 - 硬件问题(内存、硬盘)只能换件 ## 坑 - **dump 文件默认不生成**,要在崩溃前就配好,事后补不了。 - `Kernel-Power 41` 只能说明「异常关机」,不一定是蓝屏,也可能是断电或硬件掉电。 - 服务器上蓝屏多是驱动、内存、RAID 卡固件,桌面机才是各种软件。 - 小内存转储(minidump)信息有限,定位驱动够用,定位逻辑错误不够。 - 反复蓝屏先跑内存诊断(`mdsched.exe`)和硬盘 SMART。 - 别在生产机上随便打开「完全内存转储」,C 盘会被占满。