Disponibilizar um disco físico para o Windows VM existente

1

Problema: Eu tenho uma nova unidade SATA Desejo sysprep com uma instalação do Windows. Eu só tenho o Windows virtualizado no meu PC. Minha solução: Anexe (repasse) a unidade inteira à VM do Windows e o sysprep normalmente.

Este é o meu script VGA / Passthrough:

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

Pergunta 1): Eu quero disponibilizar / dev / sdc para a VM. O formato de opção irá alcançar isso. (Para reiterar o novo disco, sdc, tem não conteúdo, partição ou formatação neste momento.)

Pergunta 2): Estou tornando a vida estupidamente difícil para mim e existe uma solução muito mais simples?

Pergunta 3) Eu sei que isso pode ser conseguido usando o script .xml que o virt-manager usa, mas como você vê eu não estou usando o virt-manager para iniciar a VM (por causa do VGA Pasthrough), seria ser possível converter / importar este script de inicialização no formato .xml do virt-manager e, em seguida, incluir algo como:

<disk type="block" device="disk">
    <driver name="qemu" type="raw" cache="none" />
    <source dev="/dev/sda" />
    <target dev="vdb" bus="virtio" />
</disk>

... para a seção <devices> ?

Muito obrigado apenas pela leitura terminar se você conseguiu.

    
por Steve Themainliner 03.11.2017 / 17:51

1 resposta

0

Eu uso o libvirt e passo os dispositivos de bloco para as VMs. Isso resulta em qemu parâmetros como estes:

-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
    
por 03.11.2017 / 18:15