Installing NixOS through a minimal setup provides the cleanest foundation for a stable and reproducible system. This approach strips away graphical installers and pre-configured environments, placing control directly in the hands of the user. By starting with only the essential components, you gain a deep understanding of how the operating system initializes, manages services, and handles configuration.
Understanding the Minimal Philosophy
The core principle behind a minimal NixOS installation is reduction of unnecessary dependencies and services. Unlike standard installer images that bundle desktop environments and productivity software, the minimal ISO contains only the kernel, essential system tools, and the Nix package manager. This results in a tiny disk footprint, faster boot times, and a significantly reduced attack surface for security vulnerabilities. The system is built from the ground up with only the packages you explicitly declare, ensuring that no background processes consume resources without your knowledge.
Preparing the Installation Media
To begin, you must download the official NixOS minimal ISO image from the primary website. Verify the integrity of the download using the provided SHA256 checksum to ensure file corruption or tampering has not occurred. Write the image to a USB drive using a reliable tool such as `dd` on Unix-like systems or BalenaEtcher on other platforms. Booting from this prepared media initiates the text-based installer, which guides you through the initial system configuration without relying on a graphical display.
Required Hardware and Boot Options
Compatible x86_64 or ARM architecture machine
Minimum 1GB RAM for basic console installation
UEFI or legacy BIOS support
USB port for installation media
Navigating the Text Installer
The installation process is driven entirely through a series of terminal prompts, requiring familiarity with basic Linux command-line operations. You will configure critical settings such as keyboard layout, network connectivity, user accounts, and disk partitioning. The partitioning step is particularly important, as you must manually define the root filesystem, swap space, and boot loader installation point. This granular control ensures the storage layout aligns precisely with your performance and security requirements.
Essential Configuration Steps
During the setup, you will edit the `configuration.nix` file directly within the installer environment. This declarative configuration file is the single source of truth for your system's settings. You specify enabled services, such as SSH or firewall rules, and define the system's hostname and time zone. Because the configuration is written in the Nix language, you can leverage powerful features like modules and imports to structure complex setups in a maintainable way.
Post-Installation Workflow
After the base system is installed and the initial configuration is applied, you will boot into the new environment. The first login presents a sparse terminal, confirming that only the essential system components are active. From this point, you use the Nix package manager to install additional software, such as development tools, browsers, and shell environments. This gradual enrichment process allows you to build a personalized system that matches your exact workflow, avoiding bloat from the outset.
Benefits of a Minimal Deployment
A minimal NixOS installation excels in scenarios demanding reliability, security, and efficiency. Servers, development workstations, and privacy-focused machines benefit greatly from this approach. The deterministic nature of Nix ensures that every update is tracked and reversible, providing stability even on minimal configurations. Furthermore, the small attack surface and absence of background services make the system resilient against common security threats and performance degradation over time.