User Tools

Site Tools


unix:virtualization:virtlib:quickreference

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
unix:virtualization:virtlib:quickreference [2022/07/19 19:17] rodolicounix:virtualization:virtlib:quickreference [2023/02/26 17:12] (current) rodolico
Line 1: Line 1:
 ====== virt-lib Quick Reference ====== ====== virt-lib Quick Reference ======
 +
 +virtlib stores its configuration for each //domain// (virtual) in /etc/libvirt/qemu*.xml. You should not manually modify anything in this directory, but you can safely do any read-only operation. To edit/export/whatever, the //virsh// command has several options that will help you out.
 +
 +The xml files are, well, xml. The format is documented at https://libvirt.org/formatdomain.html which is guaranteed to either help you, or put you to sleep.
  
 ===== virt-top ===== ===== virt-top =====
Line 37: Line 41:
 This is actually not intuitive. I'm going to describe how to do this from a pretty complex setup with no GUI; adjust as needed. In this case, we need to boot the virtual myvirt from a gparted cdrom image located in /media/isos/gparted-live-1.3.0-1-amd64.iso so we can modify the partitions. However, we did not have a cdrom image for the installation, so one has not been created. This is actually not intuitive. I'm going to describe how to do this from a pretty complex setup with no GUI; adjust as needed. In this case, we need to boot the virtual myvirt from a gparted cdrom image located in /media/isos/gparted-live-1.3.0-1-amd64.iso so we can modify the partitions. However, we did not have a cdrom image for the installation, so one has not been created.
  
-Both assume the virtual has been turned of <code bash>virsh shutdown myvirt</code>+Both assume the virtual has been turned off <code bash>virsh shutdown myvirt</code>
  
-===== without editing configuration ===== +Some people do not want to manually edit the XML used to configure the virtualsothers prefer itSome things, like setting a boot menu with a realistic timeout appear to require it; I have not found way to do it through the virsh command.
-Firstsee if there is a cdrom installedOne simple way is to dump the xml and grep for cdrom +
-<code bash>virsh dumpxml myvirt | grep cdrom</code> +
-Once this is done and you have a cdrom, you should be able to tell which one it is with +
-<code bash>virsh domblklist myvirt</code> +
-which shows the block devices attached to myvirt.+
  
-===== I"m not afraid to edit the config =====+I use the --config flag a lot. If you use this flag, any changes you make are written to the config file and will persist across boots. 
 + 
 +=== without manually editing configuration === 
 +  - First, see if there is a cdrom installed. One simple way is to dump the xml and grep for cdrom<code bash>virsh dumpxml myvirt | grep cdrom</code> 
 +  - Once this is done and you have a cdrom, you should be able to tell which one it is with<code bash>virsh domblklist myvirt</code> which shows the block devices attached to myvirt. 
 +  - Mount your image on the CDROM 
 +    - If you have one and you know which drive it is<code bash>virsh change-media dd-113-virt hdb /media/xen-store/isos/gparted-live-1.3.0-1-amd64.iso --insert --config</code>This is assuming the drive was hdb 
 +    - If you do not have a CDROM, use<code bash>virsh attach-disk myvirt /media/xen-store/isos/gparted-live-1.3.0-1-amd64.iso hdb --driver file --type cdrom --mode readonly --config</code>This assumes hdb did not show up as used in your domblklist above. 
 + 
 +=== I'm not afraid to edit the config ===
   - Edit the config file with <code bash>virsh edit myvirt</code>   - Edit the config file with <code bash>virsh edit myvirt</code>
   - Look for something like //<disk type='file' device='cdrom'>//   - Look for something like //<disk type='file' device='cdrom'>//
Line 54: Line 62:
     - This will enable the boot menu, and have a wait of 5 seconds (5000 milliseconds) for you to choose.     - This will enable the boot menu, and have a wait of 5 seconds (5000 milliseconds) for you to choose.
   - If you want, change the boot order by adding <code xml><boot dev='cdrom'/></code> //above// the boot entry if it is not already set.   - If you want, change the boot order by adding <code xml><boot dev='cdrom'/></code> //above// the boot entry if it is not already set.
 +
 +=== Starting the virtual ===
 +  - Start the virtual with <code bash>virsh start myvirt</code>
 +  - Immediately make the VNC connection (if you followed the manual edit, you have 5 seconds)
 +  - When prompted, press ESC to choose the CDROM drive (assuming you didn't set it as the default)
 +=== Cleanup ===
 +Do the following if you want to remove the CDROM when you're done. Note: this is likely required if you set the CDROM as the primary boot device.
 +<code bash>virsh change-media myvirt hdb --eject --config</code>
  
  
Line 238: Line 254:
  
 In my case, I had built a Windows domain without using virtio, and I wanted to change it. This was actually the simplest way I found to do it. In my case, I had built a Windows domain without using virtio, and I wanted to change it. This was actually the simplest way I found to do it.
-==== Links ====+ 
 +===== Naming Network Links ===== 
 + 
 +to give a domain interface a static name when it is run, you can add the following to the interface definition. 
 +<code xml><target dev='dom113'/></code> 
 +NOTE: the name must not begin with 'vnet', 'vif', 'macvtap', or 'macvlan', which are prefixes reserved by libvirt and certain hypervisors. See 
 +https://libvirt.org/formatdomain.html#overriding-the-target-element 
 +<code xml> 
 +   <interface type='bridge'> 
 +      <mac address='00:16:3e:6b:f4:da'/> 
 +      <source bridge='br_lan'/> 
 +      <target dev='dom113'/> 
 +      <model type='virtio'/> 
 +      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> 
 +    </interface> 
 +</code> 
 + 
 +You can now do things like <code bash>ifconfig dom113</code> or <code bash>ip a show dom113</code> 
 + 
 +===== Adding USB Drive Image ===== 
 + 
 +Building and using a USB Thumbdrive image is a little weird, but it can be done. See [[software:multibootusb|]] for an example of one way I did it. 
 + 
 +===== Links =====
  
   * https://www.caretech.io/2017/10/18/converting-windows-vm-hard-disk-interface-to-virtio-with-proxmox-ve-5/   * https://www.caretech.io/2017/10/18/converting-windows-vm-hard-disk-interface-to-virtio-with-proxmox-ve-5/
Line 245: Line 284:
   * https://serverfault.com/questions/672253/how-to-configure-and-use-qemu-guest-agent-in-ubuntu-12-04-my-main-aim-is-to-get#691616   * https://serverfault.com/questions/672253/how-to-configure-and-use-qemu-guest-agent-in-ubuntu-12-04-my-main-aim-is-to-get#691616
   * https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/virtualization_administration_guide/sect-qemu_guest_agent-running_the_qemu_guest_agent_on_a_windows_guest   * https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/virtualization_administration_guide/sect-qemu_guest_agent-running_the_qemu_guest_agent_on_a_windows_guest
 +  * https://libvirt.org/formatdomain.html
 +
unix/virtualization/virtlib/quickreference.1658276223.txt.gz · Last modified: 2022/07/19 19:17 by rodolico