站长手记 - 站长手记
打印】【收藏此页
解决虚拟化运行的 Windows Server 2003 标准版 出现“PNP0C80”未知设备
作者:本站:苏信东  来源:WaveCN.com 世纪音频  发布日期:2014-01-05  最后修改日期:2014-01-05  

最近对手头的ESXi 5.1 进行了升级,升级为ESXi 5.5版本。完成升级后,发现部分(注意:不是全部)Windows 2003 标准版(32位)的虚机出现未知设备,且找不到驱动,如下:







同时,设备管理器的系统设备中出现大量“Generic Bus”设备,如下:



根据未知设备的硬件ID进行查询:
ACPI\PNP0C80

虽然没有信息直接指出如何解决这个问题,但可以发现,PNP0C80这个ACPI设备是用于热加内存的。同时,由于Windows 2003 只有企业版才支持热加内存,所以估计问题是出在ESXi 错误地向虚机提供了热加内存的设备信息。

于是着手纠正,这里直接给出过程,不加太多解释了:

1、关闭虚机;
2、编辑虚机硬件设置:“选项”页面,左边选择“常规选项”,右边检查“客户机操作系统”选择,出问题的虚机都是选择了:
“Microsoft Windows Server 2003 Standard (32位)”这个选项,如图:



将其改为:“Microsoft Windows Server 2003 (32位)”。如下图。这个选项实际上(在虚机配置文件中)就是Windows Server 2003 Enterprise。



点击确定按钮,然后再重新来一次编辑虚机硬件设置:“选项”页面,左边选择“高级 - 内存/CPU 热插拔”(此选项之前被隐藏),右边可以发现虚机是开启了内存热添加的。



选择“为此虚拟机禁用内存热添加。”。点击确定。启动虚机,未知设备和大量的Generic Bus消失。



最后检查了下Enterprise版本的Windows 2003,在开启了虚机的内存热添加之后,可以见到如下的内存设备信息: