VMware 的 CentOS 7 虚拟机卡死(看门狗watchdog cpu死锁)&宿主机崩溃排查全记录(含脚本+解决方案)hyperV 与 vmware冲突
🧠 VMware + CentOS 7 虚拟机卡死(看门狗watchdog cpu死锁)&宿主机崩溃排查全记录(含脚本+解决方案)hyperV 与 vmware冲突
系统环境:Windows 10(21H2)
VMware Workstation 版本:16.0.0 → 升级到 17.6.3
虚拟机系统:CentOS 7 Minimal + GUI
问题表现:虚拟机卡死、CPU 占用高、宿主机直接蓝屏
最终解决:关闭 Hyper-V 全家桶 + 更新 VMware + 升级虚拟硬件版本
- 🌟 问题现象
- 🔍 初步排查过程
- 🐞 死锁关键日志
- 🧪 虚拟化冲突初步怀疑
- 🛠 检测当前系统虚拟化状态(只读脚本)
- 🧹 一键关闭影响 VMware 的设置(可选执行)
- 📦 完全卸载 Hyper-V(推荐执行)
- 🧾 宿主机崩溃日志查看方法
- ✅ 最终解决方案总结
- 📌 最终配置 & 效果
🌟 问题现象
在 VMware Workstation 16.0.0 中运行 CentOS 7 虚拟机,出现以下问题:
- 启动后数分钟内卡死,虚拟机界面冻结
- 虚拟机内 CPU 占用率拉高(top 无法正常响应)
- 虚拟机日志中提示 soft lockup(软死锁)
- 主机 CPU 占用 20~70%,但主系统未立即死机
- 关闭
vhv.enable = "TRUE"后,主机直接蓝屏
🔍 初步排查过程
尝试的方向包括:
| 方案 | 效果 |
|---|---|
| 重装 CentOS 虚拟机 | ❌ 无效,死锁依旧 |
| 删除内核插件 / 禁用 systemd 服务 | ❌ 无效 |
| 禁用 3D 图形加速 + 高性能电源模式 | ⚠️ GUI 有改善,但死锁仍发生 |
修改 .bashrc 动态加载路径 | ✅ GUI 界面卡顿改善,但无根本变化 |
| 重装 VMware Tools | ❌ 无改善 |
🐞 死锁关键日志
虚拟机 dmesg 或 /var/log/messages 日志中反复出现:
kernel: BUG: soft lockup - CPU#0 stuck for 38s! [kworker/0:1:25758]
这表示 CentOS 虚拟机内核线程被死锁卡死,未能在软中断时间窗口内释放 CPU,最常见于 虚拟化冲突 / 中断不可达 / VT-x 模拟失败。
🧪 虚拟化冲突初步怀疑
开始怀疑是 VMware 和 Windows 的 Hyper-V 存在冲突,因为:
- 两者均使用 VT-x / AMD-V,底层虚拟化资源冲突
- 主机未启用 Hyper-V,但后台残留相关驱动或设置
vhv.enable = "FALSE"后导致主机崩溃 → 暴露系统未真正禁用 Hyper-V 相关模块
🛠 检测当前系统虚拟化状态(只读脚本)

