IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> VMWare ESXi 开启显卡直通 (PCI 设备直通) 出现 DevicePowerOn 错误 -> 正文阅读

[系统运维]VMWare ESXi 开启显卡直通 (PCI 设备直通) 出现 DevicePowerOn 错误

[当前环境]:
VM EXSI: v 7.0.3
GPGPU: NVIDIA Tesla K80

1. 问题描述

VMware ESXI 在硬件管理中开启显卡的直通模式后,并将该设备添加到虚拟机新的 PCI 设备,保存后发现无法开启虚拟机,显示如下错误 Power On VM。当在虚拟机去掉该 PCI 设备后又可以重新开启,因此定位到问题是添加直通显卡后导致无法开机。
在这里插入图片描述

2. 解决方法

首先,通过 SSH 连接到 VM ESXI 的终端上。

2.1. 使用终端开启虚拟机

(1) 查看当前所有的虚拟机信息

使用 vim-cmd vmsvc/getallvms 查看当前存在的所有虚拟机。笔者当前只给 01-Ubuntu18.04 添加了直通 PCI 设备目前无法开机,本文将以此为例来说明解决问题。可以看到此处该问题虚拟机的 Vmid4(下文将会用到)。

[root@imaginemiracle:~] vim-cmd vmsvc/getallvms
Vmid        Name                                         File                                      Guest OS      Version   Annotation
13     02-Ubuntu20.04   [HDD-1T-01] Linux_sys/02-Ubuntu20.04/02-Ubuntu20.04/02-Ubuntu20.04.vmx   ubuntu64Guest   vmx-19
15     03-Ubuntu20.04   [HDD-1T-02] Linux_sys/03-Ubuntu20.04/03-Ubuntu20.04/03-Ubuntu20.04.vmx   ubuntu64Guest   vmx-19
17     04-Ubuntu20.04   [HDD-1T-02] Linux_sys/04-Ubuntu20.04/04-Ubuntu20.04/04-Ubuntu20.04.vmx   ubuntu64Guest   vmx-19
4      01-Ubuntu18.04   [HDD-1T-01] Linux_sys/01-Ubuntu18.04/01-Ubuntu18.04/01-Ubuntu18.04.vmx   ubuntu64Guest   vmx-19

(2) 用命令行开启虚拟机

使用 vim-cmd vmsvc/power.on <vmid> 命令开启虚拟机。可以看到目前的虚拟机是无法开机的,给出的出错信息如下,“Module 'DevicePowerOn' power on failed.”

[root@imaginemiracle:~] vim-cmd vmsvc/power.on 4
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. "
}

注:小知识

通过 vim-cmd 来控制虚拟机电源状态。
vim-cmd vmsvc/getallvms (获取所有虚拟机的 vmid 信息)

  • 关闭虚拟机
# vim-cmd vmsvc/power.off <vmid>
vim-cmd vmsvc/power.off 4
  • 打开虚拟机
# vim-cmd vmsvc/power.on <vmid>
vim-cmd vmsvc/power.on 4
  • 重启虚拟机
# vim-cmd vmsvc/power.reset <vmid>
vim-cmd vmsvc/power.reset 4
  • 获取虚拟机的当前状态
# vim-cmd vmsvc/power.getstate <vmid>
vim-cmd vmsvc/power.getstate 3

2.2. 修改虚拟机文件

打开当前开机失败的虚拟机文件(根据安装时的路径查找或者直接使用 find 命令查找,格式为 *.vmx)

[root@imaginemiracle:/vmfs/volumes/6286091a-4cc7c2b8-2515-0cc47a82c5e6/Linux_sys/01-Ubuntu18.04/01-Ubuntu18.04] ls
01-Ubuntu18.04-flat.vmdk                                            vmware-12.log
01-Ubuntu18.04.nvram                                                vmware-13.log
01-Ubuntu18.04.vmdk                                                 vmware-14.log
01-Ubuntu18.04.vmsd                                                 vmware-15.log
01-Ubuntu18.04.vmx                                                  vmware-16.log
01-Ubuntu18.04.vmxf                                                 vmware.log
vmware-11.log                                                       vmx-01-Ubuntu18.04-0d53beca3b2dc6e03fad42a5107bafe59ea51412-1.vswp

find 命令可根据虚拟机名在根目录下查找,这里给出使用示例。

# find <需要查找的目标目录> <参数(查找依据类型)> <参数(查找依据)>
[root@imaginemiracle:~] find / -name "01-Ubuntu18.04.vmx"
/vmfs/volumes/6286091a-4cc7c2b8-2515-0cc47a82c5e6/Linux_sys/01-Ubuntu18.04/01-Ubuntu18.04/01-Ubuntu18.04.vmx

打开 01-Ubuntu18.04.vmx 文件搜索关键字pciPassthru,在后面补充两行如下内容即可。

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

保存后即可重新打开该虚拟机。

到此问题解决!

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-05-25 11:45:26  更:2022-05-25 11:46:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 13:22:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码