Dual Booting Windows 10 and Fedora 34

I’m sure there is more than one way to do it. To keep the number of partitions to be managed to a minimum, my personal preference would be to mount the ESP partition to /boot so that the kernel and initramfs would be copied to that partition on installation/upgrade. Unfortunately, grub does not work with that layout (it wants to put a special “symlink” file under /boot, but because the ESP (and therefore /boot) has to be formatted with a FAT file system, symlinks do not work. If you are willing to switch to another bootloader (i.e. systemd-boot), it can be done. I haven’t done a dual-boot with MS Windows configuration with systemd-boot, but it looks like systemd-boot does support that:

Excerpted from systemd-boot - ArchWiki

systemd-boot will automatically check at boot time for Windows Boot Manager at the location /EFI/Microsoft/Boot/Bootmgfw.efi, UEFI shell /shellx64.efi and EFI Default Loader /EFI/BOOT/bootx64.efi, as well as specially prepared kernel files found in /EFI/Linux/. When detected, corresponding entries with titles auto-windows, auto-efi-shell and auto-efi-default, respectively, will be generated. These entries do not require manual loader configuration. However, it does not auto-detect other EFI applications (unlike rEFInd), so for booting the Linux kernel, manual configuration entries must be created.

You would need to be sure that the ESP is sufficiently large for the bootloaders and the kernels and initramfses, but other than that, it shouldn’t be too difficult to create such a layout. It would have to be done by hand though. Here is a video that I made a while back demonstrating a systemd-boot with Fedora Linux installation that might give you some ideas about how to create such a system:

P.S. I have no experience with LUKS encryption. But it appears that it simply requires passing a few extra parameters to the kernel/dracut, so I think it should work fine with systemd-boot.

P.P.S. In the video demo above, I deleted all the contents of the ESP before installing the systemd-boot boot loader. You wouldn’t want to do that if your ESP contains your MS Windows boot loader :slightly_smiling_face: .

2 Likes