A complete record of what the system was declared to be at one moment:
system.conf, the explicit package set with exact versions,
the enabled services, and which kernel was in use.
Every arctic-rebuild writes one before it changes
anything, and another once it has succeeded. The install itself is
generation 1.
arctic generations GEN DATE PACKAGES SERVICES DESCRIPTION *5 2026-08-01 14:02:11 84 7 rebuild 4 2026-08-01 14:02:03 82 6 before rebuild 3 2026-07-31 09:14:55 82 6 rebuild 2 2026-07-31 09:14:48 79 6 before rebuild 1 2026-07-30 22:41:02 79 6 initial install * = current
arctic rollback go back one arctic rollback 3 go back to generation 3 arctic diff 3 5 what changed between them arctic-generation show 3 everything generation 3 contained
Rolling back restores that generation's system.conf and
reconciles the machine to it — the same operation a rebuild performs, so
packages come back at the versions that generation recorded and services
return to the state it listed.
Switching is itself recorded as a generation, so rolling back is also undoable. You cannot get stuck.
A configuration that will not boot cannot be fixed from a shell you cannot reach. So the recent generations are in the boot menu:
Arctic Linux Arctic Linux (verbose) Arctic Linux (recovery shell) Arctic Linux (generation 4) Arctic Linux (generation 3) Arctic Linux (generation 2)
Choosing one boots with arctic.generation=N on the kernel
command line. /etc/rc.boot sees it and reconciles the system
to that generation before services start, so the entry means the same
thing as having run arctic-generation switch N beforehand —
not just a different label on the same system.
If the switch fails, the machine still finishes booting and says so. An escape hatch that can itself strand you is not an escape hatch.
How many appear is A_GENERATIONS in
install.conf, default 5. 0 turns them off.
arctic-generation list arctic-generation prune 10 keep the newest 10 arctic-generation delete 4 arctic-generation current
The current generation is never deleted, by prune or otherwise.
arctic gc prunes generations along with the package cache
and orphaned dependencies.
Both are worth having and they are different things.
| Generation | what the system was declared to be. Rolling back re-reconciles the machine to that declaration. Works on any filesystem, survives a reinstall, and is small — a few text files. |
| Snapshot | the filesystem as it literally was, restored file for file.
Needs btrfs. Undoes things no package ever declared — a config file
you edited by hand, something a build wrote into
/usr. |
arctic generations declared configurations arctic snapshots btrfs snapshots
alpm takes a snapshot before every install or removal when the root is btrfs, independently of generations.
More: arctic linux docs · install · declarative configuration · init systems · kernels · packages (alpm) · desktops and audio · ephemeral shells · musl · building from source