Generations and rollback

What a generation is

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

Rolling back

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.

From the boot menu

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.

Housekeeping

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.

Generations are not snapshots

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