| | |

What Is NixOS? A Friendly Guide Hardware + Installation

Ever rebuilt a Linux machine and ended up with a slightly different setup, even though you “did the same steps”? NixOS exists to fix that kind of drift.

NixOS is a Linux distribution built on the Nix package manager. It supports declarative, system-wide configuration, plus atomic upgrades and rollbacks. NixOS Wiki In practice, you describe the system you want, and NixOS builds it in a repeatable way.

This post covers what NixOS is, what hardware you need, and how to install it on real hardware.

NixOS in plain English

Most distros feel “stateful.” You install packages, tweak configs, and the machine slowly becomes a snowflake. NixOS pushes you toward a different workflow:

  • You keep a central config file (commonly /etc/nixos/configuration.nix).
  • You declare packages, services, users, and core settings there.
  • You apply changes as a single switch to a new system “generation.” NixOS Wiki

Two features make this workflow practical:

Declarative configuration

Instead of editing many files by hand, you manage the OS through configuration files and options. NixOS Wiki

Atomic upgrades and rollbacks

When you rebuild, NixOS activates the new configuration atomically. If something breaks, you can roll back to an older generation from the boot menu.

Nix also builds packages in isolation, which helps reproducibility across machines. NixOS

What is NixOS for?

NixOS pays off when you value repeatability and auditability.

It is especially useful for:

  • Developers who want consistent toolchains across projects and machines.
  • DevOps and sysadmins who want to reduce configuration drift.
  • Homelab builders who rebuild often and want fast recovery.
  • Teams that want “works on my machine” to stop being a thing.

If you want a fully guided, “never open a config file” experience, NixOS can feel heavy at first. Expect to spend some time learning the Nix language, reading module options, and moving your habits from “tweak and hope” to “declare and rebuild.” Many people find that trade-off worthwhile once they manage more than one machine.

How configuration works (the part that makes NixOS click)

During installation, NixOS generates a starter configuration and a hardware file. The wiki describes this default template workflow and the typical apply command (nixos-rebuild switch). NixOS Wiki

Think of NixOS configuration as a set of modules and options. You can keep everything in one file at first, then split it into smaller modules as your setup grows. NixOS Wiki

Here is a small example you can paste into configuration.nix and adjust:

{ config, pkgs, ... }:

{
  time.timeZone = "Asia/Jakarta";

  users.users.alice = {
    isNormalUser = true;
    extraGroups = [ "wheel" "networkmanager" ];
  };

  environment.systemPackages = with pkgs; [
    git
    vim
  ];

  services.openssh.enable = true;
}

It is not magic. It is just structured. You describe the end state, and NixOS builds it. Later, you can also adopt “flakes” to pin inputs more explicitly and share complete system definitions more cleanly, but you do not need flakes on day one. NixOS Wiki

NixOS versions (quick context)

Stable NixOS releases arrive twice a year, roughly late May and late November. NixOS Wiki The project announced NixOS 25.11 “Xantusia” on November 30, 2025, and states a seven-month support window for that release.

For beginners, start on stable.

Hardware requirements (practical numbers)

NixOS does not revolve around strict minimum specs. Your desktop environment and workload matter. Use these as sensible baselines.

CPU and architecture

The official download page offers ISOs for 64-bit Intel/AMD and 64-bit ARM.

RAM

  • Minimal, command-line install: 2 GB RAM works reliably.
  • Desktop environments (GNOME, KDE, etc.): 4 GB RAM is a practical minimum; 8 GB feels better for everyday use.

Very low memory can cause install or rebuild failures in real-world setups. Community reports show 512 MB often fails during installation or nixos-rebuild.

Storage

  • Server-style install: 10 to 20 GB.
  • Desktop with apps: 30 to 60 GB.

Nix keeps packages in /nix/store and can keep older generations for rollbacks, so disk use grows faster than on some distros.

Firmware and boot mode

On UEFI systems, the manual recommends systemd-boot and explains the core bootloader options.

Network

