No Windows installation seen by GRUB2

I have upgraded from 42.2 to 42.3.

There is a Windows 10 installed on a disk in the computer, but 42.3 does not see it to include in boot menus. I have checked that the Windows is bootable when it is marked in BIOS for the next boot in manual boot override section of BIOS’s menus.

I have run grub2-mkconfig -o /boot/grub2/grub.cfg and also tried to set up boot loader in Yast.

The boot mode is UEFI.

By adding debugging output to os-prober scripts, I have found the following.

It looks like /usr/bin/os-prober sees all partitions and foreign os-es.

But the /etc/grub.d/30_os-prober does not see any foreign os-es and thinks that os-prober’s ouput is empty. It exits here:

if -z “${OSPROBED}” ] ; then

empty os-prober output, nothing doing

exit 0
fi

In the same 30_os-prober, I had to do a manual correction by setting
pkgdatadir="/usr/share/grub2"

I have tried to boot with both CSM enabled and disabled; nothing changed.

How shall I proceed to debug?

Are both operating systems (MS Windows 10 + openSUSE 42.3) supposed to boot in UEFI mode?

If only openSUSE is installed to boot in UEFI mode then osprober will not find Windows 10 (and GRUB2 will not be able to start it). Mixed installs (UEFI and CSM) do not work.

If you do not know how MS Windows 10 is installed then just check “/boot/efi/efi” if there is a MS Windows bootloader for UEFI-booting installed. If there is no UEFI-bootloader for Windows then MS WINDOWS is installed to boot in CSM-mode.

In case your GRUB2-setup (for UEFI) is just messed up you can check this post https://forums.opensuse.org/showthread.php/528400-Repair-a-broken-UEFI-GRUB2-openSUSE-boot-scenario
Regards

susejunky

Where did you change it - in “/etc/grub.d/30_os-prober”?

In my openSUSE 42.3 installation “/etc/grub.d/30_os-prober” does not define “pkgdatadir” it just uses it. Why did you have to do that change? Did you receive any errors?

Regards

susejunky

Thanks.

There is a folder
/boot/efi/EFI/Microsoft/Boot

and there are five files there: MokManager.efi, bootx64.efi, fallback.efi, grubx64.efi, shim.efi.

The boot loader in Yast is set to “GRUB2 for EFI” and Secure Boot Support is enabled.

Where did you change it - in “/etc/grub.d/30_os-prober”?

In my openSUSE 42.3 installation “/etc/grub.d/30_os-prober” does not define “pkgdatadir” it just uses it. Why did you have to do that change? Did you receive any errors?

I changed the pkgdatadir definition to “/usr/share/grub2” in 30_os-prober script. When run without the definition and standalone (not called from another script), I was getting an error:


./30_os-prober: line 27: /grub-mkconfig_lib: No such file or directory

I found that there is only one grub-mkconfig_lib file in my computer, so adding the definition will not harm.


In case your GRUB2-setup (for UEFI) is just messed up you can check this post [https://forums.opensuse.org/showthread.php/528400-Repair-a-broken-UEFI-GRUB2-openSUSE-boot-scenario](https://forums.opensuse.org/showthread.php/528400-Repair-a-broken-UEFI-GRUB2-openSUSE-boot-scenario)

I began going through your manual, but I have two things different:

My computer boots, so I probably do not need to run Rescue.

I have a /boot partition (ext4) and /boot/efi (fat).

I will go through the manual again after implementing some of the changes.

That does not look like the MS Windows bootloader to me. On my machine there are files like

...
-rwxr-xr-x  1 root root 1252248  1. Jan 13:57 bootmgfw.efi
-rwxr-xr-x  1 root root 1236888  1. Jan 13:57 bootmgr.efi
-rwxr-xr-x  1 root root  115616 18. Mär 2017  bootspaces.dll
...

in “/boot/efi/EFI/Microsoft/Boot” and files like

...
-rwxrwxr-x 1 root root 1009016 12. Jan 14:21 grub.efi
-rwxrwxr-x 1 root root  124416 12. Jan 14:21 grubx64.efi
-rwxrwxr-x 1 root root 1166552 12. Jan 14:21 MokManager.efi
-rwxrwxr-x 1 root root 1164376 12. Jan 14:21 shim.efi
...

are placed in “/boot/efi/EFI/opensuse”. Is there a chance that you have more than one EFI system partition?

Please be aware that Repair a broken UEFI/GRUB2/openSUSE boot scenario - Forums Feedback - openSUSE Forums may not (fully) apply if you use a separat boot partition.

Regards

susejunky

I had to install GRUB2 loader instead of GRUB2-EFI.

All other measures did not help.

After that, Windows installation was easily recognized.