【dmp位置】
目录:C:WindowsMinidump
文件:C:WindowsMEMORY.DMP
遇到一个特殊情况,2012R2系统安装22年1月份补丁后进不去系统,报[Windows未能启动。原因可能是最近更改了硬件或软件。状态0xc0000001 。] F8每一项都试了,都报0xc000021a ,产生一个dmp文件后又自动回到0xc0000001的界面。
排查步骤:
1、救援模式,多次chkdsk /f 系统盘盘符:是正常的,多次chkdsk /f 数据盘盘符:也是正常的
2、在救援模式里用360急救箱对系统盘全盘扫描未发现异常文件
3、在救援模式里发现2022-2-8安装了4个补丁
KB5008868 已安装
KB5008883 已挂起
KB5009624 已挂起
一开始看到3个补丁,其中2个是挂起状态,先在救援模式里离线卸载了这2个挂起的,开机时还是报0xc000021a
后来卸载了另1个(KB4535680),还是报0xc000021a
重新review发现还有第4个补丁KB4535680,
离线卸载后还是报0xc000021a
4、有注意到机器在2月8日安装补丁前,最近的补丁安装日期是2020年7月20日,2022-2-8安装的前3个补丁是微软2022年1月份补丁,其中有个补丁KB5009624在微软官网有标注,可能会影响机器重启异常,可详细阅读这篇文档了解 https://cloud.tencent.com/developer/article/1938504
5、关机冷迁移再开机还是报 0xc000021a
6、vnc录屏:
http://windowsbj-1251783334.cos.ap-beijing.myzijiebao.com/vnc录屏.mp4
卸载了最近安装的1月份补丁还是进不去系统,报[Windows未能启动。原因可能是最近更改了硬件或软件。状态0xc0000001 。] F8每一项都试了,都报0xc000021a ,产生一个dmp文件后又自动回到0xc0000001的界面。
7、分析系统winevtlogs目录的日志,日志截止于应用补丁准备重启后生效的那个时间点左右,日志上没有蛛丝马迹
8、分析dmp文件指向了一个BAD DLL,此case中是difxapi.dll
SmpInitialize、BAD DLL、difxapi.dll
Smp初始化失败,因为C:WindowsSystem32difxapi.dll坏了,解决办法就是在救援模式winpe找正常机器的对应文件替换(打补丁之前的那个正常的.dll文件)
这次损坏的是这个.dll文件,下次可能是其他的,反正dmp文件有这个特点基本就是在救援模式替换回原文件的思路了。