Storage, NVMe and filesystems on Omarchy
What works and what breaks for NVMe, SSD, btrfs, LUKS and the EFI partition on Omarchy 4.x, with real issue numbers, the Apple NVMe quirk script, and fixes.
NVMe and SATA storage on ordinary PC hardware works out of the box on Omarchy 4.x. The installer builds LUKS plus btrfs with snapper snapshots, and zram swap. The real breakage is in the EFI partition and the installer, not the drive: dirty or automounted ESPs, dual-disk dual-boot installs, and old Apple AHCI controllers. TRIM is not enabled by default.
On this page
On a normal PC with an NVMe or SATA SSD, storage is the part of Omarchy you never think about. The drive is detected, the installer builds LUKS plus btrfs, snapshots happen before every update, and swap lives in compressed RAM. Almost everything filed under this component is really about something next to the drive: the EFI system partition, the installer’s disk detection, or snapshot space.
Status on 4.0.4
Checked against Omarchy 4.0.4 (2026-09-15) and the v4.0.4 source tree.
Our issue data tracks 111 issues touching storage, 60 of them open. Treat that number loosely: the match pattern catches any report from a machine that mentions an NVMe or an SSD. The genuinely storage specific failures fall into five groups.
- The ESP. A dirty or automounted FAT32
/bootbreaks updates and boots more often than the drive itself does. - Installer disk detection on unusual controllers: old Apple AHCI, eMMC, software RAID.
- Dual-boot and multi-disk layouts.
- Space accounting: snapshots on
/, and nothing at all on the ESP. - TRIM, which is not configured.
There is no omarchy-hw-storage script. Storage has exactly one quirk script in the whole tree, and it is for Intel MacBooks.
What Omarchy does automatically
From the v4.0.4 tree:
- btrfs plus LUKS root.
etc/mkinitcpio.conf.d/omarchy_hooks.confsets the hook linebase udev plymouth keyboard autodetect microcode modconf kms keymap consolefont block encrypt filesystems fsck btrfs-overlayfs. Theencrypthook is what decrypts at the Plymouth passphrase prompt. - Snapshots before updates.
install/config/snapper.shinstallsdefault/snapper/root, which setsNUMBER_LIMIT="5"andTIMELINE_CREATE="no", then disablessnapper-timeline.timerand enablessnapper-cleanup.timerandlimine-snapper-sync.service.etc/limine-entry-tool.d/omarchy-defaults.confpinsMAX_SNAPSHOT_ENTRIES=6, one above the retention limit to cover the creation window. See the manual chapter on system snapshots. - Swap in RAM.
default/systemd/zram-generator.conf.d/90-omarchy.confgives zram a size equal to RAM with zstd compression andswap-priority = 100, above thepri=0disk swapfile thatomarchy-hibernation-setupcreates. - A free space guard on
/.bin/omarchy-update-requires-free-spacerefuses to update when the root filesystem has less than 10 GiB available. It measures/and nothing else. - Removable drive automount.
default/hypr/autostart.lualaunchesudiskie --automount --no-notify --no-tray, added in 4.0.0. - FAT repair tools.
dosfstoolsis a default package since 3.7.0, sofsck.fatexists before you need it. PR #5448 added it after the/bootmount reports in #4192 and #4284. - Disk tooling.
dua-clifor usage,omarchy-drive-infoandomarchy-drive-selectfor picking a device,omarchy-drive-passwordfor the LUKS passphrase, andomarchy-disk-speedtestunder Trigger then Speed Test, which uses O_DIRECT against NOCOW scratch files and reads throughput from the kernel block counters. - One quirk script.
install/hardware/apple/fix-suspend-nvme.shmatches MacBook8,1, 9,1 and 10,1, MacBookPro13,1 to 13,3 and MacBookPro14,1 to 14,3 by DMI product name, then installsomarchy-nvme-suspend-fix.serviceto write0intod3cold_allowedfor the PCI device at0000:01:00.0, so the NVMe is not powered off across suspend.
What Omarchy does not do: enable fstrim.timer, or pass allow-discards to dm-crypt.
Known problems
| Issue | Models affected | Status | Fixed in |
|---|---|---|---|
| #11979 Apple AHCI SSD never completes IDENTIFY, installer shows no disk, then pacstrap I/O errors | 2013 to 2015 MacBook Pro (A1502, MacBookPro11,1) | open | not fixed |
| #11368 eMMC missing from the installer’s drive list | Cherry Trail mini PCs and tablets | open | not fixed |
| #7263 ESP mount fails with a SQUASHFS superblock error during dual-boot install | multi-disk PCs, Windows on a second NVMe | open, workaround | not fixed |
#12060 kernel migration says /boot is not FAT32 when it is a systemd automount |
any install whose ESP is not in fstab | open | not fixed |
#11101 limine-install cannot parse /dev/mdXpY |
software RAID and Intel RST FakeRAID | open, unconfirmed | not fixed |
| #11821 nothing checks ESP free space before the UKI is written | small ESPs | open | not fixed |
| #10826 NVMe suspend quirk pins the dGPU instead of the NVMe | MacBookPro13,3 and 14,3 | open | not fixed |
| #8271 full disk install wipes the T1 firmware that lives on the Apple ESP | 2016 to 2017 Touch Bar MacBook Pros with the T1 chip; a 2019 T2 owner reported no loss | open | not fixed |
| #8725 external NTFS drive refuses to mount | any USB drive last used on Windows | workaround | not fixed |
| #2229 TRIM blocked by dm-crypt, no periodic trim | every LUKS install | closed, declined as a default, PR #4840 closed unmerged | not fixed |
| #2747 4 TiB drive hits the msdos partition table sector limit | ThinkPad T560 with a 4 TB SATA SSD, 3.x installer | open, not reproduced | not fixed |
#4284 systemd-stub reports a corrupt .cred, dirty ESP or TPM lockout |
Limine plus UKI on 3.3.x, ThinkPads with the TPM enabled | closed | not fixed, fsck.fat ships since 3.7.0 |
| #3850 snapshots consume the whole disk | btrfs installs on 3.x | closed | 3.6.0 |
Three notes on that table. #11101 was filed by an AI agent and has no maintainer reply or second reporter, so treat the diagnosis as a lead rather than a confirmed bug. #2747 is from the 3.1.1 archinstall era; the maintainer could not reproduce it, runs 4 TB NVMe installs from the ISO, and suspects the T560 SATA controller, so it may not reproduce on the current ISO. #8271 has a Linux-side recovery path now: one reporter on the thread brought a wiped T1 back with the t1-revive tool linked there, and a free space install that leaves the Apple ESP alone avoids the loss in the first place.
Where 3.x differs from 4.x: the /boot failures of early 2026 were a 3.3.x story. #4192 turned out to be a kernel upgrade that never finished building its initramfs, and #4284 was closed after the maintainer pointed at an Arch change that forces a TPM lockout, with several reporters fixed by disabling the TPM in firmware. The snapshot bloat in #3850 was addressed in 3.6.0 by dropping /home snapshots and btrfs quotas. An install that started on 3.x can still carry an @home/.snapshots subvolume that the new policy never cleans.
Fixes that work
Work in this order.
- Measure both filesystems.
df -h /anddf -h /boot. The update guard only looks at/, so a full ESP fails late, after the pacman transaction has committed. - Clear old snapshots if
/is tight.sudo snapper -c root list, thensudo snapper -c root delete <number>. Rollback is covered in rollback with snapper and Limine. - Repair a dirty ESP.
sudo umount /boot,sudo fsck.fat -a /dev/nvme0n1p1for your ESP device, then mount it again. Two reporters on #4284 confirmed the repair alone cleared the error, andfsck.fatis already installed. If it comes back on a ThinkPad, the other fix from that thread was disabling the TPM security chip in firmware. - Give the ESP an explicit fstab entry if
findmnt /bootreportsautofs. A plainvfatline makes systemd generate a normalboot.mount, and the Limine check then seesvfatinstead of the automount layer (#12060). - For the dual-boot ESP failure, the community workaround on #7263 is to force the filesystem type on the two mount calls in the ISO configurator, adding
-t vfat, then rerun the automated script. The upstream change is open as omarchy-iso#111 and is not in any release. - External NTFS drives. Install
ntfsprogs, runsudo ntfsfix --clear-dirty /dev/sdX1, then mount from Files rather than with sudo, so udisks mounts it under your own user. Iffindmntshows the drive under/mntwithuid=0, the Disks app has written it into/etc/fstab; delete that line, runsudo systemctl daemon-reload, unmount, and replug. That is what closed #8725. Turning off Windows Fast Startup prevents the dirty flag recurring. - TRIM, if you want it. Check with
lsblk --discard: aDISC-GRANof0Bon the crypt device means discards are blocked.sudo cryptsetup --allow-discards --persistent refresh rootopens the path andsudo systemctl enable --now fstrim.timerruns it weekly. This is your own change, not an Omarchy default, and it does leak which blocks are in use to anyone with physical access to the drive. - Apple NVMe suspend. Run
systemctl cat omarchy-nvme-suspend-fix.serviceand compare its PCI address withlspci. If01:00.0is a GPU on your machine, the service is on the wrong device. Do not expect a corrected address to be enough: a MacBookPro14,3 owner on #10826 pointed it at the real NVMe and the machine still did not resume.
If the installer cannot see your drive at all, see install fails or stalls. If you are already in emergency mode, see you are in emergency mode after update.
Report it
Run omarchy debug, which writes /tmp/omarchy-debug.log with inxi -Farz, dmesg, the current boot’s warnings and errors from journalctl, and the package list. Use omarchy debug --print --no-sudo if you would rather not include dmesg.
Storage reports need four more things that omarchy debug does not single out, so paste them too:
lsblk -fandfindmnt -no SOURCE,TARGET,FSTYPE,OPTIONS /boot /df -h / /bootlsblk --discardif the question is TRIM- the
ata,nvme,mmcorntfs3lines fromsudo dmesg
Say which release you installed from and which one you are on now, because installer bugs and update bugs live in different repositories. Then file at github.com/omacom/omarchy/issues, or send us a report through hardware submit.
Related
Most-discussed upstream issues
The most-discussed upstream issues for this subsystem (128 total, 74 open).
| Issue | State | Comments | Opened |
|---|---|---|---|
| #1814 Problem with installation Omarchy 3.0 ISO using Ventoy as boot media | closed | 6 | 2025-09-19 |
| #2776 Omarchy not starting and ending in a black screen after first installation | closed | 10 | 2025-10-23 |
| #4284 systemd-stub prints “Failed to read *.cred, Volume corrupt” on boot (Limine + UKI) · fixed by #5448 | closed | 18 | 2026-01-16 |
| #2229 Enable SSD TRIM | closed | 10 | 2025-10-05 |
| #7909 Random hard reboots on ThinkPad X1 Carbon Gen 11 — Omarchy only, Ubuntu stable | open | 15 | 2026-08-23 |
| #1641 Can't install on 2011 Macbook Air | closed | 14 | 2025-09-12 |
| #4192 Kernel 6.18.1-arch1-2 update breaks boot - missing vfat module prevents /boot mount · fixed by #5448 | closed | 9 | 2026-01-09 |
| #1401 Installing from `omarchy-online.iso` wipes the Windows 11 boot entry | closed | 9 | 2025-09-01 |
| #1597 Can't boot when 2 SSDs is installed | closed | 12 | 2025-09-11 |
| #4781 Omarchy 3.4.0 breaks boot with LUKS encryption - emergency mode with locked root | closed | 9 | 2026-02-27 |
| #5266 (5-10x More Speed on HHD) Cache Omarchy Scripts (200+ keybinds/app lauch/desktop related scripts) in ONLY 1MB RAM and Turn 7-8s Launcher Waits into 0-4s (Revive Old Hardware) This also avoids these scripts from being swapped in zram or even worse; HHD which makes the Omarchy desktop experience feel like hell on a hhd | closed | 6 | 2026-04-09 |
| #5755 Screen on laptop not turning back on after suspend since 3.8 upgrade | open | 6 | 2026-05-11 |
Questions people ask
- Is TRIM enabled on Omarchy?
- Not by default. A stock LUKS install does not pass allow-discards through dm-crypt and does not enable fstrim.timer. There is no fstrim reference in the v4.0.4 tree outside the factory reset scripts. The maintainer declined it as a default on #2229 and PR #4840, which proposed both, was closed unmerged.
- What filesystem does the Omarchy installer use?
- btrfs on top of LUKS, with snapper snapshots of the root subvolume only. The mkinitcpio hook line in v4.0.4 is base udev plymouth keyboard autodetect microcode modconf kms keymap consolefont block encrypt filesystems fsck btrfs-overlayfs.
- Why did my disk fill up with snapshots?
- That was issue #3850 on 3.x, when Omarchy also snapshotted /home. Release 3.6.0 dropped /home snapshots and btrfs quotas and kept the last 5 root snapshots. Old installs can still carry an @home/.snapshots subvolume.
- Does the installer see eMMC and RAID?
- Not reliably. eMMC can be missing from the live environment until the mmc modules are loaded by hand (#11368), and limine-install has no parser for /dev/mdXpY on software or Intel RST RAID (#11101).
Sources and credit
Fixes on this page were worked out by marko-builds (Traced the external NTFS mount error to the ntfs3 dirty flag and wrote the ntfsfix and udisksctl recovery steps), Damian626 (Found the missing -t vfat on the ESP mount that breaks dual-boot installs, and the live workaround), passerini (Showed the Apple NVMe suspend quirk pins the discrete GPU out of D3cold instead of the NVMe), TechLuddite (Traced the update path end to end and showed the ESP is never measured for free space), n8himmel (Measured stale blocks on a LUKS install and wrote the TRIM enablement PR). Text here is our own paraphrase; follow the links for the original threads.
- issueIssue #11979: 2013 MacBook Pro A1502: Apple AHCI SSD not detected, then pacstrap I/O error; cannot set libata.force=noncq · adriannoes · 2026-09-15
- issueIssue #12060: Kernel migration rejects valid FAT32 ESP discovered as systemd autofs · holystix04 · 2026-09-16
- issueIssue #11821: Nothing in the update path measures ESP free space, including the post-transaction hook that writes the UKI · TechLuddite · 2026-09-14
- issueIssue #11368: BUG: Omarchy v4.0.2 does not detect eMMC as an installation drive · matcarfer · 2026-09-11
- issueIssue #11101: limine-install fails on software RAID / Intel RST ESP: 'Failed to parse disk and partition from source /dev/mdXpY' · patsonatorEFPL · 2026-09-10
- issueIssue #10826: NVMe suspend fix targets the dGPU on MacBooks with discrete graphics · passerini · 2026-09-08
- issueIssue #8725: Error mounting an external hard drive · alwindoss · 2026-08-28
- issueIssue #8271: Installer erases T1/T2 firmware on Apple hardware, permanently disabling Touch Bar / camera / Touch ID · PaulShadwell · 2026-08-25
- issueIssue #7263: Dual-boot install fails when the free space is on a different disk than Windows itself · igor-gorohovsky · 2026-08-17
- issueIssue #2229: Enable SSD TRIM · zsolt-donca · 2025-10-05
- prPR #4840: Enable SSD TRIM on LUKS-encrypted drives (closed unmerged) · n8himmel · 2026-03-01
- issueIssue #2747: Unable to install Omarchy on a 4TiB ssd · boognevatz · 2025-10-22
- issueIssue #4284: systemd-stub prints 'Failed to read *.cred, Volume corrupt' on boot (Limine + UKI) · FruitPnchSamuraiG · 2026-01-16
- issueIssue #4192: Kernel 6.18.1-arch1-2 update breaks boot - missing vfat module prevents /boot mount · KhlifiIsmail · 2026-01-09
- issueIssue #3850: Snapshots using up all disk space · gregg-cbs · 2025-12-11
- prPR #5448: Add dosfstools for /boot recovery (merged) · niraletter · 2026-04-29
- commitinstall/hardware/apple/fix-suspend-nvme.sh in v4.0.4 · 2026-09-15
- commitdefault/snapper/root in v4.0.4 · 2026-09-15
- commitbin/omarchy-update-requires-free-space in v4.0.4 · 2026-09-15
- manualOmarchy Manual: System snapshots