Windows UEFI boot not working with two-disk dual boot with Fedora 40

I installed a new nvme drive and successfully cloned my Windows install to it with the original intention of simply using the original drive (smaller nvme) as extra storage but decided to install Fedora Workstation on the original drive. Since creating the install media for Fedora my machine will not boot to Windows. I got Fedora installed successfully on the original drive and have tried several ways to get back into the Windows install:

  • Reinstall Grub to trigger reconfiguration
  • Enter Windows boot through one-time boot menu
  • Change boot order
  • Create Windows install media
    • Attempt repair (provided BitLocker key)
      • Startup Repair
      • Attempt to rebuild boot configuration data via bootrec /rebuildbcd but drive isn’t accessible
    • Attempt full install (needs to be run from within Windows)
  • Create Lenovo install media (aborted because it says it will wipe the drive, but may just do this)
  • Remove original drive

Nothing has changed that I get a BSOD with error code 0xc000000e.

Here are some resources I’ve considered:

https://www.linuxquestions.org/questions/linux-newbie-8/after-installing-fedora-windows-won’t-boot-4175684539/
https://answers.microsoft.com/en-us/windows/forum/all/0xc000000e-error/eb0d77c5-0455-406a-b9a2-fd97778d4606

I have run several commands from the various links. Here are the relevant outputs:

$ sudo ls /boot/efi/EFI
BOOT  fedora
$ sudo fdisk -l
Disk /dev/nvme1n1: 238.47 GiB, 256060514304 bytes, 500118192 sectors
Disk model: KBG50ZNT256G LS KIOXIA                  
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 5B89BCD4-89B9-4F2E-A342-73EB6103F9D9

Device           Start       End   Sectors   Size Type
/dev/nvme1n1p1    2048   1230847   1228800   600M EFI System
/dev/nvme1n1p2 1230848   3327999   2097152     1G Linux extended boot
/dev/nvme1n1p3 3328000 500117503 496789504 236.9G Linux filesystem


Disk /dev/nvme0n1: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: Samsung SSD 990 EVO 1TB                 
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 85282D5D-1895-44DC-A081-973D91905555

Device              Start        End    Sectors   Size Type
/dev/nvme0n1p1       2048     534527     532480   260M EFI System
/dev/nvme0n1p2     534528     567295      32768    16M Microsoft reserved
/dev/nvme0n1p3     567296 1949425663 1948858368 929.3G Microsoft basic data
/dev/nvme0n1p4 1949425664 1953521663    4096000     2G Windows recovery environm
$ sudo lsblk
NAME                                          MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
zram0                                         252:0    0   6.9G  0 disk  [SWAP]
nvme1n1                                       259:0    0 238.5G  0 disk  
├─nvme1n1p1                                   259:1    0   600M  0 part  /boot/efi
├─nvme1n1p2                                   259:2    0     1G  0 part  /boot
└─nvme1n1p3                                   259:3    0 236.9G  0 part  
  └─luks-ee9cbc7c-1e58-4e2d-85fd-cd27565896fe 253:0    0 236.9G  0 crypt /home
                                                                         /
