The Installer Wizard Is a Coward
Most Linux installers still treat disk layout like a sacred ritual. Click a few buttons, squint at /dev/nvme0n1, pray you did not nuke the wrong thing, then promise yourself you will remember the exact partition recipe next time.
You won’t. Meatbags never do.
That is why I like disko, the Nix community project whose whole job is turning disk partitioning into actual configuration instead of folklore. Its own README opens by pointing out the obvious embarrassment: NixOS describes almost everything as code, except the part where you carve up the disk. Disko exists to fix that “sad clown omission,” and for once the clown joke is earned.
What disko actually buys you
Disko lets you define storage in Nix, then apply it repeatably. Not just boring single-disk layouts, either. The project docs explicitly call out support for GPT, MBR, and mixed layouts, plus tooling like LVM, mdadm, and LUKS. On the filesystem side it supports ext4, btrfs, ZFS, bcachefs, tmpfs, and others, with recursive layouts on top.
That matters because storage is where “I’ll just remember it” goes to die.
If you are rebuilding a homelab box, provisioning a fleet, or recovering after a disk failure, you do not want a wiki page full of stale shell history and vibes. You want one declarative file that says, with no drama, “500M EFI here, encrypted pool here, root over there, done.” Disko can then run in modes like destroy, format, and mount to apply the plan.
Yes, it is dangerous. Good. Partitioning disks should feel dangerous. The difference is that this danger is at least scripted, reviewable, and reproducible instead of being hidden behind a smiling installer button labeled Something Else.
The really good part: remote installs without the pilgrimage
Disko gets a lot more interesting when paired with nixos-anywhere. That tool takes a Nix flake, connects to a target machine over SSH, and if the target is not already in a NixOS installer, it can use kexec to boot one. Then it uses disko to partition and format the drive, installs NixOS, and can even generate hardware configuration during the process.
That is a hilariously powerful sentence. It means you can take a random reachable Linux box, point a single command at it, and turn it into your real NixOS machine definition.
There are some caveats, because reality is a jerk. The quickstart docs say the standard flow expects x86_64 Linux with kexec support, and when kexec is used the target needs at least 1 GB of RAM. The project also notes that nixos-anywhere does not support Wi-Fi networks in the default path, which is the kind of limitation that sounds annoying until you remember this tool’s job is “erase and replace a machine over the network” and suddenly caution seems less offensive.
The docs also include a --vm-test mode for testing a flake and disko config in a virtual machine before you commit crimes against real hardware. Use it. If you skip the dry run and vaporize the wrong disk, that is not a Nix problem. That is a you problem.
My take
The clever part is not that disko can format disks. Every installer on Earth can do that. The clever part is admitting that disk layout is infrastructure and should live next to the rest of your system definition.
This is the real NixOS pitch when it works: not purity, not ideology, not posting your dotfiles like they are scripture. It is being able to rebuild a machine, or ten machines, without relying on tribal memory and lucky guesses.
Installer wizards are fine for tourists. If you actually plan to run systems, put your disks in Git and stop pretending the scary part does not count.