Handbook / Current desktop documentation
Factory Reset
First-login baseline, Keep My Files, Erase Everything and warnings.
This is the English desktop Handbook, published online from the same generated catalog. References to buttons, panels and menus describe the installed desktop. Package updates can be newer than the downloadable ISO. Check installation & validation scope.
Computers installed with the Eitr ISO can return to the state of their first login from Walker → System → Maintenance → Factory Reset. The reset is local: it restores a read-only copy saved on the same disk. It is not a backup and not secure erasure; a failed disk loses the computer and its restore point together.
The restore point
The guided installer's last step runs eitr-factory-reset capture, which saves
the finished installation under the top-level Btrfs subvolume @eitr-factory:
| Path | Contents |
|---|---|
root |
read-only snapshot of @ (system, accounts, settings) |
home |
read-only snapshot of @home (the seeded user folders) |
boot.tar |
the EFI partition's files: Limine, its menu, kernel and initramfs |
manifest.json |
creation time, filesystem and EFI partition UUIDs, accounts, boot.tar SHA-256 |
@eitr-factory itself is then made read-only. It lives beside @, not in
@/.snapshots, so Snapper never lists it or cleans it up, and Walker offers no
way to delete it. Root can still delete it, and formatting or disk failure
destroys it. Its snapshots share data with the running system, so it costs
little space at first and grows as updates replace the original files.
capture refuses to replace an existing restore point. Installations made
without the ISO have none, and Factory Reset reports that.
The two resets
Erase Everything returns the computer to its first login: apps installed since, changed settings, accounts added later and every file in the home folders are gone.
Keep My Files restores the system, apps and settings, and keeps the home
folders. For each account in the restore point, its current hidden entries
(~/.config, ~/.local, ~/.ssh, browser profiles and so on) move into a
visible folder named Settings before reset <date time> in that home folder,
then the restore point's hidden entries are copied back. Nothing in a home
folder is deleted. Accounts added after installation are removed with the
system, but their home folders stay under /home.
Both resets keep the disk encryption passphrase (the LUKS header is never
touched) and the current password of every account that the restore point
also has. A TPM unlock slot stays in the LUKS header, but the restored
initramfs asks for the passphrase until TPM unlock is set up again. Logs
(@log) and the package cache (@pkg) are kept.
Confirmation
Walker's action shows two separate warnings in a terminal:
- What the chosen reset removes and keeps. Only
yoryescontinues; Enter cancels. - Which computer is reset, that it restarts immediately and that unsaved work
is lost. Typing
RESET MY COMPUTERexactly is required.
The root-owned helper (/usr/lib/eitr/eitr-factory-reset) checks the typed
phrase again and validates before changing anything:
/is subvolume@and/homeis@homeon one Btrfs filesystem, and/bootis the FAT EFI partition.- The restore point and its snapshots are still read-only, its manifest names
this filesystem and EFI partition, and
boot.tarmatches its SHA-256. - Secure Boot is off: restored boot files are not signed with enrolled keys.
- No earlier reset is still pending.
sudo /usr/lib/eitr/eitr-factory-reset status (Walker → Reset Status) runs the
same checks and changes nothing.
How a reset runs
The running root and home are never written. Under a new top-level subvolume
@eitr-reset-previous the helper:
- Creates a writable snapshot of the restore point's root, recreates Snapper's
.snapshotssubvolume in it, copies in the current passwords and enableseitr-factory-reset-finish.servicethere. - Creates the new home: a writable snapshot of the restore point's home
(Erase Everything), or a snapshot of the current
@homewith the settings moved aside as described above (Keep My Files). - Archives the current EFI partition files to
boot.tarand unpacks the restore point's archive for copying.
A failure up to this point deletes @eitr-reset-previous and leaves the
computer unchanged. The helper then copies the restored boot files onto the EFI
partition (on failure it restores the archive it just made), renames @ and
@home to old@ and old@home inside @eitr-reset-previous, renames the
prepared subvolumes to @ and @home, and restarts. If a rename fails, the
earlier names and boot files are restored.
On the next boot, eitr-factory-reset-finish.service confirms the running root
is the restored one, deletes @eitr-reset-previous (including the old
system's Snapper snapshots) and disables itself.
Recovering an interrupted reset
Power loss during the few renames can leave @ or @home missing. Boot the
Eitr ISO, press Escape to leave the wizard, unlock the disk if encrypted
(cryptsetup open /dev/<partition> root), and inspect:
mount -o subvolid=5 /dev/mapper/root /mnt # or the Btrfs partition itself
btrfs subvolume list /mnt
cat /mnt/@eitr-reset-previous/manifest.json
@and@homeboth exist and@eitr-reset-previous/new-rootis gone: the swap finished. Reboot; the finish service cleans up.@or@homeis missing: rename the matching@eitr-reset-previous/old@orold@homeback (mv /mnt/@eitr-reset-previous/old@ /mnt/@), then extract@eitr-reset-previous/boot.taronto the EFI partition to match the old system, and reboot.
Delete @eitr-reset-previous with btrfs subvolume delete --recursive only
after the system starts correctly; until then it holds the previous system.
Verification
Tested in UEFI VMs without a network (see LINUX-VM-TESTING.md): both resets on an unencrypted erase install, and both on a LUKS2 install next to a Windows-shaped disk, each followed by a successful boot, login and the finish service's cleanup. Not yet tested: real hardware, power loss during the swap, and restore point retention through online system updates (the VMs had no network).