QEMU 连接物理磁盘

QEMU 连接物理磁盘

我使用以下脚本(在线找到)在我的 ubuntu 电脑上创建了一个 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 地址。脚本将我的一个视频卡传递到虚拟机。我将同时运行 2 个这样的虚拟机,这样我就可以在同一台计算机上与朋友一起玩游戏,因此双启动不可选。

如果您启动虚拟机,它会使用实际的视频卡进行显示。

虚拟机启动并运行正常,我只想向其添加一个物理驱动器,以便可以共享具有仅限游戏(没有系统磁盘)到虚拟机,但我不知道如何做到这一点。

答案1

根据文档: http://wiki.qemu.org/download/qemu-doc.html#host_005fdrives

你应该能够做到

  -hda /dev/sdX

但是,由于这是 Windows,您基本上只是将硬盘从计算机中取出并插入另一台计算机。因此它将不得不寻找新硬件等。在此过程中,您可能会严重弄乱 Windows 磁盘。这可能不是一个好主意...我建议您创建 Windows 磁盘的快照并使用它。

您还应该对其他块设备使用 bus=virtio,这样速度会快得多。

相关内容