<section xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" 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 numeration="arabic">
    <listitem>
      <para>
        Add a New Machine in VirtualBox with OS Type &quot;Linux / Other
        Linux&quot;
      </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
        &quot;VT-x/AMD-V&quot; acceleration
      </para>
    </listitem>
    <listitem>
      <para>
        Click on Settings / Display / Screen and select VMSVGA as
        Graphics Controller
      </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 language="bash">
boot.loader.grub.device = &quot;/dev/sda&quot;;
</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 language="bash">
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 &quot;Add&quot; icon). Add the following to the
    <literal>/etc/nixos/configuration.nix</literal> to auto-mount them.
    If you do not add <literal>&quot;nofail&quot;</literal>, the system
    will not boot properly.
  </para>
  <programlisting language="bash">
{ config, pkgs, ...} :
{
  fileSystems.&quot;/virtualboxshare&quot; = {
    fsType = &quot;vboxsf&quot;;
    device = &quot;nameofthesharedfolder&quot;;
    options = [ &quot;rw&quot; &quot;nofail&quot; ];
  };
}
</programlisting>
  <para>
    The folder will be available directly under the root directory.
  </para>
</section>
