❖ omarchy-zfs

Run Omarchy on a ZFS root.

A native Arch package that makes Omarchy (Quattro, 4.x or later) ZFS-safe: snapshots before every update, rollback from the boot menu with ZFSBootMenu, whole-pool native encryption. No LVM.

fastfetch on an Omarchy desktop: the Omarchy logo beside hardware info where every filesystem line ends in zfs

Fresh machine

Download the ISO (beta)

The official Omarchy Quattro installer plus a root-on-ZFS path. Boots and installs fully offline.

6.2 GB · sha256 0834e632d091…7c2cd77 · checksum · build it yourself

Already on Omarchy with a ZFS root

yay -S omarchy-zfs

For manual root-on-ZFS installs: one package, and the pacman hooks take over from there. Requires Omarchy Quattro (4.x) or later. AUR page.

Why ZFS?

Omarchy is opinionated, and that's exactly why it's good. Using btrfs with snapper is a solid default that serves most people well. But a few of us have a storage world that already runs on ZFS: a TrueNAS box in the closet, ZFS backup targets, encrypted replicas offsite. For that (admittedly niche) crowd, the laptop is the odd one out. This project brings it into the fold.

Native encryption

Encryption is a dataset property, not a LUKS layer underneath the filesystem. The whole pool is protected. /etc, /var, logs, credentials, machine-id. And ZFSBootMenu prompts for the key at boot.

Backups that stay encrypted

zfs send --raw replicates snapshots without ever decrypting them. Send to a TrueNAS box, S3, or a friend's server. The key never leaves your machine, so where the backup lives stops mattering.

One toolset, laptop to NAS

The same snapshots, the same send | receive, the same scrubs on the desktop as on TrueNAS. No translation layer between your workstation and the rest of your storage.

Self-healing data

Every block is checksummed end to end. Corruption is caught on read and repaired from redundancy. And the package ships a monthly zpool scrub timer, so bitrot is found before you go looking for the file.

One pool, many disks

Start on a single NVMe, grow into mirrors or raidz when you outgrow it. The installer handles multi-disk topologies out of the box, with none of btrfs's RAID5/6 write-hole caveats.

Boot any snapshot

ZFSBootMenu shows snapshots and boot environments at boot. A bad update is a reboot away from undone. No live USB, no chroot.

What the package does

Stock Omarchy assumes btrfs: updates rewrite the initramfs config without the zfs hook, snapper aborts on non-btrfs roots, and Limine can push itself ahead of ZFSBootMenu in the EFI boot order. Each one ends in a system that won't boot or won't update. omarchy-zfs fixes all three with pacman hooks that run on every transaction. Everything is a package-owned file, so omarchy update can't strip it.

omarchy-zfs this package. A layer, not a fork Omarchy Quattro stock, unmodified. Normal updates Arch Linux Encrypted ZFS pool booted by ZFSBootMenu. Snapshots selectable at boot snapshot before every update zfs initramfs hook re-asserted after every transaction ZFSBootMenu kept first in the EFI boot order
CapabilityHow
Snapshot before every updatePreTransaction hook with retention (omarchy-zfs-autosnap)
Boot-safe updatesPostTransaction hook re-asserts the zfs initramfs hook, regenerates initramfs + ZBM
Kernel-skew protectionBlocks kernel upgrades the installed ZFS module can't build against
EFI boot-order guardKeeps ZFSBootMenu first; never deletes other entries
Snapper cleanupRemoves btrfs-only snapper configs that abort omarchy update on ZFS
Pool healthMonthly zpool scrub timer
Hibernation (experimental)Creates an encrypted zvol swap and wires up resume. Setting it up is one command; suspend-to-disk itself is not in the test matrix, and OpenZFS discourages swap on a zvol. Treat it as an experiment, not a feature
Fresh installs & recoveryomarchy-bootstrap-zfs: pool, datasets, encryption, ZBM. From the ISO or any live environment

Documentation

Three routes onto ZFS, each one tested on Omarchy Quattro.

Fresh root-on-ZFS install

Boot the ISO, answer a few questions, get an encrypted ZFS root with ZFSBootMenu and one passphrase prompt.

Read the guide →

Existing install → ZFS root

No in-place conversion exists. The two safe routes, and how to keep your current install bootable while you move.

Read the guide →

Keep btrfs, add ZFS

Leave the root filesystem alone; put /home or a data pool on ZFS, with snapshots, scrubs and replication.

Read the guide →

FAQ

Is this a fork of Omarchy?

No. It's a package that depends on stock Omarchy (Quattro+). You keep normal omarchy update; this package keeps it ZFS-safe.

Which Omarchy versions are supported?

Omarchy Quattro (4.x) and later. The releases served entirely from Arch packages, which is what makes a clean support layer possible. Earlier Omarchy versions used a different install model and aren't supported.

Which ZFS packages does it work with?

Any provider of zfs/zfs-utils: zfs-dkms, zfs-dkms-git, zfs-linux, or zfs-linux-lts. The kernel guard stops upgrades your ZFS module can't follow.

What happens to snapper and Limine?

They stay installed (Omarchy depends on them) but inert: stale snapper configs are cleaned, related timers are masked, and the boot-order guard keeps ZFSBootMenu first. A real btrfs pool on a second disk keeps working snapper coverage.

How do I roll back a bad update?

Reboot, pick the pre-upgrade snapshot in ZFSBootMenu, boot it. Promote it with omarchy-zfs-snapshot restore.

Heads up: the AUR "omarchy" package

The AUR package named omarchy is an unrelated third-party placeholder. The real dependency is the official package from pkgs.omarchy.org, already on every Omarchy system. Don't build the placeholder.