You usually want internet access during install to download packages from the binary cache. The manual notes that Wi-Fi works on the installation image, but it may not be enabled by default in the generated configuration.

Pick your installer: Graphical ISO vs Minimal ISO

The official download page highlights two ISO types:

  • Graphical ISO: live desktop, graphical installer, multiple desktops to try.
  • Minimal ISO: console-only installer, smaller ISO, great for servers.

If you want the most predictable and documentable install, use Minimal. If you want a quick desktop and standard partitioning, use Graphical.

Quick decision guide

Pick Graphical ISO if you want:

  • A live desktop to test hardware (Wi-Fi, display scaling, sound) before installing.
  • A guided installer for standard, single-disk layouts.

Pick Minimal ISO if you want:

  • A server or headless machine.
  • Full control over partitioning, encryption, RAID, or a careful dual-boot setup.
  • A smaller ISO and a simple, scriptable install process.

The download page describes the graphical ISO as a live environment with the graphical installer and multiple desktop environments, while the minimal ISO expects you to run the installer from the console.

Installation prep (do this first)

  1. Back up important data.
  2. Download the ISO that matches your CPU.
  3. Verify the ISO checksum (SHA-256 is provided next to the downloads).
  4. Write the ISO to a USB drive.
  5. Decide whether you will erase the disk or dual boot.

Install NixOS using the Graphical ISO (high-level)

The graphical installer changes over time, but the flow stays similar:

  1. Boot from USB and enter the live desktop.
  2. Start the installer.
  3. Choose language, keyboard, timezone.
  4. Pick a disk and partitioning option.
  5. Create a user and set passwords.
  6. Install and reboot.

If you want custom disk layouts, encryption, RAID, or a careful dual boot, the manual install below gives you full control.

Install NixOS using the Minimal ISO (step-by-step)

This is the classic path from the official manual.

1) Boot and get online

Boot the Minimal ISO. You will land in a root shell. If you need Wi-Fi, connect from the live environment first.

2) Partition the disk

Create partitions for:

  • Root filesystem
  • Swap (optional)
  • EFI System Partition (UEFI systems)

The manual includes example partition schemes for both MBR and UEFI.

3) Format and mount

Format your partitions, then mount them like this pattern:

  • Mount root at /mnt
  • Create /mnt/boot and mount the EFI partition there (UEFI)

The manual shows a full command sequence using labels and mounting /mnt/boot for UEFI systems.

4) Generate the initial config

Run:

  • nixos-generate-config --root /mnt

This creates:

  • /mnt/etc/nixos/configuration.nix
  • /mnt/etc/nixos/hardware-configuration.nix (auto-detected hardware and filesystems)

The manual warns that future runs can overwrite hardware-configuration.nix, so avoid hand-editing it unless you know why.

5) Edit configuration.nix

Open /mnt/etc/nixos/configuration.nix and set essentials:

  • Bootloader (systemd-boot for UEFI, or GRUB if you prefer).
  • Timezone and locale.
  • Networking (and Wi-Fi, if you need it after reboot).
  • A normal user account.

6) Install

Run:

  • nixos-install

The installer will prompt you to set the root password.

7) Reboot

After installation:

  • reboot

From now on, each rebuild adds a new boot entry. That is how NixOS makes rollbacks simple.

After install: the one workflow you should learn

You will typically change config, then apply it:

  • sudo nixos-rebuild switch

That command builds a new generation and switches to it. NixOS Wiki

Put /etc/nixos in git early. It turns your OS into a versioned project.

Quick troubleshooting

  • Out of memory during install or rebuild: use more RAM, or start minimal and add features gradually. Reports show 512 MB often fails in practice.
  • UEFI boot problems: confirm you mounted the EFI partition at /mnt/boot before running nixos-install, and review bootloader options.
  • Wi-Fi works in live ISO but not after reboot: enable Wi-Fi in your configuration, because the generated config may not enable it by default.

Wrap-up

NixOS asks you to think in configuration, not manual tweaks. If you want a Linux system you can rebuild on demand, review like code, and roll back safely, NixOS is a strong choice.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *