问题:我有一个新的 SATA 驱动器,我希望在 Windows 安装中进行 sysprep。我的 PC 上只虚拟化了 Windows。我的解决方案:照常将整个驱动器附加(直通)到 Windows VM 和 sysprep。
这是我的 VGA/直通脚本:
#!/bin/bash
#1st PART
configfile=/etc/vfio-pci.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
#2nd PART
xrandr --output DVI-D-0 --off
/usr/bin/synergys --config /home/%username%/.synergy.conf
export QEMU_ALSA_DAC_BUFFER_SIZE=512 QEMU_ALSA_DAC_PERIOD_SIZE=170 QEMU_AUDIO_DRV=alsa
sudo qemu-system-x86_64 \
-enable-kvm \
-M q35 \
-m 8192 \
-cpu host,kvm=off,migratable=off,+invtsc,enforce \
-smp 4,sockets=1,cores=4,threads=1 \
-bios /usr/share/seabios/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=06:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on \
-device vfio-pci,host=06:00.1,bus=root.1,addr=00.1 \
-soundhw all \
-drive if=none,file=/media/VM/windows1.img,id=disk,format=raw -device ide-hd,bus=ide.0,drive=disk \
-net tap,vlan=0 \
-boot menu=on
sudo killall synergys
xrandr --output DVI-D-0 --auto
xrandr --output DVI-D-0 --right-of HDMI-0
exit 0
问题 1):我想让 /dev/sdc 对虚拟机可用。什么-选项格式可以实现这一点。 (重申一下新磁盘 sdc,具有不此时的内容、分区或格式。)
问题 2):我是否让自己的生活变得愚蠢地困难?是否有更简单的解决方案。
问题 3)我确实知道这可以通过使用 virt-manager 使用的 .xml 脚本来实现,但正如您所见,我没有使用 virt-manager 来启动虚拟机(因为 VGA 直通),是否可以将此启动脚本转换/导入为 virt-manager .xml 格式,然后添加如下内容:
<disk type="block" device="disk">
<driver name="qemu" type="raw" cache="none" />
<source dev="/dev/sda" />
<target dev="vdb" bus="virtio" />
</disk>
...到该<devices>
部分?
如果您成功的话,非常感谢您阅读到最后。
答案1
我使用 libvirt 并将块设备传递给虚拟机。这会产生qemu
如下参数:
-drive file=/dev/mapper/storage-profiles,if=none,id=drive-virtio-disk4,format=raw,serial=KVM-profiles,cache=writeback
-device virtio-blk-pci,scsi=off,bus=pci.0,addr=0xc,drive=drive-virtio-disk4,id=virtio-disk4,bootindex=6