这篇文章上次修改于 470 天前,可能其部分内容已经发生变化,如有疑问可询问作者。

这个问题折磨了我好久

环境

ESXi 7.0 U2
NVIDIA Tesla K80

症状

在控制台上的报错为:失败 - 模块“DevicePowerOn”打开电源失败。
切换到SSH执行命令,报错为:

Powering on VM:
Power on failed: (vim.fault.GenericVmConfigFault) {
   faultCause = (vmodl.MethodFault) null,
   faultMessage = (vmodl.LocalizableMessage) [
      (vmodl.LocalizableMessage) {
         key = "msg.moduletable.powerOnFailed",
         arg = (vmodl.KeyAnyValue) [
            (vmodl.KeyAnyValue) {
               key = "1",
               value = "DevicePowerOn"
            }
         ],
         message = "Module 'DevicePowerOn' power on failed. "
      },
      (vmodl.LocalizableMessage) {
         key = "msg.vmx.poweron.failed",
         arg = <unset>,
         message = "Failed to start the virtual machine."
      }
   ],
   reason = "Module 'DevicePowerOn' power on failed. "
   msg = "Module 'DevicePowerOn' power on failed. "
}

可以自行核对是不是这种错误

解法

先找到当前VM

[root@localhost:~] find / -name $VM_NAME$
/vmfs/volumes/66666666-11451419-8888-crnmsmshsa/

然后打开.vmx文件,找到"pciPassthru"开头的配置,在这些配置的末尾续两行:

pciPassthru.use64bitMMIO="TRUE"
pciPassthru.64bitMMIOSizeGB="64"

注意,这里的pciPassthru后面没有0或其他数字,不需要像上面的配置那样加数字
错误示范:pciPassthru0.use64bitMMIO="TRUE"

保存退出之后就可以去控制台启动VM了

参考文献

vsphere虚拟机启用显卡时devicepoweron失败解决