The problem
Before I switched to Omarchy, I was running omakase-blue on one NVME drive, and Windows on another.
Part of this is because I want to use full disk encryption, and part of this is because I was originally playing with Project Bluefin, which doesn’t support dual-boot off of a single disk.
I installed Omarchy via online ISO, and pointed it at my Linux drive.
After it installed, I no longer could boot into Windows. My BIOS didn’t even show the 2nd NVME drive as a boot option.
The solution
After some digging, I figured out a way to get things back without needing to reinstall any operating systems. My system looked like this after the Omarchy install:
❯ lsblk --output NAME,PTTYPE,PARTLABEL,FSTYPE,FSVER,LABEL,FSSIZE,FSAVAIL,FSUSE%,MOUNTPOINTS
NAME PTTYPE PARTLABEL FSTYPE FSVER LABEL FSSIZE FSAVAIL FSUSE% MOUNTPOINTS
zram0 swap 1 zram0 [SWAP]
nvme0n1 gpt
├─nvme0n1p1 gpt vfat FAT32 2G 1.8G 9% /boot
└─nvme0n1p2 gpt crypto_LUKS 2
└─root btrfs 1.8T 1.8T 2% /var/log
/home
/var/cache/pacman/pkg
/
nvme1n1 gpt
├─nvme1n1p1 gpt Microsoft reserved partition
├─nvme1n1p2 gpt Basic data partition ntfs
└─nvme1n1p3 gpt ntfs
That is, the vfat, FAT32 partition with the bootloader was on nvme0n1, and it didn’t seem there was any corresponding partition on nvme1n1.
The good news is that this indicated that I could probably just restore the required boot files to nvme0n1p1 for Windows and be on my way.
Repairing the Windows bootloader files
To do so, I used Hiren’s BootCD PE on a USB drive with Ventoy.
Once in the Windows PE environment, we can restore the files with diskpart and bcdboot in the command prompt.
diskpart
> list volumes
# find the fat32 one, let's call it X
> select volume X
> assign letter K:
Now that we’ve assigned a letter, we can fix the files:
bcdboot C:\Windows /s K: /f ALL
where /s specifies the volume letter of the system partition, and /f specifies the firmware type (ALL copies all of them).
At this point, I could once again boot from this drive and land in Windows.
Adding Windows to Limine
But, we could do even better!
Having to use the BIOS boot menu is annoying: you typically have to spam an F-key at startup, and if you miss your opportunity, need to restart again.
It would be nice to be able to just boot to the same bootloader and select Windows, like in a traditional single-drive, dual-boot setup.
Turns out that isn’t hard, since Omarchy uses Limine out of the box.
In Linux, we can just edit the boot config.
sudoedit /boot/limine.conf
Then, I added the following entry after the Omarchy ones, and before the EFI fallback.
/Windows
comment: Windows
comment: order-priority=40
protocol: efi
path: boot():/EFI/Microsoft/Boot/bootmgfw.efi
With this, I then configured my BIOS to with Limine as the first boot option, and disabled the others. Now, it boots to Limine on startup, and my Windows drive is once again an easy option to select. Nice.