about summary refs log tree commit diff
path: root/nixos/doc/manual/administration/nixos-state.section.md
blob: 9819d613198c38bb018ffcf3bbc5bc39f54e467a (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
# NixOS {#sec-nixos-state}

## `/nix` {#sec-state-nix}

NixOS needs the entirety of `/nix` to be persistent, as it includes:
- `/nix/store`, which contains all the system's executables, libraries, and supporting data;
- `/nix/var/nix`, which contains:
  - the Nix daemon's database;
  - roots whose transitive closure is preserved when garbage-collecting the Nix store;
  - system-wide and per-user profiles.

## `/boot` {#sec-state-boot}

`/boot` should also be persistent, as it contains:
- the kernel and initrd which the bootloader loads,
- the bootloader's configuration, including the kernel's command-line which
  determines the store path to use as system environment.


## Users and groups {#sec-state-users}

- `/var/lib/nixos` should persist: it holds state needed to generate stable
  uids and gids for declaratively-managed users and groups, etc.
- `users.mutableUsers` should be false, *or* the following files under `/etc`
  should all persist:
  - {manpage}`passwd(5)` and {manpage}`group(5)`,
  - {manpage}`shadow(5)` and {manpage}`gshadow(5)`,
  - {manpage}`subuid(5)` and {manpage}`subgid(5)`.