While deploying Omarchy, I ran into a classic hurdle with NVIDIA: a stubborn black-screen boot loop on a system requiring alternative display settings.
While the installed Omarchy system ultimately relies on Limine as its bootloader, the live installation environment itself boots via GRUB. To bypass display conflicts during installation, adding a dedicated “Safe Graphics” (nomodeset) boot option to the ISO’s GRUB configuration does the trick.
nomodeset tells the kernel not to load KMS drivers during the live session. You get an ugly, slow, framebuffer display — and a visible installer. After install, Omarchy’s normal driver path can take over. This is a live ISO workaround, not something I want permanently on the installed system.
Here is a complete step-by-step technical guide on how to extract an ISO into your working directory, modify its GRUB boot parameters, repackage it, and flash it to a USB drive. I also call out the two places this procedure is easy to get wrong: the xorriso rebuild flags and the path you pass to dd.
If you already installed and only need apps, you do not need this post. See DaVinci Resolve on Omarchy or Antigravity on Arch. This is strictly “the USB never shows a desktop.”
Issue I opened for an official Safe Graphics entry: https://github.com/basecamp/omarchy/issues/7045
When to use this (and when not to)
Use it when: the stock Omarchy ISO hangs on a black screen, a blinking cursor, or a frozen splash on NVIDIA (and occasionally on odd Intel/AMD laptops). Firmware is set to UEFI. Other Arch ISOs boot on the same machine, or Windows still works — so the GPU is not dead.
Do not use it when: the USB is not even in the firmware boot list (wrong flash, Secure Boot blocking an unsigned ISO, USB 3 vs USB 2 port). Try another stick and dd status first. nomodeset will not fix a non-bootable image.
After install: if the installed system is still black, that is a Limine/kernel-cmdline problem on disk, not this ISO patch. Add nomodeset once to confirm, then install proper NVIDIA packages and remove nomodeset so Hyprland can actually use the GPU. Leaving nomodeset on a daily driver is how you get a “working” desktop that cannot drive Resolve or a browser at a reasonable refresh rate.
Prerequisites & tools
Before getting started, make sure you have the following tools installed on your Linux workstation (Arch, Fedora, or Debian-based distributions):
xorriso(for ISO manipulation and rebuilding)bsdtaror7z(for reliable extraction of ISO contents including hidden boot catalogs)ddor Fedora Media Writer (for writing the final ISO to a USB drive)
On Fedora:
sudo dnf install xorriso bsdtar
On Arch / Omarchy (if you are repairing the ISO from a working box):
sudo pacman -S xorriso libarchive
bsdtar comes from libarchive. Also keep lsblk (util-linux) and enough disk for two copies of the ISO plus the extract tree. A 6 GB ISO is not a /tmp on a 4 GB tmpfs kind of job.
Download the official ISO from Omarchy’s site / GitHub releases and verify checksums if they publish SHA256. Rename it to omarchy.iso in ~/Downloads or adjust the commands.
Step 1: Create the working directory and extract the ISO image
To ensure everything maps cleanly for rebuilding later, extract the original Omarchy ISO straight into the ~/Downloads/iso-extracted directory structure:
- Create the target directories:
mkdir -p ~/Downloads/iso-extracted
- Extract the ISO contents using
bsdtar(which preserves permissions and hidden boot structures effectively):
bsdtar -xf ~/Downloads/omarchy.iso -C ~/Downloads/iso-extracted
NOTE: Replace
omarchy.isowith the actual ISO name.
Expected output: a tree that includes boot/grub/grub.cfg, an arch/ or equivalent live filesystem, and EFI/BOOT/. If grub.cfg is missing, you extracted a different image or used a tool that skipped boot files. 7z x is a fallback; I still prefer bsdtar for permissions.
ls ~/Downloads/iso-extracted/boot/grub/grub.cfg
ls ~/Downloads/iso-extracted/EFI/BOOT/
Step 2: Locate and modify the GRUB configuration
Navigate to your extracted directory to find and update the bootloader configuration files:
- Move into the working directory:
cd ~/Downloads/iso-extracted/boot/grub/
- Open
grub.cfgin your preferred text editor (e.g.,nvimornano). - Add a timeout. Default is set to 0. I set to 3 in this example. (Lines 47-50)
# Set default menu entry
default=archlinux
timeout=3
timeout_style=hidden
timeout=0 plus hidden means you never see a menu. You cannot pick Safe Graphics if you cannot see the menu. timeout=3 is a compromise; use timeout=10 and timeout_style=menu if you want the menu visible without mashing keys.
- Add a new menu entry incorporating the
nomodesetparameter to force fallback VESA/UEFI framebuffers. (Use Line 55-59 as an example.) Copy thelinux/initrdpaths andarchisosearchuuidfrom the existing working menuentry in your ISO. Those UUIDs and kernel filenames change between Omarchy releases. The snippet below is from the ISO I patched; yourvmlinuz-linux-t2/ uuid must match your tree.
menuentry "Omarchy (Safe Graphics) (x86_64, ${archiso_platform})" --class arch --class gnu-linux --class gnu --class os --id 'archlinux' {
set gfxpayload=keep
linux /arch/boot/x86_64/vmlinuz-linux-t2 archisobasedir=arch archisosearchuuid=2026-08-25-11-17-12-00 quiet splash xe.enable_panel_replay=0 initramfs_async=0 nomodeset
initrd /arch/boot/x86_64/initramfs-linux-t2.img
}
Why not replace the default entry? Keep the stock entry as the default for machines that already boot. Add Safe Graphics as a second entry (give it a unique --id if GRUB complains about duplicates — e.g. 'archlinux-nomodeset'). If both share --id 'archlinux', behavior depends on GRUB version. Prefer a unique id on the new entry.
Confirm the kernel files exist:
ls ~/Downloads/iso-extracted/arch/boot/x86_64/
If your ISO uses vmlinuz-linux without -t2, use that name. Blind copy from this post onto a newer Quattro ISO is the fastest way to a kernel panic instead of a black screen.
Step 3: Rebuild the ISO image
Once your modifications are saved to the GRUB configuration file, you need to repackage the ~/Downloads/iso-extracted directory back into a bootable ISO image using xorriso.
The first xorriso line I used while documenting this was incomplete (it even had a stray cd in the argument list). A live Arch-style ISO needs an El Torito / EFI boot image, not just -e pointed at a file and a volume id. Use a rebuild that reuses the original ISO as a boot template when you can. From a directory that contains the original omarchy.iso:
cd ~/Downloads/iso-extracted
xorriso -as mkisofs \
-iso-level 3 \
-full-iso9660-filenames \
-volid "OMARCHY_MODIFIED" \
-output ~/Downloads/omarchy-modified.iso \
-eltorito-boot isolinux/isolinux.bin \
-eltorito-catalog isolinux/boot.cat \
-no-emul-boot -boot-load-size 4 -boot-info-table \
-eltorito-alt-boot \
-e EFI/BOOT/BOOTx64.EFI \
-no-emul-boot \
.
If isolinux/ does not exist on your Omarchy ISO, do not invent it. Inspect the original:
xorriso -indev ~/Downloads/omarchy.iso -report_el_torito plain
ls -R ~/Downloads/iso-extracted | head
Then copy the El Torito layout xorriso -report_el_torito printed. Another reliable pattern is xorriso’s bootable image extraction / graft from the original ISO (-isohybrid-mbr, grub2-boot-info, etc., depending on how Omarchy built that week). The important part: the rebuilt ISO must still be UEFI-bootable. If firmware shows the USB but GRUB never starts, the rebuild dropped El Torito — not your nomodeset line.
Write the new ISO outside the extract tree (~/Downloads/omarchy-modified.iso) so you do not include the output ISO inside itself.
Sanity check size:
ls -lh ~/Downloads/omarchy-modified.iso ~/Downloads/omarchy.iso
They should be in the same ballpark. A 2 MB output means you ran mkisofs against an empty directory.
Step 4: Flash the modified ISO to a USB drive
With the modified ISO ready, write it to your target USB flash drive using dd or flash it directly via Fedora Media Writer.
WARNING: Double-check your drive identifier using
lsblkbefore runningddto prevent overwriting your host operating system data!
# Identify your USB drive (e.g., /dev/sdX)
lsblk
# Flash the ISO (replace /dev/sdX with your actual target drive)
sudo dd if=~/Downloads/omarchy-modified.iso of=/dev/sdX bs=4M status=progress oflag=sync
Note the if= path: it matches the -output in Step 3. An earlier draft pointed dd at ~/omarchy-modified.iso while xorriso wrote under the extract directory — that combination copies the wrong file or copies nothing useful.
Unmount any automounted partition on that stick before dd. oflag=sync and status=progress let you see it finish; wait for the prompt before you yank the USB.
Fedora Media Writer / Etcher / pkexec GUI tools are fine if you pass them omarchy-modified.iso. Do not flash the unmodified original by habit.
Step 5: Boot and verify
- Insert the USB drive into your target machine.
- Reboot the system and enter your motherboard’s boot menu (F2, F9–F12, or Del depending on your hardware manufacturer).
- Select your USB device (ensuring UEFI boot mode is chosen if applicable).
- Select your newly added Safe Graphics GRUB entry. The system should now boot past the initial display handshake without hitting a black screen, allowing you to proceed smoothly with the installation. After install, Omarchy auto-detect drivers works great.
If the menu is hidden, mash Esc or Shift during GRUB like any other distro, or raise timeout and set timeout_style=menu in grub.cfg and rebuild again.
Expected live session: low resolution, maybe 1024×768, installer usable. Finish the Omarchy install. Reboot to disk. If the installed desktop is fine, you are done. If the installed desktop is black, boot with a temporary nomodeset on Limine, install NVIDIA drivers, then remove nomodeset from the installed cmdline.
Troubleshooting
- Still black with Safe Graphics: try
nomodesetplusnouveau.modeset=0on NVIDIA, or a different USB port. Some laptops only POST the installer on HDMI, not the internal panel. - GRUB: file not found: kernel path in
linux/initrddoes not match the ISO.lsthe extract tree. - UEFI rejects the USB: Secure Boot. Disable it for this install; Omarchy’s live chain is not always enrolled in your firmware’s key database.
- Installed system ignored your ISO patch: correct — you only patched the live environment. Good.
Conclusion
This is just a quick way to get Omarchy installed while we wait for the ISO team to implement the Safe Graphics boot option. Once you are in, treat NVIDIA like any Arch box: real drivers, then apps. For how Omarchy feels versus Fedora or Windows on the same class of PC, I wrote Omarchy 4 Quattro vs Fedora 44 and Omarchy vs Windows 11.
Best regards,
The Linux IT Guy