目录
问题描述:出现如图问题
解决办法1 vm设置cpu虚拟化
解决80%常见情况下cpu禁用的报错
1.右键该虚拟机标签后点击关机
2.虚拟机已关机后,进入该虚拟机设置界面
3.进入到cpu设置界面,把虚拟化3项都勾选上,保存。
重新打开虚拟机即可正常运行 ,VMware不会再提示"客户机操作系统已禁用 CPU,请关闭或重置虚拟机"。
如果到了这里你开启虚拟机使用一段时间不会提示cpu禁用,就不用再往下看了
大部分情况下修改完不会出问题
解决办法2 更改硬件兼容性
先用方法1再用方法2 解决90%常见情况下cpu禁用的报错
1.关闭虚拟机
2.右键系统选项卡-管理-更改硬件兼容性
3.选择旧版兼容性
如这里默认是16.2.x,我改选的15.x,也可以选再往前的版本如14
如果自己的兼容性为14,可以选择13,或者再往下跳几个版本选,以此类推
部分少许情况下需要升级兼容版本(降级不可用时尝试升级兼容性版本)
解决办法3 编辑vmx文件
方法1+方法2+方法3 基本能解决所有情况下cpu禁用的报错
除非虚拟机运行应用的cpu使用率严重超过本机cpu性能,物理cpu遇到瓶颈才会继续报错
1.在虚拟机的安装文件目录中找到.vmx后缀的文件,我的虚拟机命名为"radhat7.6",因此该文件名为radhat7.6.vmx,右键用记事本打开编辑该文件
该文件位置
找到该文件编辑
2.复制下面内容粘贴到文档最后
smc.version = "0"
cpuid.0.eax = "0000:0000:0000:0000:0000:0000:0000:1011"
cpuid.0.ebx = "0111:0101:0110:1110:0110:0101:0100:0111"
cpuid.0.ecx = "0110:1100:0110:0101:0111:0100:0110:1110"
cpuid.0.edx = "0100:1001:0110:0101:0110:1110:0110:1001"
cpuid.1.eax = "0000:0000:0000:0001:0000:0110:0111:0001"
cpuid.1.ebx = "0000:0010:0000:0001:0000:1000:0000:0000"
cpuid.1.ecx = "1000:0010:1001:1000:0010:0010:0000:0011"
cpuid.1.edx = "0000:0111:1000:1011:1111:1011:1111:1111"
featureCompat.enable = "TRUE"
粘贴到最后
3.重新打开虚拟机使用即可
解决办法4 降级系统内核
内核问题造成 centos7列出当前已安装的内核:
[root@localhost ~]# rpm -qa | grep -i kernel
kernel-tools-libs-3.10.0-1160.88.1.el7.x86_64
kernel-headers-3.10.0-1160.88.1.el7.x86_64
kernel-tools-3.10.0-1160.88.1.el7.x86_64
kernel-3.10.0-1160.88.1.el7.x86_64
kernel-lt-5.4.241-1.el7.elrepo.x86_64
kernel-lt-5.4.240-1.el7.elrepo.x86_64
kernel-3.10.0-1160.el7.x86_64
abrt-addon-kerneloops-2.1.11-60.el7.centos.x86_64
可以看到已经安装了5.4的内核 如果用5.4内核时,在cpu占用比较高时会出现 “客户机操作系统已禁用 CPU” 此时切换回3.10则一切正常,
[root@localhost ~]# uname -a
Linux localhost.localdomain 3.10.0-1160.88.1.el7.x86_64 #1 SMP Tue Mar 7 15:41:52 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
此现象也可以作为一个临时解决方法