VirtualBox: Difference between revisions

From NixOS Wiki
imported>Asdf8dfafjk
No edit summary
Added a warning not to include virtualbox in environment.systemPackages
 
(10 intermediate revisions by 8 users not shown)
Line 1: Line 1:
[https://www.virtualbox.org/ VirtualBox] is a virtualisation hypervisor. It has powerful a GUI included for managing virtual machines.
== NixOS Installation ==
== NixOS Installation ==
VirtualBox can be installed on NixOS without problems, put this snippet in your <code>configuration.nix</code>
VirtualBox can be installed on NixOS without problems, put this snippet in your <code>configuration.nix</code>
Line 9: Line 11:
Adding users to the group vboxusers allows them to use the virtualbox functionality.
Adding users to the group vboxusers allows them to use the virtualbox functionality.
{{Evaluate}}
{{Evaluate}}
{{Tip|When starting a VM, you may run into NS_ERROR_FAILURE. If you check the log you might see something like
<syntaxHighlight lang=nix>
  00:00:00.616892 Audio: Initializing ALSA driver
</syntaxHighlight>
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 <code>virtualbox</code> into your <code>environment.systemPackages</code> when you've enabled it with <code>virtualisation.virtualbox.host.enable {{=}} true</code>. If you put <code>virtualbox</code> into your <code>environment.systemPackages</code>, 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 ==
== VirtualBox Oracle Extensions ==
{{unfree}}
{{unfree}}
Oracle VirtualBox Extensions are required if you want to forward  usb2 or usb3 to your guests. The Extensions are unfree.
Oracle VirtualBox Extensions are required if you want to forward  usb2 or usb3 to your guests. The Extensions are unfree.


Line 21: Line 32:
</syntaxHighlight>
</syntaxHighlight>


Host extensions cause frequent recompilation.
{{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:  
Possible solutions:  
Line 29: Line 40:
* Also see  https://stackoverflow.com/questions/48838411/install-virtualbox-modules-from-nixos-unstable-in-configuration-nix
* 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 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 ==
<syntaxhighlight lang="nix">
{
  virtualisation.virtualbox.guest.enable = true;
  virtualisation.virtualbox.guest.dragAndDrop = true;
}
</syntaxhighlight>
== See also ==
* [https://search.nixos.org/options?query=virtualisation.virtualbox virtualisation.virtualbox options]
[[Category:Virtualization]]
[[Category:Software]]

Latest revision as of 09:29, 8 August 2024

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.

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;
}
Warning: Host extensions cause frequent recompilation.

Possible solutions:

VirtualBox Guest Additions

{
  virtualisation.virtualbox.guest.enable = true;
  virtualisation.virtualbox.guest.dragAndDrop = true;
}

See also