nvme0n1                                       259:4    0 931.5G  0 disk  
├─nvme0n1p1                                   259:5    0   260M  0 part  
├─nvme0n1p2                                   259:6    0    16M  0 part  
├─nvme0n1p3                                   259:7    0 929.3G  0 part  
└─nvme0n1p4                                   259:8    0     2G  0 part  
$ sudo blkid
/dev/nvme0n1p3: TYPE="BitLocker" PARTLABEL="Basic data partition" PARTUUID="d7a2dd61-8aec-4b11-8cb6-34ce72de0354"
/dev/nvme0n1p1: LABEL="SYSTEM_DRV" UUID="9A86-E5DF" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="b55a768e-9c4b-4fd5-842b-406482c823f7"
/dev/nvme0n1p4: LABEL="WINRE_DRV" BLOCK_SIZE="512" UUID="9E9287CE9287A8FB" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="6596ae61-1508-44a7-a6fd-04521f826e28"
/dev/mapper/luks-ee9cbc7c-1e58-4e2d-85fd-cd27565896fe: LABEL="fedora" UUID="58539db7-3756-4fda-af0f-6c765518653e" UUID_SUB="b10b894e-afbc-42f0-a046-ae535d563c01" BLOCK_SIZE="4096" TYPE="btrfs"
/dev/nvme1n1p2: UUID="9246abd7-b8d7-43f6-a5d4-482fe3487726" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="5988ce54-9cd6-4d6c-8b51-bb42a3634e63"
/dev/nvme1n1p3: UUID="ee9cbc7c-1e58-4e2d-85fd-cd27565896fe" TYPE="crypto_LUKS" PARTUUID="8907f67a-8b52-48f3-8c53-03415ba9c820"
/dev/nvme1n1p1: UUID="DD8A-EC06" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="bf886106-c07b-422a-9022-bf9359009e98"
/dev/zram0: LABEL="zram0" UUID="620c0480-8e22-4246-8ed4-ae3c526c7cb9" TYPE="swap"
/dev/nvme0n1p2: PARTLABEL="Microsoft reserved partition" PARTUUID="34c59a40-1771-42f4-b250-212c4fc60d4f"
$ sudo mount /dev/nvme0n1p4
mount: /dev/nvme0n1p4: can't find in /etc/fstab.
$ efibootmgr -v
...
Boot0000* Windows Boot Manager  HD(1,GPT,b55a768e-9c4b-4fd5-842b-406482c823f7,0x800,0x82000)/\EFI\Microsoft\Boot\bootmgfw.efiRC
      dp: 04 01 2a 00 01 00 00 00 00 08 00 00 00 00 00 00 00 20 08 00 00 00 00 00 8e 76 5a b5 4b 9c d5 4f 84 2b 40 64 82 c8 23 f7 02 02 / 04 04 46 00 5c 00 45 00 46 00 49 00 5c 00 4d 00 69 00 63 00 72 00 6f 00 73 00 6f 00 66 00 74 00 5c 00 42 00 6f 00 6f 00 74 00 5c 00 62 00 6f 00 6f 00 74 00 6d 00 67 00 66 00 77 00 2e 00 65 00 66 00 69 00 00 00 / 7f ff 04 00
    data: 52 43
Boot0001* Fedora        HD(1,GPT,bf886106-c07b-422a-9022-bf9359009e98,0x800,0x12c000)/\EFI\fedora\shim.efiRC
      dp: 04 01 2a 00 01 00 00 00 00 08 00 00 00 00 00 00 00 c0 12 00 00 00 00 00 06 61 88 bf 7b c0 2a 42 90 22 bf 93 59 00 9e 98 02 02 / 04 04 2e 00 5c 00 45 00 46 00 49 00 5c 00 66 00 65 00 64 00 6f 00 72 00 61 00 5c 00 73 00 68 00 69 00 6d 00 2e 00 65 00 66 00 69 00 00 00 / 7f ff 04 00
    data: 52 43
...

It seems that most of the Fedora-related links are about single-drive installs and several mention either BIOS or legacy with UEFI so I could be chasing potential causes (and fixes) that don’t apply, but at this point I am lost and about to just obliterate my Windows install, but I would prefer not to.

Only one disk is checked for the UEFI boot code.
And it is likely the original disk’s UEFI boot partition that will be used.

Maybe you wiped out the windows boot code on the original disk when you installed Fedora on it?

I am not sure what would have caused it, but I suspect you are right. Maybe the clone didn’t work as well as I had thought, good enough for a single boot, but not for dual? I was just able to boot into Windows after seeing this response to another thread. I had tried the automated boot repair tool provided on the Windows install media, but following the Using BCDBoot to Manually Repair EFI Bootloader in Windows section of this linked resource worked. Now Grub seems to successfully point to my Windows boot config so I can leave Fedora as the main boot, but I am having to enter my Bitlocker recovery key each time I boot into Windows, but I’m pretty sure I ran across some other threads about that issue.

Thanks for the reply!

Odd. I know that you must enter bitlocker codes the first time you setup dual boot.

But Windows should update its secure boot measures and not ask each boot as you describe.