Convert libvirt xml into qemu command line
by marietto from LinuxQuestions.org on (#53J9W)
Hello,
I created a VM using virt-manager and I can edit that xml using virsh edit, but I would like to ask you if there is way of converting libvirt xml into qemu command line. I've found that someone else made the same question sime time ago :
https://www.reddit.com/r/VFIO/commen...mand_line_and/
and the user jkhsjdhjs says :
For converting libvirt xml to qemu command line you can just start the vm with libvirt. libvirt will start a qemu process with a whole lot of command line arguments which you can then save. Since libvirt just starts a qemu process they should perform exactly the same.
ok,but how ? I would like to understand how to start the vm with libvirt,so that I can see every options included in the qemu command.
I tried with :
Code:virsh dumpxml win10
virsh domxml-to-native qemu-argv win10.xml
error: internal error: invalid PCI passthrough type 'default'
I used this command : Code:ps x | grep kvm
Code:/usr/bin/qemu-system-x86_64 -name guest=win10,debug-threads=on -S -object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain-4-win10-2/master-key.aes -machine pc-i440fx-3.1,accel=kvm,usb=off,vmport=off,dump-guest-core=off,pflash0=libvirt-pflash0-format,pflash1=libvirt-pflash1-format -cpu host,hv-time,hv-relaxed,hv-vapic,hv-spinlocks=0x1fff,hv-vendor-id=ab1234567890,kvm=off -m 16000 -overcommit mem-lock=off -smp 14,maxcpus=196,sockets=14,cores=7,threads=2 -uuid a3b8bd1a-3e0e-4e64-8f46-78d901d904cb -no-user-config -nodefaults -chardev socket,id=charmonitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=localtime,driftfix=slew -global kvm-pit.lost_tick_policy=delay -no-hpet -no-shutdown -global PIIX4_PM.disable_s3=1 -global PIIX4_PM.disable_s4=1 -boot menu=on,strict=on -device qemu-xhci,p2=15,p3=15,id=usb,bus=pci.0,addr=0x5 -device lsi,id=scsi0,bus=pci.0,addr=0x10 -device ahci,id=sata0,bus=pci.0,addr=0x6 -device ahci,id=sata1,bus=pci.0,addr=0xf -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0xe -device ide-cd,bus=ide.0,unit=0,drive=libvirt-3-format,id=ide0-0-0 -device ide-hd,bus=sata0.2,drive=libvirt-1-format,id=sata0-0-2,write-cache=on -netdev tap,fd=34,id=hostnet0 -device e1000,netdev=hostnet0,id=net0,mac=52:54:00:e4:59:85,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -chardev spicevmc,id=charchannel0,name=vdagent -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=com.redhat.spice.0 -device usb-tablet,id=input0,bus=usb.0,port=3 -spice port=5900,addr=127.0.0.1,disable-ticketing,image-compression=off,seamless-migration=on -device qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,vram64_size_mb=0,vgamem_mb=16,max_outputs=1,bus=pci.0,addr=0x2 -device AC97,id=sound0,bus=pci.0,addr=0x4 -device intel-hda,id=sound1,bus=pci.0,addr=0xd -device hda-duplex,id=sound1-codec0,bus=sound1.0,cad=0 -chardev spicevmc,id=charredir0,name=usbredir -device usb-redir,chardev=charredir0,id=redir0,bus=usb.0,port=4 -chardev spicevmc,id=charredir1,name=usbredir -device usb-redir,chardev=charredir1,id=redir1,bus=usb.0,port=2 -device vfio-pci,host=0000:01:00.0,id=hostdev0,bus=pci.0,addr=0x7 -device vfio-pci,host=0000:01:00.1,id=hostdev1,bus=pci.0,addr=0x8 -device vfio-pci,host=0000:01:00.2,id=hostdev2,bus=pci.0,addr=0x9 -device vfio-pci,host=0000:01:00.3,id=hostdev3,bus=pci.0,addr=0xa -device vfio-pci,host=0000:00:12.0,id=hostdev4,bus=pci.0,addr=0xb -device usb-host,hostbus=1,hostaddr=8,id=hostdev5,bus=usb.0,port=1 -device usb-host,hostbus=1,hostaddr=6,id=hostdev6,bus=usb.0,port=5 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0xc -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny -msg timestamp=on
it is not enough good for me. I'm not able to boot the vm using these arguments.without libvirt.


I created a VM using virt-manager and I can edit that xml using virsh edit, but I would like to ask you if there is way of converting libvirt xml into qemu command line. I've found that someone else made the same question sime time ago :
https://www.reddit.com/r/VFIO/commen...mand_line_and/
and the user jkhsjdhjs says :
For converting libvirt xml to qemu command line you can just start the vm with libvirt. libvirt will start a qemu process with a whole lot of command line arguments which you can then save. Since libvirt just starts a qemu process they should perform exactly the same.
ok,but how ? I would like to understand how to start the vm with libvirt,so that I can see every options included in the qemu command.
I tried with :
Code:virsh dumpxml win10
virsh domxml-to-native qemu-argv win10.xml
error: internal error: invalid PCI passthrough type 'default'
I used this command : Code:ps x | grep kvm
Code:/usr/bin/qemu-system-x86_64 -name guest=win10,debug-threads=on -S -object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain-4-win10-2/master-key.aes -machine pc-i440fx-3.1,accel=kvm,usb=off,vmport=off,dump-guest-core=off,pflash0=libvirt-pflash0-format,pflash1=libvirt-pflash1-format -cpu host,hv-time,hv-relaxed,hv-vapic,hv-spinlocks=0x1fff,hv-vendor-id=ab1234567890,kvm=off -m 16000 -overcommit mem-lock=off -smp 14,maxcpus=196,sockets=14,cores=7,threads=2 -uuid a3b8bd1a-3e0e-4e64-8f46-78d901d904cb -no-user-config -nodefaults -chardev socket,id=charmonitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=localtime,driftfix=slew -global kvm-pit.lost_tick_policy=delay -no-hpet -no-shutdown -global PIIX4_PM.disable_s3=1 -global PIIX4_PM.disable_s4=1 -boot menu=on,strict=on -device qemu-xhci,p2=15,p3=15,id=usb,bus=pci.0,addr=0x5 -device lsi,id=scsi0,bus=pci.0,addr=0x10 -device ahci,id=sata0,bus=pci.0,addr=0x6 -device ahci,id=sata1,bus=pci.0,addr=0xf -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0xe -device ide-cd,bus=ide.0,unit=0,drive=libvirt-3-format,id=ide0-0-0 -device ide-hd,bus=sata0.2,drive=libvirt-1-format,id=sata0-0-2,write-cache=on -netdev tap,fd=34,id=hostnet0 -device e1000,netdev=hostnet0,id=net0,mac=52:54:00:e4:59:85,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -chardev spicevmc,id=charchannel0,name=vdagent -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=com.redhat.spice.0 -device usb-tablet,id=input0,bus=usb.0,port=3 -spice port=5900,addr=127.0.0.1,disable-ticketing,image-compression=off,seamless-migration=on -device qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,vram64_size_mb=0,vgamem_mb=16,max_outputs=1,bus=pci.0,addr=0x2 -device AC97,id=sound0,bus=pci.0,addr=0x4 -device intel-hda,id=sound1,bus=pci.0,addr=0xd -device hda-duplex,id=sound1-codec0,bus=sound1.0,cad=0 -chardev spicevmc,id=charredir0,name=usbredir -device usb-redir,chardev=charredir0,id=redir0,bus=usb.0,port=4 -chardev spicevmc,id=charredir1,name=usbredir -device usb-redir,chardev=charredir1,id=redir1,bus=usb.0,port=2 -device vfio-pci,host=0000:01:00.0,id=hostdev0,bus=pci.0,addr=0x7 -device vfio-pci,host=0000:01:00.1,id=hostdev1,bus=pci.0,addr=0x8 -device vfio-pci,host=0000:01:00.2,id=hostdev2,bus=pci.0,addr=0x9 -device vfio-pci,host=0000:01:00.3,id=hostdev3,bus=pci.0,addr=0xa -device vfio-pci,host=0000:00:12.0,id=hostdev4,bus=pci.0,addr=0xb -device usb-host,hostbus=1,hostaddr=8,id=hostdev5,bus=usb.0,port=1 -device usb-host,hostbus=1,hostaddr=6,id=hostdev6,bus=usb.0,port=5 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0xc -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny -msg timestamp=on
it is not enough good for me. I'm not able to boot the vm using these arguments.without libvirt.