在虚拟化环境中,将物理显卡直接分配给虚拟机(俗称“直通”)可以显著提升图形处理性能,适用于游戏串流3D 渲染机器学习等场景。本文将手把手教你如何在 ESXi 上完整配置显卡直通,并解决因屏蔽核显导致的管理界面丢失问题。

⚠️ 适用环境:ESXi 6.7 / 7.0 / 8.0
⚠️ 硬件要求:CPU 支持 VT-d / AMD-Vi,主板 BIOS 支持 Above 4G Decoding 及集显优先输出

📋 准备工作

  • 确认你的独立显卡(NVIDIA/AMD)已正确安装在服务器上
  • 确保 ESXi 主机有 SSH 访问权限
  • 建议提前备份现有虚拟机配置

1️⃣ BIOS 设置:强制优先使用集显

在直通独立显卡前,必须让 BIOS 将集成显卡设为系统主显示输出。这样才能释放 PCI 通道的独显用于直通。

操作步骤
进入主板 BIOS → 找到 Primary Graphics AdapterInit Display First → 选择 IGD(集成显卡)或 Internal VGA
下图为典型 BIOS 设置界面示例:
BIOS 设置集显为主输出
(不同主板界面略有差异,请以实际选项为准)

保存设置并重启 ESXi 主机。


2️⃣ Web 界面开启 PCI 设备直通

登录 ESXi 主机 Web 管理界面,执行设备直通切换:

  • 导航至 管理硬件PCI 设备
  • 找到你的独立显卡(通常包含 VGA 控制器音频设备 两个功能)
  • 勾选这两个设备,点击 切换直通
  • 系统会要求重新启动主机使其生效
    PCI 设备直通配置界面
💡 记得同时直通显卡上的 HDMI 音频设备,否则虚拟机可能无声音输出。

3️⃣ 屏蔽 ESXi 对核显的占用(命令行关键步骤)

默认情况下,ESXi 内核会占用核显作为控制台输出,导致核显无法直通给其他虚拟机。通过以下命令禁用 vga 模块,完全释放核显:

# 屏蔽核显(禁止 ESXi 调用)
esxcli system settings kernel set -s vga -v FALSE

若未来需要恢复 ESXi 对核显的调用(例如故障排查),执行:

# 恢复 ESXi 显卡调用
esxcli system settings kernel set -s vga -v TRUE

4️⃣ 修改 passthru.map 添加设备 ID

ESXi 需要识别显卡的 PCI 设备 ID 才能正确直通。通过 SSH 连接主机,先获取显卡 ID:

lspci -v

在输出中找到你的显卡(例如 NVIDIA/AMD),记录下类似 XXXX:XX:XX.X 格式的 设备 ID 和括号中的 供应商 ID
![lspci 获取显卡设备 ID]][3]

接着使用 vi 编辑配置文件:

vi /etc/vmware/passthru.map

根据显卡类型在文件末尾添加一行(示例为 NVIDIA 显卡):

# NVIDIA 显卡直通配置
10de  XXXXX  d3d0   false
  • 10de:NVIDIA 供应商 ID
  • XXXXX:你的设备 ID
  • d3d0:直通类型参数(常见为 d3d0 或 link)
  • false:禁用 ACS 检查

具体值请参考下图中的修改示例:
修改 passthru.map 示例

保存并退出(:wq)。


5️⃣ 修改 esx.conf 强制设置设备拥有者(高级操作)

此步骤可确保 PCI 设备被正确标记为直通设备。使用 vi 编辑:

vi /etc/vmware/esx.conf

在文件末尾添加以下内容(将 0000:02:00.0 替换为你的显卡 PCI 设备 ID):

/device/0000:02:00.0/owner = "passthru"
🔧 设备 ID 格式:通过 lspci 获得的完整 PCI 地址,例如 02:00.0 应写成 0000:02:00.0。如果你的显卡包含音频功能,需要为两个设备分别添加此条目。

保存后重启主机:

reboot

6️⃣ 配置虚拟机高级参数(解决显卡识别与内存寻址)

编辑虚拟机 .vmx 文件或 Web 界面添加参数

在 Web 管理界面:
编辑目标虚拟机 → 虚拟机选项高级配置参数添加参数

需手动添加以下三个关键参数:

参数名作用
hypervisor.cpuid.v0FALSE隐藏虚拟机监控程序签名,解决 NVIDIA 消费级显卡的 Code 43 错误
pciPassthru.use64bitMMIOTRUE启用 64 位 MMIO 内存映射,解决大显存显卡无法识别问题
pciPassthru.64bitMMIOSizeGB64分配 MMIO 地址空间大小(必须为 2 的幂,如 64GB)

下图展示了 Web 界面的添加示例:

虚拟机添加高级配置参数

🧠 提示:对于显存超过 8GB 的显卡(如 RTX 3080 / RX 6800),建议将 64bitMMIOSizeGB 设为 64 或更高。

🖥️ 管理替代方案:当 Web 管理界面无法显示时

由于我们屏蔽了核显,ESXi 直接连接的显示器将不再显示任何内容(包括 DCUI 管理界面)。此时你可以通过以下两种方式管理主机:

方式一:SSH + 文本控制台

SSH 登录后,直接调出经典的 ESXi 文本管理界面:

dcui

执行后,当前 SSH 会话会切换到类似本地控制台的菜单,可配置网络、重启服务等。

dcui 调用的文本控制台

方式二:完全远程管理

日常运维通过 ESXi Web 界面(https://你的ESXi-IP)或 vCenter 进行,物理显示器仅在底层故障时使用。


✅ 验证直通是否成功

  1. 启动配置了直通的虚拟机
  2. 在虚拟机内安装对应显卡驱动程序(NVIDIA/AMD 官方驱动)
  3. 连接显示器到直通显卡的物理接口
  4. 若能正常显示画面,且设备管理器识别到显卡,表示直通成功
🎮 游戏玩家:建议额外添加 msiEnabled = "FALSE" 参数(部分旧显卡中断问题),并根据需求配置 USB 直通。

最后修改:2026 年 05 月 25 日
如果觉得我的文章对你有用,请随意赞赏