Provided by: virtinst_2.0.0-3ubuntu1_all bug


       virt-xml - Edit libvirt XML using command line options.




       virt-xml is a command line tool for editing libvirt XML using explicit command line
       options. See the EXAMPLES section at the end of this document to jump right in.

       Each virt-xml invocation requires 3 things: name of an existing domain to alter (or XML
       passed on stdin), an action to on the XML, and an XML change to make. actions are one of:

       --add-device: Append a new device definition to the XML --remove-device: Remove an
       existing device definition --edit: Edit an existing XML block --build-xml: Just build the
       requested XML block and print it (no domain or input XML are required here).

       An XML change is one instance of any of the XML options provided by virt-xml, for example
       --disk or --boot.

       virt-xml only allows one action and XML pair per invocation. If you need to make multiple
       edits, invoke the command multiple times.


       -c URI
           Connect to a non-default hypervisor. See virt-install(1) for details

           domain is the name, UUID, or ID of the existing VM. This can be omitted if using
           --build-xml, or if XML is passed on stdin.

           When a domain is specified, the default output action is --define, even if the VM is
           running. To update the running VM configuration, add the --update option (but not all
           options/devices support updating the running VM configuration).

           If XML is passed on stdin, the default output is --print-xml.


       --edit [EDIT-OPTIONS]
           Edit the specified XML block. EDIT-OPTIONS tell virt-xml which block to edit. The type
           of XML that we are editing is decided by XML option that is passed to virt-xml. So if
           --disk is passed, EDIT-OPTIONS select which <disk> block to edit.

           Certain XML options only ever map to a single XML block, like --cpu, --security,
           --boot, --clock, and a few others. In those cases, virt-xml will not complain if a
           corresponding XML block does not already exist, it will create it for you.

           Most XML options support a special value 'clearxml=yes'. When combined with --edit, it
           will completely blank out the XML block being edited before applying the requested
           changes. This allows completely rebuilding an XML block. See EXAMPLES for some usage.

           EDIT-OPTIONS examples:

               --edit without any options implies 'edit the first block'. So '--edit --disk
               DISK-OPTIONS' means 'edit the first <disk>'.

               For the single XML block options mentioned above, plain '--edit' without any
               options is what you always want to use.

           --edit #
               Select the specified XML block number. So '--edit 2 --disk DISK-OPTS' means 'edit
               the second <disk>'. This option only really applies for device XML.

           --edit all
               Modify every XML block of the XML option type. So '--edit all --disk DISK-OPTS'
               means 'edit ever <disk> block'. This option only really applies for device XML.

           --edit DEVICE-OPTIONS
               Modify every XML block that matches the passed device options. The device options
               are in the same format as would be passed to the XML option.

               So '--edit path=/tmp/foo --disk DISK-OPTS' means 'edit every <disk> with path
               /tmp/foo'. This option only really applies for device XML.

           Append the specified XML options to the XML <devices> list. Example: '--add-device
           --disk DISK-OPTIONS' will create a new <disk> block and add it to the XML.

           This option will error if specified with a non-device XML option (see --edit section
           for a partial list).

           Remove the specified device from the XML. The device to remove is chosen by the XML
           option, which takes arguments in the same format as --edit. Examples

           --remove-device --disk 2
               Remove the second disk device

           --remove-device --network all
               Remove all network devices

           --remove-device --sound pcspk
               Remove all sound devices with model='pcspk'

           This option will error if specified with a non-device XML option (see --edit section
           for a partial list).

           Just build the specified XML, and print it to stdout. No input domain or input XML is
           required. Example: '--build-xml --disk DISK-OPTIONS' will just print the new <disk>

           This option will error if specified with an XML option that does not map cleanly to a
           specific XML block, like --vcpus or --memory.


       These options decide what action to take after altering the XML. In the common case these
       do not need to be specified, as 'XML actions' will imply a default output action,
       described in detail above. These are only needed if you want to modify the default output.

           If the specified domain is running, attempt to alter the running VM configuration. If
           combined with --edit, this is an update operation. If combined with --add-device, this
           is a device hotplug. If combined with --remove-device, this is a device hotunplug.

           Keep in mind, most XML properties and devices do not support live update operations,
           so don't expect it to succeed in all cases.

           Note that --update implies --define: it can't be used in isolation.

           Define the requested XML change. This is typically the default if no output option is
           specified, but if a --print option is specified, --define is required to force the

           Print the generated XML change in unified diff format. If only this output option is
           specified, all other output options are disabled and no persistent change is made.

           Print the generated XML in its entirety. If only this output option is specified, all
           other output options are disabled and no persistent change is made.

           Before defining or updating the domain, show the generated XML diff and interactively
           request confirmation.


           These options alter the XML for a single class of XML elements. More complete
           documentation is found in virt-install(1).

           Generally these options map pretty straightforwardly to the libvirt XML, documented at

           Option strings are in the format of: --option opt=val,opt2=val2,...  example: --disk
           path=/tmp/foo,shareable=on. Properties can be used with '--option opt=,', so to clear
           a disks cache setting you could use '--disk cache=,'

           For any option, use --option=? to see a list of all available sub options, example:
           --disk=?  or  --boot=?

           --help output also lists a few general examples. See the EXAMPLES section below for
           some common examples.


           Show the help message and exit

           Show program's version number and exit

           Avoid verbose output.

           Print debugging information


       See a list of all suboptions that --disk and --network take

         # virt-xml --disk=? --network=?

       Change the <description> of domain 'EXAMPLE':

         # virt-xml EXAMPLE --edit --metadata description="my new description"

       # Enable the boot device menu for domain 'EXAMPLE':

         # virt-xml EXAMPLE --edit --boot menu=on

       Clear the previous <cpu> definition of domain 'winxp', change it to 'host-model', but
       interactively confirm the diff before saving:

         # virt-xml winxp --edit --cpu host-model,clearxml=yes --confirm

       Change the second sound card to model=ich6 on 'fedora19', but only output the diff:

         # virt-xml fedora19 --edit 2 --sound model=ich6 --print-diff

       Update the every graphics device password to 'foo' of the running VM 'rhel6':

         # virt-xml rhel6 --edit all --graphics password=foo --update

       Remove the disk path from disk device hdc:

         # virt-xml rhel6 --edit target=hdc --disk path=

       Change all disk devices of type 'disk' to use cache=none, using XML from stdin, printing
       the new XML to stdout.

         # cat <xmlfile> | virt-xml --edit device=disk --disk cache=none

       Change disk 'hda' IO to native and use startup policy as 'optional'.

         # virt-xml fedora20 --edit target=hda \
                    --disk io=native,startup_policy=optional

       Change all host devices to use driver_name=vfio for VM 'fedora20' on the remote connection

         # virt-xml --connect qemu+ssh://remotehost/system \
                    fedora20 --edit all --hostdev driver_name=vfio

       Hotplug host USB device 001.003 to running domain 'fedora19':

         # virt-xml fedora19 --update --add-device --hostdev 001.003

       Add a spicevmc channel to the domain 'winxp', that will be available after the next VM

         # virt-xml winxp --add-device --channel spicevmc

       Create a 10G qcow2 disk image and attach it to 'fedora18' for the next VM startup:

         # virt-xml fedora18 --add-device \
           --disk /var/lib/libvirt/images/newimage.qcow2,format=qcow2,size=10

       Hotunplug the disk vdb from the running domain 'rhel7':

         # virt-xml rhel7 --update --remove-device --disk target=vdb

       Remove all graphics devices from the VM 'rhel7' after the next shutdown:

         # virt-xml rhel7 --remove-device --graphics all

       Generate XML for a virtio console device and print it to stdout:

         # virt-xml --build-xml --console pty,target_type=virtio

       Add qemu command line passthrough:

         # virt-xml f25 --edit --confirm --qemu-commandline="-device FOO"


       Virtualization hosts supported by libvirt may not permit all changes that might seem
       possible. Some edits made to a VM's definition may be ignored. For instance, QEMU does not
       allow the removal of certain devices once they've been defined.


       Please see


       Copyright (C) Red Hat, Inc, and various contributors.  This is free software. You may
       redistribute copies of it under the terms of the GNU General Public License
       "".  There is NO WARRANTY, to the extent permitted by


       virt-install(1), the project website ""