在 ESXi 中直通显卡时遇到 模块“DevicePowerOn”打开电源失败 是一个非常经典的报错。尤其是像 RTX 5090 这种拥有超大显存的新一代高端显卡,对虚拟机的内存分配和主板 PCIe 寻址空间有极其严格的要求。
以下是解决此报错的标准化排错步骤,可依次尝试:
1. 预留所有客户机内存(最常见原因)
ESXi 要求在使用 PCIe 直通设备时,必须将分配给虚拟机的内存全部锁定。如果没有勾选此项,虚拟机在开机时就会直接报 DevicePowerOn 错误。
-
操作方法:
-
右键点击你的虚拟机
Test-GPU-Passthrough-> 编辑设置。 -
展开 内存 (Memory) 选项。
-
勾选 “预留所有客户机内存(全部锁定)” (Reserve all guest memory (All locked))。
-
保存并尝试开机。
-
2. 配置高级参数分配足够的 MMIO 空间(针对 5090 必做)
RTX 5090 拥有巨大的显存(推测在 24GB 到 32GB 或以上)。默认情况下,ESXi 分配给 PCIe 设备的 32 位 MMIO 空间远不够用,会导致开机失败。你需要手动开启 64 位 MMIO 并分配足够的空间。
-
操作方法:
-
在虚拟机 编辑设置 -> 虚拟机选项 (VM Options) -> 高级 (Advanced) -> 配置参数 (Configuration Parameters) 中点击 编辑配置。
-
点击 添加参数,添加以下两行:
-
键:
pciPassthru.use64bitMMIO,值:TRUE -
键:
pciPassthru.64bitMMIOSizeGB,值:128(注:这个值通常建议设置为显卡显存的 2 倍以上,且最好是 2 的幂次方。对于 5090,填入64或128通常可以解决问题。)
-
-
3. 更改引导固件为 EFI
较新的高端显卡通常不再支持传统的 BIOS (Legacy) 引导,必须使用 UEFI 才能正确初始化。
-
操作方法:
-
在 虚拟机选项 -> 引导选项 (Boot Options) 中。
-
将 固件 (Firmware) 从 BIOS 更改为 EFI。
-
建议不要勾选“安全引导”(Secure Boot),以免干扰显卡驱动加载。
-
4. 隐藏虚拟机特征(防 NVIDIA 驱动报错)
虽然 NVIDIA 最近的驱动已经放宽了对虚拟机直通的限制(以前著名的 Error 43),但加上隐藏参数依然是最佳实践,有时也能解决底层初始化失败的问题。
-
操作方法:在刚才的配置参数列表中,继续添加一行:
-
键:
hypervisor.cpuid.v0,值:FALSE
-
5. 解除 ESXi 宿主机对显卡的占用(如果你只有这一张显卡)
如果你的服务器主板没有核显(或没有启用),ESXi 会默认把插入的第一张显卡(你的 5090)作为主机的控制台输出设备将其锁死,导致虚拟机无法独占开机。
-
操作方法:
-
在 ESXi 主机设置中开启 SSH 服务。
-
使用终端软件(如 PuTTY 或系统的 Terminal)SSH 连接到 ESXi 的 IP 地址。
-
输入并执行以下命令:
esxcli system settings kernel set -s vga -v FALSE -
执行完毕后,重启整个 ESXi 物理机。
-
6. 检查物理主板的 BIOS 设置
最后,请确保你的物理服务器/电脑主板的 BIOS 中开启了以下支持:
-
VT-d / AMD-Vi:必须开启(你已经能直通,说明这个应该已经开了)。
-
Above 4G Decoding(大于 4G 地址空间解码):必须开启(Enable),否则主板无法为 5090 分配大显存的寻址空间。
-
Resiza


176

被折叠的 条评论
为什么被折叠?



