Jump to content

Virt-manager: Difference between revisions

From NixOS Wiki
Added an explanation on how to config Virt-manager to be able to share folders with guest VM.
 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
The [https://virt-manager.org/ virt-manager] application is a GUI for managing local and remote virtual machines through libvirt. It primarily targets KVM VMs, but also manages Xen and LXC (linux containers).
The [https://virt-manager.org/ virt-manager] application is a GUI for managing local and remote virtual machines through [[libvirt]]. It primarily targets KVM VMs, but also manages Xen and LXC (linux containers).


== Requisites ==
== Requisites ==
Line 37: Line 37:
By default this will enable the <code>virbr0</code> virtual network bridge.
By default this will enable the <code>virbr0</code> virtual network bridge.


===Display===
=== Display ===
The default Video may not allow different resolutions, `Virtio` will allow for more.
The default Video may not allow different resolutions, `Virtio` will allow for more.
=== Shared folders ===
To be able to share a folder with a guest, you will need 'virtiofsd'. The recommended way to solve this problem is now to add <code>pkgs.virtiofsd</code> to <code>virtualisation.libvirtd.qemu.vhostUserPackages</code>:
<syntaxhighlight lang="nix">
virtualisation.libvirtd = {
  enable = true;
  qemu.vhostUserPackages = with pkgs; [ virtiofsd ];
};
</syntaxhighlight>


===Windows Guest===
===Windows Guest===

Latest revision as of 00:24, 3 April 2025

The virt-manager application is a GUI for managing local and remote virtual machines through libvirt. It primarily targets KVM VMs, but also manages Xen and LXC (linux containers).

Requisites

Even though Virt-manager (using the KVM hypervisor) is able to take advantage of virtualisation capabilities without any UEFI/BIOS configuration, best performances demand that host have Vt-x and Vt-d (Intel) or AMD-V and AMD-Vi (AMD) enabled. These settings can usually be found under the UEFI/BIOS settings.

Installation

NixOS

virtualisation.libvirtd.enable = true;
programs.virt-manager.enable = true;

You may get the following error:

authentication unavailable: no polkit agent available to authenticate action 'org.libvirt.unix.manage'

To resolve, add the user to the libvirtd group:

{
  users.users.<myuser>.extraGroups = [ "libvirtd" ];
}

Networking

The default network starts off as being inactive, you must enable it before it is accessible. This can be done by running the following command (may require sudo):

virsh net-start default

Or autostart:

virsh net-autostart default

By default this will enable the virbr0 virtual network bridge.

Display

The default Video may not allow different resolutions, `Virtio` will allow for more.

Shared folders

To be able to share a folder with a guest, you will need 'virtiofsd'. The recommended way to solve this problem is now to add pkgs.virtiofsd to virtualisation.libvirtd.qemu.vhostUserPackages:

virtualisation.libvirtd = {
  enable = true;
  qemu.vhostUserPackages = with pkgs; [ virtiofsd ];
};

Windows Guest

See Virtio-win guest tools for additional drivers for both paravirtual and emulated hardware

Guest Agent

When running NixOS as a guest, enable the QEMU guest agent with:

{
  services.qemuGuest.enable = true;
  services.spice-vdagentd.enable = true;  # enable copy and paste between host and guest
}

The host must provide the needed virtio serial port under the special name org.qemu.guest_agent.0.

Wayland

In order to run on Wayland, virt-manager must be ran under XWayland with `$ GDK_BACKEND=x11 virt-manager` or a gdk cursor must be set. An example of setting a gdk cursor with home-manager is as follows:

 home.pointerCursor = {
    gtk.enable = true;
    package = pkgs.vanilla-dmz;
    name = "Vanilla-DMZ";
 };