Virt-manager: Difference between revisions
imported>Timokau Add declarative way of configuring the default hypervisor. |
|||
(17 intermediate revisions by 12 users 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). | |||
== 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 == | == Installation == | ||
=== NixOS === | === NixOS === | ||
<syntaxhighlight lang="nix"> | <syntaxhighlight lang="nix"> | ||
virtualisation.libvirtd.enable = true; | virtualisation.libvirtd.enable = true; | ||
programs. | programs.virt-manager.enable = true; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
You | You may get the following error: | ||
<code> | <code>authentication unavailable: no polkit agent available to authenticate action 'org.libvirt.unix.manage'</code> | ||
To resolve | To resolve, add the user to the <code>libvirtd</code> group: | ||
< | <syntaxhighlight lang="nix"> | ||
{ | |||
users.users.<myuser>.extraGroups = [ "libvirtd" ]; | |||
} | |||
</syntaxhighlight> | |||
=== 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): | |||
<code>virsh net-start default</code> | |||
</ | |||
Or autostart: | |||
< | |||
<code>virsh net-autostart default</code> | |||
</ | By default this will enable the <code>virbr0</code> virtual network bridge. | ||
===Display=== | |||
The default Video may not allow different resolutions, `Virtio` will allow for more. | |||
===Windows Guest=== | |||
See [https://github.com/virtio-win/virtio-win-guest-tools-installer Virtio-win guest tools] for additional drivers for both paravirtual and emulated hardware | |||
===Guest Agent=== | |||
When running NixOS as a guest, enable the [https://wiki.qemu.org/Features/GuestAgent QEMU guest agent] with: | |||
<syntaxhighlight lang="nix"> | <syntaxhighlight lang="nix"> | ||
{ | { | ||
services.qemuGuest.enable = true; | |||
services.spice-vdagentd.enable = true; # enable copy and paste between host and guest | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
The host must [https://wiki.libvirt.org/Qemu_guest_agent.html#setting-qemu-ga-up provide the needed virtio serial port] under the special name <code>org.qemu.guest_agent.0</code>. | |||
=== 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"; | |||
}; | |||
[[Category:Virtualization]] | [[Category:Virtualization]] |
Latest revision as of 14:44, 10 November 2024
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.
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"; };