Advanced
Recovery & Rollback
NixOS keeps every system generation on disk. You can always go back. This page covers every recovery path from a bad update to a system that will not boot.
Rollback a working system
If you just applied an update and something broke but the system still boots:
# Roll back to the previous generation
anix rollback
# List all available generations with dates
anix generations
# Roll back to a specific generation
anix rollback --gen 5Each anix apply or sudo nixos update creates a new generation. Old generations stay on disk until you run anix gc.
Boot a previous generation
If the system boots but you cannot log in, reboot and select an older generation from the Limine boot menu. The menu shows all available generations. Once booted into a working generation:
# Make that generation the permanent boot default
anix boot # sets the current (rolled-back) state as the boot default
sudo rebootRecovery menu
abora recovery opens a TUI menu with common recovery actions:
abora recoverySystem will not boot
If you cannot reach a boot menu or recovery shell, boot from the Abora live USB:
# Mount the installed system
mount /dev/disk/by-label/ABORA_ROOT /mnt
mount /dev/sda1 /mnt/boot # your EFI partition
# Enter the installed system
nixos-enter --root /mnt
# Roll back from inside
nix-env --list-generations --profile /nix/var/nix/profiles/system
nix-env --switch-generation N --profile /nix/var/nix/profiles/system
# Rebuild with current config
nixos-rebuild switch --flake /etc/nixos#aboraConfig file problems
If a config edit broke the build:
# Check what the error is
sudo nixos-rebuild dry-build --flake /etc/nixos#abora 2>&1 | head -40
# Edit the broken file
sudo nano /etc/nixos/abora-local.nix
# Or restore from a git snapshot
cd /etc/nixos
git log --oneline
git checkout <commit> -- abora-local.nixIf you enabled git snapshots (anix save), every working state has a commit. Use git log to find it.
Repair flake purity issues
If sudo nixos update fails with "access to absolute path … is forbidden in pure evaluation mode":
# Run the built-in repair tool
abora repair --mango
# Or run the repair script directly
sudo bash /etc/abora/repair-flake-purity.shThis rewrites any /nix/store/… paths that leaked into your installed config files back to relative paths. The most common cause is MangoWM's config path after an update.
Garbage collection
# Remove all old generations (frees significant disk space)
anix gc
# Keep the last 3 generations
anix gc --keep 3
# Check what would be freed first
nix-store --gc --print-dead | head -20anix gc removes all old generations. After GC you cannot roll back past the current generation. Snapshot first with anix save if unsure.Support report
If you need to report an issue, generate a diagnostics bundle:
abora support-report # creates a tarball in /tmp/abora-report-*.tar.gzThe report includes: system info, NixOS generation list, ANIX config, desktop profile, journal logs, Flatpak remotes, and hardware summary. Paste the output to a GitHub issue.