Jump to content

Category:Virtualization: Difference between revisions

From Official NixOS Wiki
Klinger (talk | contribs)
not necessary anymore
Tag: Blanking
Mparus (talk | contribs)
m Link to https://astro.github.io/microvm.nix/ no longer resolves, so updating link to https://github.com/microvm-nix/microvm.nix instead of
 
(7 intermediate revisions by 3 users not shown)
Line 1: Line 1:
This category page exists to list resources related to <strong>virtualisation</strong> in the Nix ecosystem.


== Overview ==
You can use the following technologies for classic virtualisation on NixOS. You can also use [[:Category:Container|containers]], though they come with their own advantages and drawbacks.
* QEMU/KVM (see [[Virt-manager]])
* [[VirtualBox]]
* [[VMware]]
* The [[Xen Project Hypervisor]]
{| class="wikitable"
|+Installing a hypervisor on the host system.
!Hypervisor
!Code snippet to be added to <code>configuration.nix</code>
|-
|QEMU/KVM
|{{file|configuration.nix|nix|
<nowiki>
{
  virtualisation.libvirtd.enable = true;
  # if you use libvirtd on a desktop environment
  programs.virt-manager.enable = true; # can be used to manage non-local hosts as well
}
</nowiki>
}}
|-
|Xen Project Hypervisor
|{{file|configuration.nix|nix|
<nowiki>
{
  virtualisation.xen.enable = true;
}
</nowiki>
}}
|-
|VirtualBox
|{{file|configuration.nix|nix|
<nowiki>
{
  virtualisation.virtualbox.host.enable = true;
  users.extraGroups.vboxusers.members = [ "username" ];
 
  # Non-free Extension Pack
  nixpkgs.config.allowUnfree = true;
  virtualisation.virtualbox.host.enableExtensionPack = true;
}
</nowiki>
}}
|-
|VMware
|{{file|configuration.nix|nix|
<nowiki>
{
  virtualisation.vmware.host.enable = true;
}
</nowiki>
}}
|}
{| class="wikitable"
|+Installing the appropriate guest utilities on a virtualised system.
!Hypervisor the guest is running on
!Code snippet to be added to the guest's <code>configuration.nix</code>
|-
|QEMU/KVM
|{{file|configuration.nix|nix|
<nowiki>
{
  services.qemuGuest.enable = true;
  services.spice-vdagentd.enable = true;
}
</nowiki>
|name=|lang=}}
|-
|VirtualBox
|{{file|configuration.nix|nix|
<nowiki>
{
  virtualisation.virtualbox.guest.enable = true;
  virtualisation.virtualbox.guest.x11 = true;
}
</nowiki>
}}
|-
|VMware
|{{file|configuration.nix|nix|
<nowiki>
{
  services.xserver.videoDrivers = [ "vmware" ];
  virtualisation.vmware.guest.enable = true;
}
</nowiki>
}}
|-
|microvm.nix
|Consult the [https://github.com/microvm-nix/microvm.nix MicroVM.nix documentation]
[[Category:Software]]
[[Category:Desktop]]
[[Category:Server]]
|}

Latest revision as of 08:38, 25 September 2026

This category page exists to list resources related to virtualisation in the Nix ecosystem.

Overview

You can use the following technologies for classic virtualisation on NixOS. You can also use containers, though they come with their own advantages and drawbacks.

Installing a hypervisor on the host system.
Hypervisor Code snippet to be added to configuration.nix
QEMU/KVM
❄︎ configuration.nix
{
  virtualisation.libvirtd.enable = true;

  # if you use libvirtd on a desktop environment
  programs.virt-manager.enable = true; # can be used to manage non-local hosts as well
}
Xen Project Hypervisor
❄︎ configuration.nix
{
  virtualisation.xen.enable = true;
}
VirtualBox
❄︎ configuration.nix
{
  virtualisation.virtualbox.host.enable = true;
  users.extraGroups.vboxusers.members = [ "username" ];
  
  # Non-free Extension Pack
  nixpkgs.config.allowUnfree = true;
  virtualisation.virtualbox.host.enableExtensionPack = true;
}
VMware
❄︎ configuration.nix
{
  virtualisation.vmware.host.enable = true;
}
Installing the appropriate guest utilities on a virtualised system.
Hypervisor the guest is running on Code snippet to be added to the guest's configuration.nix
QEMU/KVM
≡︎ 
{
  services.qemuGuest.enable = true;
  services.spice-vdagentd.enable = true;
}
VirtualBox
❄︎ configuration.nix
{
  virtualisation.virtualbox.guest.enable = true;
  virtualisation.virtualbox.guest.x11 = true;
}
VMware
❄︎ configuration.nix
{
  services.xserver.videoDrivers = [ "vmware" ];
  virtualisation.vmware.guest.enable = true;
}
microvm.nix Consult the MicroVM.nix documentation