Windows Server 2022 挂起恢复黑屏故障排障与修复
问题现象
现象描述: Windows Server 2022 虚拟机 (190) 从“已挂起”状态恢复运行时,一直黑屏无法正常使用,排查过程中出现多个连锁问题。
排查与解决过程
第一阶段:VM 恢复运行报“找不到 vmdk 文件”
现象:点击“继续运行虚拟机”时弹窗提示找不到
Windows Server 2022.vmdk,但实际检查磁盘文件确实存在。排查:查看目录发现残留的
Windows Server 2022.vmx.lck 锁文件夹(时间戳为几天前),推断是历史异常退出未正常释放锁,导致 VMware UI 层的启动前检查出现误判。解决:剪切(备份)掉这个
.vmx.lck 文件夹,再次尝试“继续运行虚拟机”,问题解决,VM 进入真正启动流程。第二阶段:sata0:1 设备连接提示
现象:弹出“无法连接虚拟设备 sata0:1,主机上没有相应设备”提示。
处理:判断为光驱设备配置残留问题,选择“否”,不影响启动,予以跳过。
第三阶段:系统启动检测到磁盘异常,触发 chkdsk
现象:启动过程中系统提示需要检查文件系统一致性(因为之前异常挂起/恢复导致磁盘标记为“未干净关闭”)。
处理:保留自动
chkdsk 检查(未跳过),进入 Windows 恢复环境后选择“继续”。第四阶段:登录后黑屏,explorer.exe 报“参数错误”
现象:输入密码后能看到锁屏,但桌面一直黑屏进不去,通过任务管理器手动运行
explorer.exe 报“参数错误”。
排查:
- 排除了 RDP 远程连接干扰的可能性。
- 确认 explorer.exe 文件本身大小、时间戳正常,非文件本体损坏。
- 运行
sfc /scannow发现:“Windows 资源保护找到了损坏文件,但其中有一些文件无法修复” → 确认是系统底层依赖组件损坏导致 explorer.exe 无法正常拉起。
根因:系统文件层面存在损坏,且 sfc 自身无法修复(缺少本地修复源)。
第五阶段:DISM 修复系统映像
尝试 1(联网修复):直接执行
DISM /Online /Cleanup-Image /RestoreHealth,报错 0x800f081f 找不到源文件 —— Windows Server 默认禁用了直接联机修复。
尝试 2(本地 ISO 源修复):挂载原版 Windows Server 2022 安装 ISO 作为本地修复源:
- 修正光驱挂载时忘记勾选“已连接”的问题。
- 通过
DISM /Get-WimInfo查出 wim 文件里对应版本索引号为 4(Datacenter Desktop Experience 版)。
Command Prompt (Admin)
DISM /Online /Cleanup-Image /RestoreHealth /Source:WIM:D:\sources\install.wim:4 /LimitAccess
✔ 结果:“还原操作已成功完成”
第六阶段:验证修复效果并补做磁盘检查
- 重新执行
sfc /scannow→ 这次提示 “找到损坏文件并成功修复了它们”,确认系统文件修复到位 ✅ - 执行
chkdsk C: /f /r,这次正确选择“是”安排下次重启时进行磁盘检查。 - 重启虚拟机,让 chkdsk 完整跑完磁盘扫描修复。
- 重启后系统正常进入桌面,explorer.exe 恢复正常 ✅
根本原因总结
这台 VM 之前经历过一次或多次异常关闭/崩溃(从多份 vmware 日志文件、found.000~009 碎片文件夹等痕迹可以印证),导致:
- VMware 层面:
.vmx.lck锁文件残留,干扰 UI 启动前检查。 - Windows 系统层面:文件系统一致性受损 + 部分系统文件(包括 explorer 相关组件)损坏。
后续建议
避免长期挂起: 避免长期让虚拟机停留在“挂起”状态,尽量用正常关机代替长期挂起,减少异常状态残留的概率。
监控宿主机资源: 定期检查宿主机资源(内存、磁盘空间)是否充足,资源不足容易导致 VM 异常退出。
本地保留修复镜像: 如果条件允许,给这类重要业务 VM 保留一份可用的系统安装 ISO(或 WIM/ESD 文件)在本地,方便下次类似情况快速修复。
建立健康快照存档: 建议后续给这台 VM 做一次完整快照或备份,当前系统状态已恢复健康,正好留个“干净存档点”。
评论
评论功能尚未配置:在 GitHub 仓库开启 Discussions 并安装 giscus App,然后到 giscus.app 生成配置,填入
web/.env.local。