web-dev-qa-db-ja.com

QEMU Connect物理ディスク

次のスクリプトを使用して、ubuntu pcでWindows仮想マシンを作成しました(オンラインで発見)。

#!/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

Vfio-pci1.cfgファイルには、ビデオカードとusbデバイス(キーボードとマウス)のpciアドレスのみが含まれています。スクリプトは、ビデオカードの1つを仮想マシンに渡します。 2つのVMを同時に実行するので、同じコンピューターで友人とゲームをプレイできるため、デュアルブートは選択できません。

仮想マシンを起動すると、表示には実際のビデオカードが使用されます。

仮想マシンが正常に起動して実行されるので、物理ドライブを追加して、仮想マシンにゲームのみ(システムディスクなし)のボリュームを共有できるようにしますが、見つかりませんこれを行う方法を見つけます。

3

ドキュメントごと: http://wiki.qemu.org/download/qemu-doc.html#Host_005fdrives

あなたはただできるはずです

 -hda /dev/sdX

ただし、これはWindowsであるため、基本的にはコンピューターからハードドライブを取り出して別のコンピューターに挿入するだけです。そのため、新しいハードウェアなどを見つける必要があります。その過程でWindowsディスクを真剣に台無しにするかもしれません。これはおそらく素晴らしいアイデアではありません... Windowsディスクのスナップショットを作成し、代わりに使用することをお勧めします。

また、他のブロックデバイスにはbus = virtioをはるかに高速に使用する必要があります。

2
ppetraki