Notes from running NixOS in a local VM.
configuration.nix sets users immutable to force managing them through the config. The primary user is added to the wheel group and the wheel group has passwordless sudo access. All passwords are set by hash (using
mkpasswd) and SSH keys are added for the primary user.
Partition, format, mount, configure:
# # Partition scheme for UEFI (2G swap) # # GPT partition table parted /dev/vda -- mklabel gpt # root partition parted /dev/vda -- mkpart primary 512MB -2GB # swap partition parted /dev/vda -- mkpart primary linux-swap -2GB 100% # boot partition using ESP (EFI system partition) parted /dev/vda -- mkpart ESP fat32 1MB 512MB parted /dev/vda -- set 3 esp on # # Formatting # mkfs.ext4 -L nixos /dev/vda1 mkswap -L swap /dev/vda2 mkfs.fat -F 32 -n boot /dev/vda3 # # Configuring # mount /dev/disk/by-label/nixos /mnt mkdir -p /mnt/boot mount /dev/disk/by-label/boot /mnt/boot nixos-generate-config --root /mnt
configuration.nix (attached to this gist) to
Complete the installation:
nix.settings.auto-optimise-store — If set to true, Nix automatically detects files in the store that have identical contents, and replaces them with hard links to a single copy. This saves disk space. If set to false (the default), you can still run
nix-store --optimise to get rid of duplicate files.
$ nix-store --gc — Runs garbage collection: all paths in the Nix store not reachable via file system references from a set of “roots”, are deleted.