# Virtual Machines

Cockpit can manage virtual machines running on the host. These can be accessed from menu via Virtual Machines

Primary datasource is QEMU / Libvirt, access to Libvirtd is wrapped either by the virsh tool or libvirt D-Bus API bindings, depending if the latter is installed on the system. If libvirt-dbus package is not available in your distribution's software repositories you can follow the instructions here to install from sources.

## Nested Virtualization

In order to run cockpit-machines plugin inside a virtual machine or run the tests for this component, you'll need nested KVM virtualization enabled (refer `test/verify/nested-kvm` or How to enable nested virtualization in KVM to get more information).

## Managing VMs on system connection

In order to manipulate as unprivileged user VMs on system connection through cockpit-machines plugin using libvirt D-Bus provider you need to follow the instructions specified here.

## Extensions

Base package cockpit-machines for management of virtual machines is based on Libvirt.

New features for cockpit-machines should be only implemented for the componenent using libvirt D-Bus.