Windows not shown in Grub (Windows and Fedora installed on separate SSDs)

I have the same problem and I tried these steps but the only benefit I got from it was accessing the GRUB menu again, but it still does not contain Windows option.

I tried to set the GRUB_ENABLE_BLSCFG value to false and repeat the mkconfig command, but it still doesn’t work.

Can you recommend something? By the way I have Windows and Fedora on separate SSD drives, I don’t know whether it matters or not.

1 Like

It does matter if each has its own efi partition.

1 Like

And how can I see my other SSD drive’s partitions from grub?

You can’t, but can only access it by the way grub sees it.

There are 2 ways to solve this (or actually 3)

The third is to use the bios boot menu and select which drive to boot. This will work right now without changes to grub.

The cleanest which avoids potential future issues is to combine the 2 efi partitions, fix the mount of /boot/efi so it reflects the efi partition you have merged to, then use mkconfig to update grub which will automatically use os-prober and locate windows to create the entry in grub for it to be added to the menu.

The next option is to edit /etc/grub.d/40-custom and create a menu entry there that will boot windows from its own location without altering the existing efi partitions.

My laptop, which dual boots from a single nvme drive, has the following entry in /boot/grub2/grub.cfg for booting windows.

### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Windows Boot Manager (on /dev/nvme0n1p1)' --class windows --class os $menuentry_id_option 'osprober-efi-42F8-BF3E' {
        insmod part_gpt
        insmod fat
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root  42F8-BF3E
        else
          search --no-floppy --fs-uuid --set=root 42F8-BF3E
        fi
        chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}

I expect you could create a similar entry in /etc/grub.d/40_custom that would point to the proper drive and partition and boot windows from the grub menu after running grub2-mkconfig.
Note the search line before the chainloader line. I think that format is critical with the UUID used for the efi partition of choice.

1 Like

Actually, neither is the bios boot manager can see the other SSD drive, which is curios to me.

From file manager I can see all of the partitions that my other drive has, so for instance I know that Windows is located on /dev/sda5. From this information, is it possible to recover the boot menu?

I also found that my /dev/sda6 partition type is Windows recovery environment, can it help anything?

That tells me that the partitions have been renumbered from what they were with the windows install.

A default windows install creates 4 partitions.
sda1 → efi
sda2 → reserved
sda3 → OS
sda4 → recovery

Usually when installing dual boot on a windows drive there is no problem as long as you use windows to shrink the windows drive partition (sda3) then install in the freed up space. The install creates partitions that are numbered out of drive location order but the system works that way.

However, it is well known that activities that renumber the partitions on the windows boot drive cause windows to barf when trying to boot.

I think the only way to recover is to do a windows recovery, possibly by using a windows install media to start the recovery since partition location is now unknown to the windows boot loader. I suspect you will need to recover the windows install, then by booting to live linux media redo a grub2-mkconfig in a chroot environs to recover the linux boot.

Jeff V, could you explain, what is the string " 42F8-BF3E"?

In that post, the location of the windows boot loader is in the efi partition where it resides. That number is the UUID of the efi partition containing the windows boot loader.

This contains some info for working with grub, but does not address the disconnect when you have 2 efi partitions.