排查日期:2026-09-16 · 适用系统:Windows + VMware Workstation
问题现象
在 VMware Workstation 中启动一台 CentOS 7 64 位 虚拟机时,弹出错误对话框:

无法继续启动虚拟机,业务受到影响。
根因分析
VMware 在虚拟机运行时,会在虚拟机目录中生成一系列 .lck(Lock,锁)目录,用于防止多个进程同时读写同一块虚拟磁盘,保证数据一致性。
正常情况下,虚拟机正常关机或退出后,这些锁文件会自动删除。但如果出现以下情况,锁文件就会残留:
- 虚拟机所在宿主机突然断电或蓝屏
- 虚拟机强制关机(任务管理器结束进程、直接拔电源等)
- VMware 进程异常崩溃
- 虚拟机正在运行快照合并等操作时被中断
这些场景下,VMware 来不及清理锁文件就退出了,下次启动时检测到锁文件存在,就会报错。
排查过程
第一步:确认是否有残留锁文件
查看虚拟机所在目录:
powershell Get-ChildItem "C:vmwarecentos" -Filter "*.lck" -Recurse
发现以下 5 个锁目录:
| 锁文件路径 | 最后修改时间 |
|---|---|
| CentOS 7 64 位.vmx.lck | 2026/9/11 9:06 |
| CentOS 7 64 位.vmdk.lck | 2026/9/11 10:23 |
| CentOS 7 64 位-000001.vmdk.lck | 2026/9/11 10:23 |
| CentOS 7 64 位-000002.vmdk.lck | 2026/9/11 10:23 |
| 564dca41-bd87-4432-b2d7-2777a4ab4df9.vmem.lck | 2026/9/11 10:23 |
锁文件的最后修改时间是 9月11日,而当前日期是 9月16日——说明虚拟机已经停了超过 5 天,这些锁文件明显是残留的。
第二步:确认没有 VMware 进程仍在占用
powershell Get-Process | Where-Object { .Name -like '*vmware*' } | Select-Object Name, Id
发现只有当前正在运行的 mware.exe(PID 21160)等前台进程,没有残留的 mware-vmx.exe 进程(这是真正运行虚拟机的子进程)。
结论:没有真实进程持有这些锁,可以放心清理。
解决方案
方案一:手动删除锁文件(推荐)
直接删除虚拟机目录下的所有 .lck 目录即可:
`powershell
PowerShell 一行命令,清理所有残留锁文件
Get-ChildItem "C:vmwarecentos" -Filter "*.lck" -Recurse | Remove-Item -Recurse -Force
或者用 CMD:
rmdir /s /q "C:\vmware\centos\CentOS 7 64 位.vmx.lck"
rmdir /s /q "C:\vmware\centos\CentOS 7 64 位.vmdk.lck"
rmdir /s /q "C:\vmware\centos\CentOS 7 64 位-000001.vmdk.lck"
rmdir /s /q "C:\vmware\centos\CentOS 7 64 位-000002.vmdk.lck"
rmdir /s /q "C:\vmware\centos\564dca41-bd87-4432-b2d7-2777a4ab4df9.vmem.lck"
删除后重新启动虚拟机,问题解决。
方案二:先尝试正常关闭再删除
如果虚拟机可能正在运行(例如通过 SSH 能连上),可以先正常关机:
`ash
在虚拟机内部执行
sudo shutdown -h now
`
正常关机后 VMware 会自动清理锁文件,不需要手动删除。
方案三:重启宿主机
最简单粗暴的方式——重启电脑。重启后确认没有任何 VMware 进程残留,再进入虚拟机目录删除锁文件即可。
注意事项
- 删除锁文件前,务必确认虚拟机没有在运行,否则可能导致磁盘数据损坏。
- 可以通过以下方式确认:
- 任务管理器中查看是否有 mware-vmx.exe 进程
- 尝试 ping 虚拟机 IP,看是否能连通
- 锁文件的 UUID 字段记录了持锁进程的 PID 和名称,如果 UUID 对应的进程已不存在,说明锁是残留的。
- 如果删除锁文件后仍然无法启动,可能需要检查 .vmdk 磁盘文件本身是否损坏,或尝试使用 mware-vdiskmanager 修复磁盘。
如何避免此类问题
- 养成正常关机的习惯,不要直接杀进程或断电
- 在 VMware 设置中开启「异常退出时自动清理锁文件」选项(部分版本支持)
- 定期将虚拟机文件放在机械硬盘而非网络驱动器上,网络存储更容易出现锁文件残留
- 给虚拟机配置 UPS,避免突然断电
总结
这个问题很常见,本质上就是 VMware 的「非正常退出 → 锁文件未清理 → 下次启动被拒绝」的连锁反应。排查思路清晰:
确认锁文件残留 → 确认无真实进程占用 → 安全删除 → 重启虚拟机
整个过程无需重装 VMware,也不会影响虚拟机内的数据(前提是虚拟机确实已经停止运行)。