跳至正文
首页 » 故障排查:RTX 5090 VPS 设备管理器显示 Code 45 且硬件“消失”的修复实录

故障排查:RTX 5090 VPS 设备管理器显示 Code 45 且硬件“消失”的修复实录

  • GPU

问题背景

在我的日常运维工作中,一位用户反馈其 RTX 5090 VPS 无法识别显卡。通过远程连接发现:

  1. 设备管理器:NVIDIA GeForce RTX 5090 显示为隐藏设备,且在任务管理器中无法显示GPU。

  2. 错误详情:状态码为 Code 45 (Currently, this hardware device is not connected to the computer)

  3. 进一步恶化:我在尝试“卸载设备”并重新扫描硬件后,显卡直接从设备列表中消失,任务管理器也完全不显示 GPU。

这种现象在虚拟化环境下通常不是物理损坏,而是底层 PCIe 映射(Passthrough)关系断裂导致的“逻辑掉卡”。

5090 device not showing

宿主机底层排查

为了确定硬件状态,我直接登录了该 VPS 所在的物理宿主机 DBM-RTX5090-006

1. 物理总线核实

首先确认显卡是否还在物理总线上。

root@DBM-RTX5090-006:~# lspci | grep -i nvidia
02:00.0 VGA compatible controller: NVIDIA Corporation Device 2b85 (rev a1)
02:00.1 Audio device: NVIDIA Corporation Device 22e8 (rev a1)
82:00.0 VGA compatible controller: NVIDIA Corporation Device 2b85 (rev a1)
82:00.1 Audio device: NVIDIA Corporation Device 22e8 (rev a1)

分析:硬件在物理层面接通正常。注意 2b85 正是 RTX 5090 的 Device ID。

2. 驱动绑定状态检查

这是解决 Code 45 的关键。虚拟机要使用显卡,宿主机必须将该显卡绑定到 vfio-pci 驱动。

root@DBM-RTX5090-006:~# lspci -vvv -s 82:00.0 | grep "Kernel driver in use"
# 输出为空,未发现 Kernel driver in use

故障根源:宿主机内核虽然识别到了显卡,但由于某种原因(如总线重置失败),显卡脱离了 vfio-pci 的控制,处于“无人监管”状态,导致虚拟机无法通过 PCIe 映射获取硬件。

 

核心修复步骤:重新绑定与映射

1. 手动绑定 VFIO 驱动

我通过 sysfs 接口强制将 5090 重新绑定到虚拟化驱动上:

# 1. 向 vfio-pci 驱动注册 5090 的 Vendor ID 和 Device ID
echo "10de 2b85" > /sys/bus/pci/drivers/vfio-pci/new_id

# 2. 解除可能存在的旧绑定并强制绑定到 vfio-pci
echo "0000:82:00.0" > /sys/bus/pci/devices/0000:82:00.0/driver/unbind 2>/dev/null
echo "0000:82:00.0" > /sys/bus/pci/drivers/vfio-pci/bind

# 3. 验证驱动状态
root@DBM-RTX5090-006:~# lspci -vvv -s 82:00.0 | grep "Kernel driver in use"
Kernel driver in use: vfio-pci

2. 虚拟机硬件重挂载

底层路径打通后,我通过 virt-manager (VNC) 进入管理界面。由于用户之前执行过卸载操作,导致 VM 配置丢失了对 82 号口显卡的引用。

  • 操作:在虚拟机硬件配置中,重新添加 PCI Host Device,选中 0000:82:00.0 (Video) 和 0000:82:00.1 (Audio)。

vnc-add-pci-for-vps

 

结果验证

执行完以上操作后,重启该 VPS。

  • 设备管理器:RTX 5090 重新出现,状态显示“This device is working properly”。

  • 性能核实:运行 nvidia-smi,显示显存 32GB 识别完整,驱动版本 576.88,CUDA 版本 12.9。

5090-success-showing-in-device

 

经验总结

  1. 不要盲目重启虚拟机:如果宿主机层面的 vfio-pci 绑定失效,Guest 侧做任何操作都是徒劳。

  2. Code 45 的真实含义:在云服务器环境下,它通常意味着 PCIe Passthrough 链路中断,应优先排查宿主机 dmesg 日志和驱动绑定情况。

  3. 运维工具链:熟练掌握 lspcisysfs 路径操作以及 virt-manager 的硬件配置,是保障高性能 GPU 实例稳定运行的核心技能。

 

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注