VirtualBox
Appearance
VirtualBox is a virtualisation hypervisor. It has powerful a GUI included for managing virtual machines.
NixOS Installation
VirtualBox can be installed on NixOS without problems, put this snippet in your configuration.nix
{
virtualisation.virtualbox.host.enable = true;
users.extraGroups.vboxusers.members = [ "user-with-access-to-virtualbox" ];
}
Adding users to the group vboxusers allows them to use the virtualbox functionality.
🟆︎
Tip: In order to affect your NixOS system by your nix-language-specific changes you must first evaluate it:
$ nixos-rebuild switch --sudo
🟆︎
Tip: When starting a VM, you may run into NS_ERROR_FAILURE. If you check the log you might see something like
00:00:00.616892 Audio: Initializing ALSA driver
In this case, the audio driver causes a crash. This can be fixed by switching to another driver such as PULSE.
⚠︎
Warning: Ensure that you do not put
virtualbox
into your environment.systemPackages
when you've enabled it with virtualisation.virtualbox.host.enable = true
. If you put virtualbox
into your environment.systemPackages
, VirtualBox won't be able to access it's driver, and attempting to start a VM will fail with the error NS_ERROR_FAILURE (0X80004005).VirtualBox Oracle Extensions
Note: This package is unfree and requires extra steps to install.
Oracle VirtualBox Extensions are required if you want to forward usb2 or usb3 to your guests. The Extensions are unfree.
{
nixpkgs.config.allowUnfree = true;
virtualisation.virtualbox.host.enable = true;
virtualisation.virtualbox.host.enableExtensionPack = true;
}
🟆︎
Tip: If USB forwarding is only advanced feature used in virtualization, then consider using an open-source virtualization solution such as GNOME Boxes or Virt-manager to avoid frequent recompilations..
⚠︎
Warning: Host extensions cause frequent recompilation.
Possible solutions:
- Use a pinned vbox module, see how to pin: https://github.com/NixOS/nixpkgs/issues/41212
- Also see https://stackoverflow.com/questions/48838411/install-virtualbox-modules-from-nixos-unstable-in-configuration-nix
- Use module from https://github.com/NixOS/nixpkgs/pull/71127 (unsafe) if you'd like to avoid recompilation.
- Use Virt-manager instead of VirtualBox
VirtualBox Guest Additions
{
virtualisation.virtualbox.guest.enable = true;
virtualisation.virtualbox.guest.dragAndDrop = true;
}