Fixing Omarchy Boot Failure: Outdated EFI Entry and zram Timeout
The Problem
After a kernel update, Omarchy fails to boot automatically and drops to a root terminal with errors. The system shows a timeout waiting for /dev/zram0:
Jan 27 19:19:32 omarchy systemd[1]: dev-zram0.device: Job dev-zram0.device/start timed out.
Jan 27 19:19:32 omarchy systemd[1]: Timed out waiting for device /dev/zram0.
Meanwhile, manually selecting “Limine” from the BIOS boot menu and choosing the first Linux option boots successfully.
Root Cause
Omarchy uses two EFI boot entries:
- Omarchy: Direct UKI boot (fast, no menu) - for normal use
- Limine: Bootloader menu - for snapshots and recovery
The issue occurs when the “Omarchy” EFI entry points to an outdated kernel file that no longer exists after a kernel update, while Limine points to the current kernel and works fine.
Diagnosis
Check your EFI boot entries:
sudo efibootmgr -v
Look for the “Omarchy” entry and verify what file it points to:
Boot0007* Omarchy HD(...)/\EFI\Linux\fccb33d27a5b48c1a9006d981aad57f6_linux.efi
Check what files actually exist:
ls -la /boot/EFI/Linux/
If the file in the EFI entry doesn’t match the current file, that’s the problem.
Identify which partition holds your boot files:
lsblk -o NAME,UUID,MOUNTPOINT | grep /boot
Note the disk and partition (e.g., nvme1n1p1).
Solution
Step 1: Delete the Outdated Boot Entry
Find the boot number of the broken “Omarchy” entry from efibootmgr -v, then:
sudo efibootmgr -b 0007 -B
Replace 0007 with your actual boot number.
Step 2: Create New Boot Entry
Using the correct disk and partition from your diagnosis:
sudo efibootmgr --create --disk /dev/nvme1n1 --part 1 --label "Omarchy" --loader '\EFI\Linux\omarchy_linux.efi' --unicode
Replace /dev/nvme1n1 and --part 1 with your actual disk and partition.
Step 3: Set Boot Order
Check the new boot number:
sudo efibootmgr
Set it as first in boot order:
sudo efibootmgr -o 0004,0006,0003,0000
Replace 0004 with your new Omarchy boot number. This puts Omarchy first, Limine second.
Step 4: Fix zram Timeout
Load the zram module early to prevent the 90-second timeout:
echo "zram" | sudo tee /etc/modules-load.d/zram.conf
Step 5: Reboot
reboot
The system should now boot directly to Omarchy without errors or delays.
What is zram?
zram is compressed swap in RAM. Omarchy uses it for swap space, but if the zram module doesn’t load early enough, systemd waits 90 seconds for /dev/zram0 to appear before timing out and continuing the boot. Loading it via /etc/modules-load.d/ ensures it’s available early in the boot process.
Verifying the Fix
After reboot, check that:
- System boots directly without stopping at terminal
- No zram timeout errors in logs:
journalctl -b | grep zram - zram swap is active:
swapon --show
Alternative: Use Limine as Primary
If you prefer to always boot through the Limine menu:
sudo nano /boot/limine.conf
Uncomment and set:
timeout: 3
default_entry: 1
This auto-selects the Linux entry after 3 seconds without requiring a separate Omarchy EFI entry.
Prevention
Future kernel updates should automatically update the UKI file at /boot/EFI/Linux/omarchy_linux.efi. The EFI entry created in this guide points to this consistent filename, so it won’t break again.
If you notice boot issues after updates, check:
ls -la /boot/EFI/Linux/
sudo efibootmgr -v
And verify the EFI entry matches the actual file.