J'ai créé une machine virtuelle Windows sur mon ordinateur Ubuntu à l'aide du script suivant (disponible en ligne).
#!/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
Le fichier vfio-pci1.cfg contient uniquement l'adresse pci de la carte vidéo et des périphériques USB (clavier et souris). Le script transmet l'une de mes cartes vidéo à une machine virtuelle. Je vais lancer 2 de ces vms en même temps pour pouvoir jouer à des jeux avec un ami sur le même ordinateur, donc le double démarrage n'est pas une option.
Si vous démarrez la machine virtuelle, elle utilise la carte vidéo réelle pour son affichage.
La machine virtuelle démarre et fonctionne correctement. Je souhaite simplement y ajouter un lecteur physique pour pouvoir partager un volume comportant niquement des jeux (aucun disque système) avec la machine virtuelle, mais je ne trouve pas. comment faire cela.
Selon la documentation: http://wiki.qemu.org/download/qemu-doc.html#Host_005fdrives
Vous devriez juste pouvoir faire
-hda /dev/sdX
Mais, comme il s’agit de Windows, vous venez de sortir votre disque dur de votre ordinateur et de l’insérer dans un autre. Il va donc falloir trouver du nouveau matériel, etc. Vous risqueriez de gâcher gravement votre disque Windows. Ce n'est probablement pas une bonne idée ... Je vous suggère de créer un instantané du disque Windows et de l'utiliser à la place.
Vous devez également utiliser bus = virtio pour ces autres périphériques en mode bloc, beaucoup plus rapidement.