VirtualBox: Difference between revisions
imported>Alizter Add tip about changing audio driver |
Added a warning not to include virtualbox in environment.systemPackages |
||
(5 intermediate revisions by 5 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 14: | Line 16: | ||
</syntaxHighlight> | </syntaxHighlight> | ||
In this case, the audio driver causes a crash. This can be fixed by switching to another driver such as PULSE.}} | 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 == | ||
Line 28: | Line 32: | ||
</syntaxHighlight> | </syntaxHighlight> | ||
{{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- | {{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.}} | {{Warning|Host extensions cause frequent recompilation.}} | ||
Line 36: | 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 == | == VirtualBox Guest Additions == | ||
< | <syntaxhighlight lang="nix"> | ||
{ | { | ||
virtualisation.virtualbox.guest.enable = true; | virtualisation.virtualbox.guest.enable = true; | ||
virtualisation.virtualbox.guest. | virtualisation.virtualbox.guest.dragAndDrop = true; | ||
} | } | ||
</ | </syntaxhighlight> | ||
== See also == | == See also == |
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.
VirtualBox Oracle Extensions
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;
}
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;
}