summary refs log tree commit diff
path: root/nixos/doc/manual/installation/installing-virtualbox-guest.section.md
blob: e9c2a621c1bba5ccf2f88897613df786032ccf9e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# Installing in a VirtualBox guest {#sec-instaling-virtualbox-guest}

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 [the downloads
page](https://nixos.org/nixos/download.html). If you want to set up a
VirtualBox guest manually, follow these instructions:

1.  Add a New Machine in VirtualBox with OS Type \"Linux / Other Linux\"

1.  Base Memory Size: 768 MB or higher.

1.  New Hard Disk of 8 GB or higher.

1.  Mount the CD-ROM with the NixOS ISO (by clicking on CD/DVD-ROM)

1.  Click on Settings / System / Processor and enable PAE/NX

1.  Click on Settings / System / Acceleration and enable \"VT-x/AMD-V\"
    acceleration

1.  Click on Settings / Display / Screen and select VMSVGA as Graphics
    Controller

1.  Save the settings, start the virtual machine, and continue
    installation like normal

There are a few modifications you should make in configuration.nix.
Enable booting:

```nix
boot.loader.grub.device = "/dev/sda";
```

Also remove the fsck that runs at startup. It will always fail to run,
stopping your boot until you press `*`.

```nix
boot.initrd.checkJournalingFS = false;
```

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
`/etc/nixos/configuration.nix` to auto-mount them. If you do not add
`"nofail"`, the system will not boot properly.

```nix
{ config, pkgs, ...} :
{
  fileSystems."/virtualboxshare" = {
    fsType = "vboxsf";
    device = "nameofthesharedfolder";
    options = [ "rw" "nofail" ];
  };
}
```

The folder will be available directly under the root directory.