/nixos-config

My ZFS-on-root mirrored-drives multi-users dotfiles-integrated NixOS configuration, with install and recover guides.

Primary LanguageNixThe UnlicenseUnlicense

My NixOS Configuration

As used for my personal laptop.

Noteworthy Aspects

  • ZFS for all file-systems including the / and the /boot, giving volume management and snapshot backups.

  • Mirror ZFS pools on dual (or more) SSDs, giving redundancy, fault tolerance, and high-performance striped reading.

  • Mirror EFI system partitions, allowing booting from either in case one fails.

  • Multiple swap partitions, one per drive, not mirrored, for high-performance striped writing and reading.

  • Script for reproducing the custom drive partitioning, ZFS layout, and NixOS installation.

  • Very minimal system state, allowing entire installation to be more easily reproduced.

  • Organized so that per-machine configuration is separated from general configuration.

  • Multiple users for different activities, for better security and for tailored environments.

  • Companion repository that provides my "dot files" for users' home directories.

  • Some non-trivial custom NixOS modules.

  • Extra support for installing source-code and debug-info, according to your choice, for debugging of binaries (executables & libraries) installed by Nix packages which don't normally provide this (for both pre-built w/o rebuilding or locally-built), and also for arbitrary binaries via dedicated temporary directories. Default installation of the source-code of the system's Glibc and Rust std libraries (w/o rebuilding any packages), to help when debugging any of the many binaries using those. Options for NixOS to configure all this.

NixOS Version

These repositories were created using NixOS 21.05 and were minorly adjusted for all following release versions up to 24.05 which they now target.

Installation

See Installation.

Recovering From Drive Failure

See Recovering From Drive Failure.

References