Eu criei uma máquina virtual do windows no meu pc do Ubuntu usando o seguinte script (encontrado on-line).
#!/bin/bash
configfile=/etc/vfio-pci1.cfg
vfiobind() {
dev="$1"
vendor=$(cat /sys/bus/pci/devices/$dev/vendor)
device=$(cat /sys/bus/pci/devices/$dev/device)
if [ -e /sys/bus/pci/devices/$dev/driver ]; then
echo $dev > /sys/bus/pci/devices/$dev/driver/unbind
fi
echo $vendor $device > /sys/bus/pci/drivers/vfio-pci/new_id
}
modprobe vfio-pci
cat $configfile | while read line;do
echo $line | grep ^# >/dev/null 2>&1 && continue
vfiobind $line
done
sudo qemu-system-x86_64 -enable-kvm -M q35 -m 6144 -cpu host \
-smp 4,sockets=1,cores=4,threads=4 \
-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=02:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on \
-device vfio-pci,host=02:00.1,bus=root.1,addr=00.1 \
-device virtio-scsi-pci,id=scs \
-drive file=/home/bas/windows7.img,id=disk,format=raw -device scsi-hd,bus=virtio.0,drive=disk \
-drive file=/home/bas/Downloads/Windows7Pro.iso,id=isocd -device ide-cd,bus=virtio.1,drive=isocd \
-hda /dev/sdd
-boot menu=on
exit 0
O arquivo vfio-pci1.cfg contém apenas o endereço pci para a placa de vídeo e os dispositivos usb (teclado e mouse).
O script passa um dos meus videocards para uma máquina virtual.
Eu estarei executando 2 dessas vms ao mesmo tempo para que eu possa jogar com um amigo no mesmo computador, então a inicialização dupla não é uma opção.
Se você iniciar a máquina virtual, ela usará a placa de vídeo real para exibição.
A máquina virtual inicia e funciona bem. Eu só quero adicionar uma unidade física a ela para poder compartilhar um volume que tenha somente jogos (sem disco de sistema) para a máquina virtual, mas posso descubra como fazer isso.