Wind2022 + Hyper-V + Ubuntu 22.04 + RTX A6000 显卡直通
Windows Server 2022 + Hyper-V + Ubuntu 22.04 + RTX A6000 显卡直通
基本环境
环境:
- Windows Server 2022 标准版
- 物理机支持 VT-d 技术(Intel VT-d 或 AMD-Vi)
- 物理机支持 IOMMU 功能
- RTX A6000 显卡
windows server 2022版本
安装Hyper-V
- 以 管理员身份 打开 PowerShell,执行以下命令(安装后自动重启):
# 安装 Hyper-V 角色及管理工具 Install-WindowsFeature -Name Hyper-V -IncludeManagementTools -Restart - 解绑 RTX A6000 显卡(供虚拟机直通使用)
2.1 禁用显卡设备
打开「设备管理器」→ 展开「显示适配器」
右键「NVIDIA RTX A6000」→ 选择「禁用设备」(宿主机不再使用该显卡)
2.2 查询显卡 InstancePath
管理员 PowerShell 执行命令,复制输出的 InstanceId(实际为 Server 2022 所需的 InstancePath):
示例输出(需替换为你的实际路径):# 筛选 NVIDIA 显卡的 InstancePath Get-PnpDevice -Class Display | Where-Object FriendlyName -like "NVIDIA*" | Select-Object FriendlyName, InstanceId
2.3 解绑显卡供 Hyper-V 使用plaintext FriendlyName InstanceId ------------ ---------- NVIDIA RTX A6000 PCI\VEN_10DE&DEV_2230&SUBSYS_14591028&REV_A1\4&24FCC77D&0&0010
执行以下命令(替换为你的 InstancePath):
成功标志:无报错或提示「操作成功完成」# 核心命令:解绑显卡(Server 2022 用 -InstancePath 参数,而非 -InstanceId) Dismount-VmHostAssignableDevice -InstancePath "PCI\VEN_10DE&DEV_2230&SUBSYS_14591028&REV_A1\4&24FCC77D&0&0010" -Force
2.4 验证解绑成功
输出包含 NVIDIA RTX A6000 及对应 InstanceID 即成功。# 查看 Hyper-V 可直通的设备列表 Get-VMHostAssignableDevice InstanceID : PCIP\VEN_10DE&DEV_2230&SUBSYS_14591028&REV_A1\4&24FCC77D&0&0010 LocationPath : PCIROOT(4A)#PCI(0200)#PCI(0000) CimSession : CimSession: . ComputerName : WIN-8136HEDM9LJ IsDeleted : False
hyper-v 虚拟机创建
- 创建第二代(Gen2)虚拟机
打开「Hyper-V 管理器」→ 右键本地服务器 →「新建 → 虚拟机」:步骤 配置项 具体操作 1 名称 / 位置 名称:vmGPU(自定义),位置选择存储路径 2 虚拟机代数 必须选择「第二代」(仅 Gen2 支持 PCIe 直通) 3 内存 分配 32GB 固定内存(禁用「动态内存」) 4 网络适配器 选择已配置的虚拟交换机(如「toOutside」,确保虚拟机联网) 5 虚拟硬盘 创建新硬盘:VHDX 格式,大小 ≥ 100GB(动态扩展即可) 6 安装选项 选择「以后安装操作系统」→ 完成 - 虚拟机核心配置(PowerShell 命令优先,避坑)
由于 Server 2022 图形界面可能缺失部分选项,推荐用以下命令配置(管理员 PowerShell 执行):$vmName = "vmGPU" # 替换为你的虚拟机名 $gpuInstancePath = "PCI\VEN_10DE&DEV_2230&SUBSYS_14591028&REV_A1\4&24FCC77D&0&0010" # 替换为你的显卡 InstancePath # 1. 启用虚拟机监控程序扩展(显卡直通必需) Set-VMProcessor -VMName $vmName -ExposeVirtualizationExtensions $true # 2. 确认动态内存禁用(已在创建时设置,此处验证) Set-VMMemory -VMName $vmName -DynamicMemoryEnabled $false -MemoryStartupBytes 32GB # 3. 绑定 RTX A6000 到虚拟机 Add-VMAssignableDevice -VMName $vmName -InstancePath $gpuInstancePath # 4. 配置网络(关联虚拟交换机,确保联网) Connect-VMNetworkAdapter -VMName $vmName -SwitchName "toOutside" # 替换为你的交换机名 - 图形界面补充配置(可选)
右键虚拟机 →「设置」,验证以下项:
「固件」:将「DVD 驱动器」移到启动顺序第一位(后续装 Ubuntu)
「安全」:取消勾选「启用安全启动」(避免影响显卡识别)
「硬件」:确认列表中存在「PCI Express 设备 - NVIDIA RTX A6000」
「检查点」:确保「启用检查点」已勾选 生产检查点,启用 使用自动检查点
「自动停止操作」: 选择当虚拟机关机时,强行关闭虚拟机
安装 Ubuntu 22.04
ubuntu安装GPU驱动
更新系统后,安装其他工具
sudo apt update
sudo apt upgrade
# 安装 Hyper-V 集成服务(适配硬件)
sudo apt install -y linux-tools-virtual linux-cloud-tools-virtual
sudo reboot # 必须重启生效禁用 nouveau 开源驱动(避免冲突)
# 创建禁用配置文件
sudo tee /etc/modprobe.d/blacklist-nouveau.conf <<EOF
blacklist nouveau
options nouveau modeset=0
EOF
# 更新内核配置
sudo update-initramfs -u
sudo reboot # 重启后 nouveau 完全禁用安装nvdia cuda驱动
# 1. 安装 NVIDIA 官方密钥(避免 apt 报错)
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
# 2. 安装 CUDA 驱动(自动适配 RTX A6000)
sudo apt update && sudo apt install -y cuda
sudo reboot # 重启后驱动生效验证显卡直通成功
# 检查 NVIDIA 驱动是否加载
nvidia-smi成功标志:显示 RTX A6000 相关信息(如温度、功耗等)
创建快照
# 1. 为虚拟机创建快照
Checkpoint-VM -Name "vmGPU" -SnapshotName "GPU success"
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 WenYan Blog!
评论