保存为 check_vmware_conf.bat,右键以管理员运行:
@echo off
echo ========= VMware 虚拟化兼容性检测 =========
echo.
echo [1] 检查 Hyper-V 状态(bcdedit):
bcdedit | findstr "hypervisorlaunchtype"
echo.
echo [2] 检查 Hyper-V 功能是否启用(DISM):
DISM /Online /Get-Features | findstr /i "Microsoft-Hyper-V"
echo.
echo [3] 检查 Device Guard 注册表项:
reg query "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard" 2>nul
echo.
echo [4] 检查 Credential Guard 设置:
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Lsa" /v LsaCfgFlags 2>nul
echo.
echo [5] 检查内存完整性状态:
reg query "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity" /v Enabled 2>nul
echo.
echo ========== 检测完毕,请根据状态决定是否需要修改 ==========
pause
🧹 一键关闭影响 VMware 的设置(可选执行)
保存为 fix_vmware_conf.bat,右键以管理员运行:
@echo off
echo ========= 开始关闭 Hyper-V / Device Guard / Credential Guard / 内存完整性 =========
echo [1] 设置 hypervisorlaunchtype = off
bcdedit /set hypervisorlaunchtype off
echo [2] 禁用 Hyper-V 功能
DISM /Online /Disable-Feature:Microsoft-Hyper-V-All /NoRestart
echo [3] 删除 Device Guard 设置
reg delete "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard" /f
echo [4] 删除 Credential Guard 设置
reg delete "HKLM\SYSTEM\CurrentControlSet\Control\Lsa" /v LsaCfgFlags /f
echo [5] 禁用内存完整性配置
reg delete "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity" /f
echo.
echo ✅ 所有设置已处理,建议立即重启以生效。
pause
📦 完全卸载 Hyper-V(推荐执行)
DISM /Online /Disable-Feature:Microsoft-Hyper-V-All /NoRestart
或逐个禁用子模块:
DISM /Online /Disable-Feature:Microsoft-Hyper-V-Hypervisor /NoRestart
DISM /Online /Disable-Feature:Microsoft-Hyper-V-Services /NoRestart
🧾 宿主机崩溃日志查看方法
而完全卸载hyper后,启动windwos下虚拟机16.0.0的centos镜像直接崩溃,想起来之前解决崩溃办法竟然是用hyperV的兼容模式 让hyperV提供虚拟环境然后再用虚拟机vmware,开机是能开机但是不管centos7还是ubuntu都用一会就死锁 虚拟机卡死了(即使新安装的ubuntu),勉强能跑的错误的道路 比 完全不能跑的错误道路更要命,然后失去了 对hyperV的怀疑(之前好像是搜 虚拟机vmware开机崩溃怎么解决 有人教我再开hyperV 短时间可以解决问题 但是引起了更大的问题 错误的临时方案真的要命。。。),后面一段时间后才发现这个问题,意识到这个两个虚拟机 同时启动 会同时占用 硬件cpu资源后就难理解为啥 虚拟机的cpu会死锁 watch dog xxx了, 兜兜转转总是找到正确的路子
✅ 事件查看器查看方法:
Windows 内核级崩溃排查
查看蓝屏 minidump 文件:C:\Windows\Minidump\
使用 BlueScreenView 或 WinDbg 读取 .dmp 文件
事件查看器排查:
Win+R → 输入 eventvwr
路径:事件查看器 → Windows 日志 → 系统
筛选以下 ID:
1001:BugCheck(蓝屏错误)
41:Kernel-Power(系统强制重启)
6008:上次启动未正常关闭

✅ 最终解决方案总结
✅ 关键做法:

| 步骤 | 行动 |
|---|---|
| 1️⃣ | 禁用 Hyper-V 所有服务与驱动 |
| 2️⃣ | 删除 Device Guard / Credential Guard 注册表项 |
| 3️⃣ | 升级 VMware 至 17.6.3 build-24583834 |
| 4️⃣ | 升级虚拟机硬件版本至 17 |
| 5️⃣ | 修改 .vmx 配置文件,彻底关闭 Hyper-V 支持 |
📌 最终配置 & 效果
.vmx 关键配置:
.encoding = "UTF-8"
displayName = "CentOS 7 64 位 - 压缩空间"
config.version = "8"
virtualHW.version = "17"
hypervisor.cpuid.v0 = "FALSE"
mce.enable = "TRUE"
vhv.enable = "FALSE"
效果:
- 启动后可持续运行数小时无死锁
- GUI + 多个 CLion 实例同时运行,CPU 占用稳定在 0.6% 以下
- 再无宿主机蓝屏、虚拟机软死锁问题
🎉 到此为止,这次关于虚拟机软死锁 + 宿主机内核崩溃问题彻底解决!
💬 欢迎点赞、收藏、转发,也欢迎在评论区交流更多系统底层优化经验!
更多推荐
所有评论(0)