Omarchy Snapshots & Rollback: Btrfs, Snapper and Limine
Use Omarchy's Btrfs + Snapper + Limine safety net: auto snapshots, boot rollback, manual undo, and recovery when updates break.
Omarchyโs killer safety feature: every pacman transaction auto-snapshots. Broken update โ reboot โ pick previous snapshot โ back in seconds. Hereโs how to use and rescue it.
How it works
- Btrfs root with subvolumes
@and@home - Snapper creates pre/post snapshots on
pacman -Syu - Limine bootloader shows snapshots at boot (Omarchy Quattro). Manual installs with GRUB need stubbing (see Dual Boot guide).
Check:
sudo snapper list
# # | Type | Pre # | Date | Description
# 12| pre | | 2026-08-30 09:12:03 | pacman -Syu
# 13| post | 12 | 2026-08-30 09:12:58 |
sudo limine-snapper-hook check
Rollback at boot (Limine)
- Reboot
- In Limine menu โ
Omarchy snapshotsโ pick last good number - Boots read-only snapshot โ open terminal โ
sudo snapper rollback - Reboot again into restored snapshot.
Rollback without reboot
sudo snapper list
sudo snapper undochange 12..13 # diff between pre/post
# Or full rollback
sudo btrfs subvolume delete / # don't โ use snapper rollback instead
sudo snapper rollback 12
Always snapshot before ricing:
sudo snapper create --description "before hypr tweak"
When to snapshot manually
- Before
omarchy theme settest if you overridelooknfeel - Before AUR
yay -Syumajor updates - Before NVIDIA / kernel switches
Troubleshooting
I broke system and snapshots donโt boot โ omarchy-debug then omarchy-reinstall from live ISO (keeps home). Discuss in Discord #omarchy-help.
No snapshots after update โ systemctl status snapper-timeline.timer, snapper list permissions, ensure Btrfs not ext4.
GRUB install lost snapshots โ You replaced Limine. Keep limine-update stub and use snapper undochange manually. Or reinstall Limine: sudo pacman -S limine.
Disk full from snapshots โ sudo snapper list โ sudo snapper delete 10-20, set timeline cleanup in /etc/snapper/configs/root (TIMELINE_LIMIT_HOURLY=5).
Keep snapshots lean: Omarchyโs Btrfs compression zstd:3 already saves space, but old pre/post pairs add up.
See also: Updates guide and Troubleshooting.