DEV Community

Cover image for Repair Windows EFI partition after a Linux installation
Nicolas Beauvais
Nicolas Beauvais

Posted on • Edited on • Originally published at invariance.dev

Repair Windows EFI partition after a Linux installation

I was exited to try the new Gnome 40 update on the latest Fedora beta release, and broke my Windows dual boot. I'm not sure how it happened but the /boot/efipartition did not contain any Windows files after installing Fedora, preventing os-prober to detect Windows and adding it to Grub2, I was also unable to boot Windows from the UEFI boot selector.

Fixing this took me way more time in internet digging than it should, so this blog article will serve my future self and other careless Linux dual boot enthusiast in case of missing Windows EFI files.

The first thing to do is to download Windows latest ISO file and create a bootable USB key. For this I used Balena Etcher which is the most shiny bootable USB maker tool that I could find.

After booting my laptop on the USB key with Windows, I tried an automatic repair which wiped my Fedora boot files in the /boot/efi partition, I had to reinstall Fedora, which in turn removed all Windows files again and leaving me back to my starting point, but 3 hours later.

Automatic repair was not what I needed, I had to dig deeper to fix that one. That's when I found the great BCDBoot command that helped me fix my EFI partition.

Boot your computer on the USB key and navigate to the command prompt, it should be something like:
Repair Computer > Troubleshoot > Advanced > Command Prompt

Once you are in the command prompt use the following command to show your partitions:

$ diskpart // Start a diskpart shell
diskpart> list disk  // List all disks
diskpart> sel disk <disk_id> // Select the disk with the EFI partition
diskpart> list vol // List all volumes
diskpart> sel vol <volume_id> // Select the EFI volume
diskpart> assign letter=F // Assign a letter to the EFI volume (I choosed F)
diskpart> exit
$ bcdboot C:\Windows /s F: /f ALL // Create all Windows boot files in F:
Enter fullscreen mode Exit fullscreen mode

Note that the ALL flag will create files for UEFI and Bios based boot system. You can find all the available option for the bcdboot command in the documentation.

I do not have much experience with the Windows shell so let me know if I missed something. In any case I learned something new during the weekend, and I'm glad I fixed my dual boot, I can now go back to playing Planet Zoo on Windows!

Top comments (2)

Collapse
 
luerhard profile image
Lukas Erhard

OMG, thank you so much. This saved me from a whole lot of trouble <3 You're the best!

Collapse
 
mehourka profile image
Mehourka

Thank you so much ! your post swiftly put an end to my torments.