Enable secure boot on Omarchy
The Omarchy + Windows Secure Boot Guide
This guide is the product of real-world troubleshooting. This was tested with Omarchy 3.0, Windows 11, and an NVIDIA GPU. Includes specifics for ASUS motherboards and NVIDIA graphics.
Assumptions:
- You have already installed Windows 10 or 11.
- You have successfully installed Omarchy alongside it.
- You are logged into your Omarchy desktop.
Phase 1: BIOS Setup
Before we touch Omarchy's configuration, let's set the firmware in Setup Mode.
- Reboot and Enter your BIOS/UEFI. (Usually by pressing
Del
orF2
on startup). - Disable CSM: Navigate to the "Boot" tab and ensure
CSM (Compatibility Support Module)
is set toDisabled
. Secure Boot requires a pure UEFI environment. - Enter Setup Mode:
- Find the "Secure Boot" menu.
- Select the option to "Clear Secure Boot Keys" or "Delete All Secure Boot Variables".
- Do not select any option to "Install default keys" afterwards.
- Save and Exit, booting directly back into Omarchy.
Phase 2: Key Management
Now, we'll install the keys for both of your operating systems.
-
Install sbctl:
sudo pacman -S sbctl -
Create Keys: This command generates your secure keys and saves them locally.
sudo sbctl create-keys -
Enroll Your Keys (and Microsoft's): Now, enroll the keys. The
-m
flag includes Microsoft's keys as well.sudo sbctl enroll-keys -m -
Sign the Limine Bootloader: We need to sign the bootloader binary itself so the firmware will trust it.
sudo sbctl sign -s /boot/EFI/limine/limine_x64.efi# Also sign the fallback pathsudo sbctl sign -s /boot/EFI/BOOT/BOOTX64.EFI
Phase 3: Configuring Omarchy boot
-
Get Your Partition IDs: We need two unique IDs (the next step automates retrieving them):
- The LUKS Partition UUID: This is the
UUID
of the physical partition labeledcrypto_LUKS
(e.g.,/dev/nvme2n1p2
). - The BTRFS Root UUID: This is the
UUID
of the filesystem inside the LUKS container, labeledbtrfs
and mounted at/
.
- The LUKS Partition UUID: This is the
-
Create the Limine Configuration File: (Remove
nvidia_drm.modeset=1
if you don't have NVIDIA)LUKS_UUID=$(lsblk -no UUID,FSTYPE | awk '$2=="crypto_LUKS"{print $1; exit}') && \BTRFS_UUID=$(lsblk -no UUID,FSTYPE,MOUNTPOINT | awk '$2=="btrfs" && $3=="/" {print $1; exit}') && \[ -n "$LUKS_UUID" ] && [ -n "$BTRFS_UUID" ] || { echo "Could not auto-detect required UUIDs" >&2; exit 1; } && \echo "Detected LUKS UUID: $LUKS_UUID" && echo "Detected BTRFS root UUID: $BTRFS_UUID" && \sudo tee /etc/default/limine <<EOFTARGET_OS_NAME="Omarchy"ESP_PATH="/boot"KERNEL_CMDLINE[default]="cryptdevice=UUID=$LUKS_UUID:root root=UUID=$BTRFS_UUID rootflags=subvol=@ quiet splash nvidia_drm.modeset=1"ENABLE_UKI=yesENABLE_LIMINE_FALLBACK=yesFIND_BOOTLOADERS=yesBOOT_ORDER="*, *fallback, Snapshots"MAX_SNAPSHOT_ENTRIES=5SNAPSHOT_FORMAT_CHOICE=5EOF -
Create the Plymouth Hook File: This tells the system to build the graphical splash screen into the boot image.
sudo tee /etc/mkinitcpio.conf.d/omarchy_hooks.conf <<EOFHOOKS=(base udev plymouth keyboard autodetect microcode modconf kms keymap consolefont block encrypt filesystems fsck btrfs-overlayfs)EOF
Phase 4: Restoring Plymouth
The Omarchy installer includes a script to set up a theme and a smooth transition to your desktop. We need to re-run its logic.
-
Find and run the script located in your user's Omarchy directory:
~/.local/share/omarchy/install/login/plymouth.sh
.chmod +x ~/.local/share/omarchy/install/login/plymouth.sh~/.local/share/omarchy/install/login/plymouth.sh
Phase 5: Going Live (Building, Signing, and Enabling)
Now we apply all our configurations.
-
Run Limine Update: This will read your new config files, build a new Unified Kernel Image (UKI), and
sbctl
will automatically sign it for you.sudo limine-updateThe output will confirm the UKI was created and signed. The warning about Secure Boot being disabled is normal here.
-
Add Windows to the Boot Menu:
sudo limine-scanSelect the number corresponding to "Windows Boot Manager" and press Enter.
-
Reboot into your UEFI/BIOS.
-
Enable Secure Boot: These are specific instructions for Asus but something similar should work for other motherboards.
- Navigate to the "Secure Boot" menu.
- Set
OS Type
toWindows UEFI mode
. (This is key to making Windows report correctly while still allowing Omarchy to boot). - Ensure
Secure Boot Mode
is set toCustom
. - Finally, set the main
Secure Boot
option toEnabled
. - Save Changes and Exit.
Phase 6: Verification
Your system will now boot to the Omarchy splash screen.
-
Verify Secure Boot Status:
- In Omarchy, run
sbctl status
. It must saySecure Boot: ✓ Enabled
. - Reboot and select Windows from the Limine menu. Open
msinfo32
. It must saySecure Boot State: On
.
- In Omarchy, run
comments