질문: 새 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를 사용할 수 있게 만들고 싶습니다. What-options 형식이 이를 가능하게 합니다. (반복하자면 새 디스크 sdc에는아니요현재 콘텐츠, 파티션 또는 형식입니다. )
질문 2): 나는 내 인생을 어리석게 힘들게 만들고 있습니까? 더 쉬운 해결책이 있습니까?
질문 3) virt-manager에서 사용하는 .xml 스크립트를 사용하면 이 작업을 수행할 수 있다는 것을 알고 있지만 보시다시피 VGA 패스스루 때문에 가상 머신을 시작하는 데 virt-manager를 사용하지 않습니다. 가능합니까? 이 시작 스크립트 /Import를 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