Oamc

蓝屏(BSOD)排查

本页目录

场景

服务器自己重启了,事件日志里有 Kernel-Power 41,或者面板上留下 MEMORY.DMP。

前置条件

  • 确认是蓝屏而不是断电(看事件日志和 dump 文件)
  • 打开了转储:系统属性 → 高级 → 启动和故障恢复
  • 有 WinDbg 或者能拿到 dump 文件

配置

先确认转储配置:

Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\CrashControl" |
  Select-Object CrashDumpEnabled, DumpFile, MinidumpDir

CrashDumpEnabled:0 无、1 小内存、2 内核、3 完全、7 自动。

收集信息:

# 最近的异常关机
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):

!analyze -v
lmvm <驱动名>
!sysinfo machineid

验证

看 BugCheck 代码和 Probably caused by : xxx.sys,再对照驱动版本和厂商。

回滚

  • 如果是刚更新的驱动/补丁引起的,卸载更新或回滚驱动
  • 硬件问题(内存、硬盘)只能换件

坑

  • dump 文件默认不生成,要在崩溃前就配好,事后补不了。
  • Kernel-Power 41 只能说明「异常关机」,不一定是蓝屏,也可能是断电或硬件掉电。
  • 服务器上蓝屏多是驱动、内存、RAID 卡固件,桌面机才是各种软件。
  • 小内存转储(minidump)信息有限,定位驱动够用,定位逻辑错误不够。
  • 反复蓝屏先跑内存诊断(mdsched.exe)和硬盘 SMART。
  • 别在生产机上随便打开「完全内存转储」,C 盘会被占满。