<section xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude" version="5.0" xml:id="sec-instaling-virtualbox-guest"> <title>Installing in a VirtualBox guest</title> <para> Installing NixOS into a VirtualBox guest is convenient for users who want to try NixOS without installing it on bare metal. If you want to use a pre-made VirtualBox appliance, it is available at <link xlink:href="https://nixos.org/nixos/download.html">the downloads page</link>. If you want to set up a VirtualBox guest manually, follow these instructions: </para> <orderedlist> <listitem> <para> Add a New Machine in VirtualBox with OS Type "Linux / Other Linux" </para> </listitem> <listitem> <para> Base Memory Size: 768 MB or higher. </para> </listitem> <listitem> <para> New Hard Disk of 8 GB or higher. </para> </listitem> <listitem> <para> Mount the CD-ROM with the NixOS ISO (by clicking on CD/DVD-ROM) </para> </listitem> <listitem> <para> Click on Settings / System / Processor and enable PAE/NX </para> </listitem> <listitem> <para> Click on Settings / System / Acceleration and enable "VT-x/AMD-V" acceleration </para> </listitem> <listitem> <para> Save the settings, start the virtual machine, and continue installation like normal </para> </listitem> </orderedlist> <para> There are a few modifications you should make in configuration.nix. Enable booting: </para> <programlisting> <xref linkend="opt-boot.loader.grub.device"/> = "/dev/sda"; </programlisting> <para> Also remove the fsck that runs at startup. It will always fail to run, stopping your boot until you press <literal>*</literal>. </para> <programlisting> <xref linkend="opt-boot.initrd.checkJournalingFS"/> = false; </programlisting> <para> Shared folders can be given a name and a path in the host system in the VirtualBox settings (Machine / Settings / Shared Folders, then click on the "Add" icon). Add the following to the <literal>/etc/nixos/configuration.nix</literal> to auto-mount them: </para> <programlisting> { config, pkgs, ...} : { ... fileSystems."/virtualboxshare" = { fsType = "vboxsf"; device = "nameofthesharedfolder"; options = [ "rw" ]; }; } </programlisting> <para> The folder will be available directly under the root directory. </para> </section>