vmware虚拟机WinXp sp3的系统cpu占用100%的解决方案

0x00 问题场景

1. 环境配置

角色 版本 位数 备注
虚拟机软件 VMware Workstation 15 \ 原始版本12,升到15
Host OS Windows 7 Professional 6.1.7601, Service Pack 1 64-bit \
Guest OS Windows XP service Pack 3 32 bit \

2. 环境说明

  1. VMware在很久以前是version12,后来因为要兼容一个高版本虚拟就升级到了15。
  2. 以前装的xp虚拟机,使用没有任何问题。开机很快,操作很流畅。不知为什么前一段时间突然变得很卡。看了下虚拟机中的cpu使用率达到了100%,一度怀疑中了病毒。而且曾经配置过双机调试,是不是系统的某个debug模式没有关。

0x01 问题分析

1. 是否为电脑病毒

严重怀疑中了病毒。

排查

XP中有安装360,然而在虚拟机十分卡顿的情况下,打开任务管理器需2-3分钟,杀毒估计得等到过年。这里LZ直接恢复到一版纯净的快照。
恢复后发现,cpu使用率依然是满载。说明这可能不是病毒的问题,因为即使是,VMware 虚拟机逃逸漏洞相关的利用门槛还是太高了,不会普遍存在。

2. 是否为XP虚拟机配置变更导致

莫非是xp虚拟机本身配置已经被更改了?虚拟机中毒了?

排查

彻底销毁xp的虚拟机。使用干净的xp镜像新建虚拟机。

然而,安装镜像一般半个小时,整整等了3个小时。安装过程中能感受到明显卡顿,估计cpu在安装过程就满载了。

作为刚出锅的热乎虚拟机,在锅里就就炸裂,完全无法理解。
在这里插入图片描述

3. 死马当活马医

52破解上的老贴,说是把【设备管理】中的【计算机】的 ACPI Multiprocessor PC 模式 改为 Standard PC即可消除问题。
在这里插入图片描述
排查
按照此法,在xp卡爆的情况下完成了操作。重启后,各种弹窗发现新xx。当然,还是卡到爆。
那么问题来了,什么是ACPI?

ACPI其实是一种电源管理标准,Advanced Configuration and Power Interface,一般翻译成高级电源管理,是Intel、Microsoft和东芝共同开发的一种电源管理标准。

ACPI三种电源模式

  1. ACPI Multiprocessor PC 用于多处理器 ACPI 计算机
  2. ACPI Uniprocessor PC 用于只安装了一个处理器的 ACPI 多处理器主板
  3. Advanced Configuration Power Interface PC 用于带有单处理器 ACPI 系统的单处理器主板

2000年以前的老机器,主要支持Standard PC电源模式(任何标准 PC、非 ACPI、或非 MPS)
2003年以前的主要支持Advanced Configuration Power Interface PC模式
2003年以后的主要支持ACPI Uniprocessor PC

这下明白了,ACPI Multiprocessor PC 是2003年以后出来的高级电源管理模式。我这xp是9102的虚拟机,必须是多处理器,硬件配置摆着呢,要回到原始社会?而且系统安装时就在炸,跟电源驱动不可能有半毛钱关系。

以后有同学遇到这个问题时,就不要再去采坑了,这条路行不通。

4. 虚拟化硬件加速导致

国内外的网友都遇到过这种问题,情况基本都是杀毒软件开启了虚拟化硬件加速功能,导致虚拟机卡死。比如,国内的火绒和360,国外的avast等。我第一时间否定了这种场景,因为我的机器是裸奔的。别问我看片怎么办?我也不会说虚拟机能做甚多事情的。

排查

废话就不多说了,关键问题就在这里。只能是虚拟化的问题导致的cpu过载问题。剩下的就是寻找虚拟化在那里配置。

  1. vmware虚拟机自身有【虚拟化引擎】的配置,然而模式是关闭的,也不用费心去开了。关还关不了呢。
  2. LZ经过一天思考人生,神交徐阶,梦聊张太岳,谓曰:君子处其实,不处其华;治其内,不治其外。顿悟,是Host OS本身的问题吧。

重启电脑,进入BIOS设置界面,关闭虚拟化中的VT for Direct I/O选项。保存后,启动电脑。xp开机速度快的起飞,运行速度也正常了。cpu恢复了正常。

切记:
虚拟化本身选项是不能关的,因为VMware需要。虚拟化的硬件加速功能不是必要条件,这里关闭就可以了。

0x02 解决方案

问题原因为虚拟化硬件加速与VMware产生了冲突,需要关闭掉硬件加速。

如果有杀毒软件的,可以看下杀毒软件中是否有该配置。

如果没有杀毒软件,可以重启电脑,在BIOS设置中关闭掉VT for Direct I/O选项。

0x03 参考文献

https://docs.vmware.com/en/VMware-vSphere/6.5/com.vmware.vsphere.monitoring.doc/GUID-5F8147A1-6416-4D29-BA3D-E4CED3966016.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章