You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

QEMU GPU直通失效求助:Ubuntu 17.10下Windows虚拟机无法启动

排查Ubuntu 17.10下QEMU GPU直通虚拟机无法启动的问题

兄弟,我之前也踩过QEMU GPU直通的坑,看你描述的情况——昨天还能跑Lubuntu虚拟机,今天连ISO启动都不行,副屏连BIOS界面都没输出,大概率是直通配置或者硬件状态出了问题,给你列几个排查方向:

1. 先确认IOMMU和GPU直通的基础配置没崩

  • 先检查IOMMU是否还正常启用:在终端跑dmesg | grep -i iommu,看输出里有没有IOMMU enabled的字样,如果没有,说明内核参数里的intel_iommu=on(或者amd_iommu=on)可能没生效,得去/etc/default/grub里确认,然后更新grub重启。
  • 再看GPU的IOMMU组是不是独立的:跑find /sys/kernel/iommu_groups/ -type l,找到04:00.0对应的组,确保组里只有这个GPU(如果是带音频输出的显卡,同组的音频控制器04:00.1也没问题),要是混了其他设备,直通肯定会出问题。

2. 检查VFIO驱动是否正确绑定到GPU上

  • 用lspci -nnk -s 04:00.0查看当前驱动,正常应该显示vfio-pci,如果还是原来的显卡驱动(比如nvidia、amdgpu),说明驱动被系统重新绑定回去了,得手动重新绑定:
    # 先解绑原有驱动,替换成你的显卡实际驱动名
    echo 0000:04:00.0 > /sys/bus/pci/drivers/[原有驱动名]/unbind
    # 绑定到vfio-pci,替换成你的GPU的vendor和device ID(lspci输出里的[xxxx:yyyy])
    echo xxxx:yyyy > /sys/bus/pci/drivers/vfio-pci/new_id
    
  • 要是不知道原有驱动名,看lspci输出里的Kernel driver in use:那一行就行。

3. 检查虚拟机启动脚本的参数有没有问题

  • 确认GPU直通的参数:脚本里应该有类似-device vfio-pci,host=04:00.0,multifunction=on的行,要是显卡带音频,还要加上-device vfio-pci,host=04:00.1,参数里的multifunction=on不能少。
  • 试试简化启动参数:先去掉virtio相关的磁盘配置(毕竟之前是装Win10到virtio驱动时中断的,可能参数冲突),只用普通IDE模式加载Win10 ISO,甚至暂时换成Legacy BIOS启动(如果之前用的是UEFI),看能不能正常显示BIOS界面。
  • 确认UEFI固件路径:如果用UEFI启动,脚本里的-bios /usr/share/OVMF/OVMF_CODE.fd路径要正确,要是OVMF包没装,得先装sudo apt install ovmf。

4. 排查硬件状态问题

  • 先重启主机:GPU直通后有时候会残留硬件状态,重启后重新绑定VFIO驱动,很多时候能解决奇怪的启动问题。
  • 检查GPU和线缆:确认副屏的线缆插紧了,独立显卡的供电线有没有插好,甚至可以把GPU拔下来重新插一遍,排除接触不良的可能。
  • 临时切换到集成显卡:把副屏插回主机的集成显卡,确认主机本身能正常输出,排除显示器或者线缆的问题。

5. 看日志找具体报错

  • 启动虚拟机时加上日志参数,比如-d guest_errors,pcidev,这样能输出详细的启动日志,看看有没有VFIO初始化失败、PCI设备分配错误之类的信息,顺着报错找问题更精准。

内容的提问来源于stack exchange,提问作者a rad white lad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:40:30