web-dev-qa-db-fra.com

Disque physique QEMU Connect

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.

3
Bas van Langevelde

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.

2
ppetraki