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.
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.
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?
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.