virt-manager - ArchWiki

Jump to content

# virt-manager

From ArchWiki

This article or section needs expansion.

Reason: This article is missing detail, further expansion is highly appreciated. (Discuss in Talk:Virt-manager)

virt-manager is a graphical user front end for the libvirt library which provides virtual machine management services. virt-manager interface makes it easy for the user to create, delete and manipulate virtual machines without going through the terminal.

virt-manager mainly supports KVM but it can work with other hypervisors, such as Xen and LXC.

## Installation

First follow the libvirt or LXC pages and ensure you can create virtual machines, then install the virt-manager package. Install QEMU if needed.

To use an `LXC` connection enable/start the `libvirtd.service` unit.

To use a `QEMU` connection enable/start the `libvirtd.socket` unit.

You can check the unit status to make sure the service is running.

Note The domain autostart feature requires `libvirtd.service` to be enabled.

## Configuration

### Basic configuration

Add yourself to the libvirt user group.

It is also a good idea to ensure that any files/folders outside of virt-manager's default pool are owned by the `libvirt-qemu` group, otherwise you might encounter permission errors when accessing files outside of the default pool.

    # chown "$USER":libvirt-qemu /path/to/vm/folder

Tip There are other ways to solve this issue, if you forget then virt-manager will ask for permission to change these settings for you.

## Tips and tricks

### Non root KVM without Socket

Note Enabling the systemd socket overrides this, only do this if you don't want to enable the socket

To use as a normal user without root we need to configure KVM, this will also enable the libvirt networking components.

Set the UNIX domain socket ownership to libvirt and the UNIX socket permission to read and write by changing the following:

    /etc/libvirt/libvirtd.conf

    ...
    unix_sock_group = 'libvirt'
    ...
    unix_sock_rw_perms = '0770'
    ...

Add your user to the libvirt user group.

Add your user to `/etc/libvirt/qemu.conf`. Otherwise, QEMU will give a permission denied error when trying to access local drives.

Search for `user = "libvirt-qemu"` or `group = "libvirt-qemu"`, uncomment both entries and change `libvirt-qemu` to your user name or ID. Once edited it should look something like below.

    /etc/libvirt/qemu.conf

    # Some examples of valid values are:
    #
    #       user = "qemu"   # A user named "qemu"
    #       user = "+0"     # Super user (uid=0)
    #       user = "100"    # A user named "100" or a user with uid=100
    #
    user = "username"

    # The group for QEMU processes run by the system instance. It can be
    # specified in a similar way to user.
    group = "username"

Upon opening Virt-Manager, it will default to the system variant (root) of the QEMU connection.

This can be changed to the user connection by going to: File > Add Connection.

Now select `QEMU/KVM User session` as the Hypervisor and click OK. This will now auto-connect to the user session. You can now disconnect and remove the system connection if desired.

### Networking

Note

- The virt-manager article focuses on using virt-manager and libvirt in user session, which has limited networking capabilities (see libvirt FAQ for details). There are more networking possibilities when using the system variant (root).
- Also look at libvirt in case of networking issues.

To use a network bridge in user session it has to be setup in `libvirt` system administration first.

For this the `libvirt` daemon must be running.

When it is started successfully, the system variant (root) of the QEMU connection can be opened in virt-manager. Setup the bridge with the desired settings in the networking tab there.

To be able to use the bridge in a user session virtual machine, setup the qemu-bridge-helper according to your bridge setup .

After that the bridge can be used at a virtual network that runs in virt-manager user session.

#### NAT - Bridged - Host-Only

##### NAT

NAT routes the VM over the same IP, this option is available in the Show hardware -> NIC and does not need any additional configuration

##### Bridged

Bridged mode acts as if the VM were its own client in the network. In virt-manager you must select an interface for it.

This functionality is different from VirtualBox and VMware, where the interface is automatically selected. In order to use Bridged you should create a virtual interface with NAT.

(It is possible to use your own interface, but that might require additional configuration.)

##### Host-Only

A host-only configuration only permits network operations between host and guest.

This option doesn't exist for virt-manager. Instead you must use a bridge connected to a virtual isolated Network. See: #Creating a Virtual Interface

### Connection Details

#### Creating a Virtual Interface

Go to Edit -> Connection Details -> add

Following Options are available:

NAT, Routed, Open, Isolated, SR-IOV Pool

### 3D acceleration

virtio is a paravirtual 3D graphics driver. To enable basic 3D acceleration:

1. Go to a virtual machine's setting page.
2. Click on the "Add Hardware" button > Video > select the "Model" as "Virtio". Then remove any other "Video" virtual hardware (within the sidebar).
3. Go to "Display Spice" and set "Listen Type" to "None". Also tick the "OpenGL" checkbox and select the appropriate renderer.
4. Click on "Video Virtio" and tick "3D Acceleration".

You can use glxgears from the mesa-utils package to test the 3D graphics. `glxgears -info` displays OpenGL renderer info in the console.

## Troubleshooting

### No network connectivity with QEMU/KVM

Append the following line to `/etc/libvirt/network.conf`:

    firewall_backend = "iptables"

See [1].

## See also

- Project homepage
- Project repository
- Spice drivers (graphics)
- VirtIO Windows drivers

Category:

- Virtualization

Hidden category:

- Pages or sections flagged with Template:Expansion

virt-manager
Add topic