KVM 无法使用 .iso 磁盘映像启动。设备或资源繁忙?

KVM 无法使用 .iso 磁盘映像启动。设备或资源繁忙?

我一直试图按照链接的博客文章在我的 Ubuntu 机器上设置 Windows VM http://www.pugetsystems.com/labs/articles/Multiheaded-NVIDIA-Gaming-using-Ubuntu-14-04-KVM-585/

因此,我逐步完成了所有操作,仅更改了系统特定内容,但在启动虚拟机后,我最终收到以下错误消息:

qemu-system-x86_64: -device vfio-pci,host=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on: VFIO 0000:01:00.0 BAR 0 mmap unsupported. Performance may be slow
qemu-system-x86_64: vfio_bar_write(,0x0, 0x0, 4) failed: Device or resource busy

我使用的是 AMD CPU 而不是 Intel CPU,我之前也在其上运行过虚拟机,iommu 模块在 BIOS 中已启用。

加载所需的模块后,我正在寻找系统想要禁用的硬件(我的第二个 GPU),因此我运行了命令lscpi -nn | grep ATI- 得到以下返回结果:

01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Cypress PRO [Radeon HD 5850] [1002:6899]
01:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Cypress HDMI Audio [Radeon HD 5800 Series] [1002:aa50]

由此我假设只需要 VGA 控制器。

因此,我将设备的 ID 添加到忽略列表(位于 /etc/initramfs-tools/modules),例如pci_stub ids=1002:6899。为了完成操作,我update-initramfs -u以 root 身份运行,重新启动系统,系统重新启动后,左侧屏幕变暗。我认为,这是按预期工作的。

在此之后,我创建了一个 vfio-pci conf 文件,我将在其中存储设备的 PCI 地址,就像在教程中一样。

好吧,然后是启动脚本,我只在其中编辑了一些系统特定的设置。

sudo qemu-system-x86_64 -enable-kvm -M q35 -m 4096 -cpu host \
-smp 4,sockets=1,cores=4,threads=1 \ 
-bios /usr/share/qemu/bios.bin -vga none \
-device ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1 \
-device vfio-pci,host=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on \
-device vfio-pci,host=01:00.1,bus=root.1,addr=00.1 \
-drive file=/var/lib/libvirt/images/Win7.img,id=disk,format=raw -device ide-hd,bus=ide.0,drive=disk \
-boot menu=on

我把这篇文章读了几遍,但没有发现什么,不知道是不是我错过了什么。

编辑 1;ISO 映像使 KVM 设备疯狂

尝试了几种设置后,我发现每当我尝试使用虚拟光驱启动 qemu vm 时,它都会崩溃。如果没有任何驱动器,它启动时没有任何问题。

哈哈哈哈!成功了!(但我还是不知道为什么)

好吧,我解决了这个问题(某种程度上)。我不再收到那些讨厌的消息,那是因为我交换了两个显卡。结果是:如果 VM 的 gpu 位于第一个 PCIe 插槽中,kvm、vfio 或 VM 的至少一个组件不喜欢。

相关内容