virt-install 挂起 - 虚拟机的 GPU 直通

virt-install hangs - GPU Passthrough for Virtual Machines

我想要 运行 使用主机 GPU 的虚拟机。为此,我按照 this docs 启用 modules/grub 配置。看来我配置成功了,可以看到dmesg | grep -i vfio。但是当我 运行 virt-install 时,它永远挂起,同时我不能 运行 甚至 virsh list --all。每次我必须重新启动我的笔记本电脑,以便再次 运行 任何 virsh/virt-install 命令。

veeru@ghost:~$ sudo su
[sudo] password for veeru: 
root@ghost:/home/veeru# virt-install \
> --name vm0 \
> --ram 12028 \
> --disk path=/home/veeru/ubuntu14-HD.img,size=30 \
> --vcpus 2 \
> --os-type linux \
> --os-variant ubuntu16.04 \
> --network bridge=bridge:br0 \
> --graphics none \
> --console pty,target_type=serial \
> --location /home/veeru/Downloads/ubuntu-16.04.5.iso --force \
> --extra-args 'console=ttyS0,115200n8 serial' \
> --host-device 01:00.0 \
> --features kvm_hidden=on \
> --machine q35 

Starting install...
Retrieving file .treeinfo...                                                                    |    0 B  00:00:00     
Retrieving file content...                                                                      |    0 B  00:00:00     
Retrieving file info...                                                                         |   67 B  00:00:00     
Retrieving file vmlinuz...                                                                      | 6.8 MB  00:00:00     
Retrieving file initrd.gz...                                                                    |  14 MB  00:00:00     

下面是我对上述命令

执行strace处理时的输出
veeru@ghost:~$ sudo strace -p 9747
strace: Process 9747 attached
restart_syscall(<... resuming interrupted poll ...>

PS:我的笔记本电脑是 Predator Helios 300(UEFI-安全启动),GPU:Nvidia GeForce GTX1050Ti,Ubuntu Mate 18.04(已安装 nvidia 驱动程序),8GB Ram,

好的,我看到问题了,主机(我的笔记本电脑)已经在使用 GPU,即它很忙。所以,当我 运行 virt-install 命令时,它永远挂起,这也就不足为奇了。

为了解决这个问题,请将您的 X11 切换为使用 CPU。我使用 Ubuntu Mate 18.06,它有方便的切换工具,如下面的截图

注销并登录并检查 nvidia GPU 未被 运行ning nvidia-smi 的任何进程使用后;它应该类似于下面的输出。

veeru@ghost:~$ nvidia-smi 
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.

现在你应该可以像我一样运行virt-install了。