Windows not displayed in GRUB, I believe I overwrote the Windows boot partition?

I previously had a few different distros installed alongside Windows on two drives. I tried to consolidate back down to just openSUSE and Windows, and openSUSE works fine, but GRUB doesn’t offer the option to boot into Windows 10

If I remember correctly I installed GRUB to /dev/sdb, and deleted a small Windows partition that was at the start of the disk. I assumed that it was the bootloader for Windows and GRUB would be able to boot Windows from the second larger partition.

Here’s my fdisk output:



Device         Start       End   Sectors   Size Type
/dev/sda1  957243392 958291967   1048576   512M EFI System
/dev/sda2       2048 949823487 949821440 452.9G Linux filesystem
/dev/sda9  949823488 957243391   7419904   3.6G Microsoft basic data
/dev/sda12 958513152 976771068  18257917   8.7G Linux swap


Device     Boot     Start       End   Sectors   Size Id Type
/dev/sdb1  *         2048   1026047   1024000   500M  b W95 FAT32
/dev/sdb2         1026048 883443711 882417664 420.8G  7 HPFS/NTFS/exFAT
/dev/sdb3       975714304 976769023   1054720   515M 27 Hidden NTFS WinRE
/dev/sdb4       883443712 975714302  92270591    44G 83 Linux


That’s part of the “fdisk” output. It is missing the information on whether using GPT partitioning or DOS/MBR partitioning.

It looks as if “/dev/sda” is using GPT partitioning. And therefore I presume that Windows is using UEFI booting.

How is Tumbleweed booting? Is it using UEFI or is it using legacy MBR/BIOS booting?

If you are using legacy booting for openSUSE and UEFI booting for Windows, that would be the reason for no Windows boot entry. You need openSUSE to use UEFI booting if you want this to work.

I have two dual-boot partitions, each in a different drive, and grub can boot windows from either. Did you select “investigate alien OS” (or something similar) in yast’s bootloader module?

Note if fast disk is active in Windows osprober may not see it since the disk may be in essentially hibernate mode

Assuming can cause fatal trouble. In UEFI installations, Windows requires a small and particularly positioned Microsoft Reserved Partition. Is this what you deleted?

AFAIK W10 hibernate on shutdown, if you subsequently start openSUSE it will dump you to the terminal, due to the “dirty” NTFS filesystem. To fix this you only have to reboot into W10, and then restart (not shutdown) and boot openSUSE.

I never tried osprobe with W10 in hibernation, as I usually disable windows fastboot.

Here’s the full fdisk output

Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: EAAD72E0-8030-43E8-8E4A-357D8E61FB46

Device         Start       End   Sectors   Size Type
/dev/sda1  957243392 958291967   1048576   512M EFI System
/dev/sda2       2048 949823487 949821440 452.9G Linux filesystem
/dev/sda9  949823488 957243391   7419904   3.6G Microsoft basic data
/dev/sda12 958513152 976771068  18257917   8.7G Linux swap

Partition table entries are not in disk order.


Disk /dev/sdb: 465.78 GiB, 500107862016 bytes, 976773168 sectors
Disk model: Samsung SSD 750 
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x9c7024e0

Device     Boot     Start       End   Sectors   Size Id Type
/dev/sdb1  *         2048   1026047   1024000   500M  b W95 FAT32
/dev/sdb2         1026048 883443711 882417664 420.8G  7 HPFS/NTFS/exFAT
/dev/sdb3       975714304 976769023   1054720   515M 27 Hidden NTFS WinRE
/dev/sdb4       883443712 975714302  92270591    44G 83 Linux

Partition table entries are not in disk order.

I’m assuming there’s not much I can do to make Windows boot again without running another Windows install. Does anyone have a good idea on how I might be able to do so without losing all of my installed programs & settings on Windows?

I was thinking I can make a copy of the Windows partition I have now, re-install Windows, and overwrite the new Windows install partition with the copy. I’m hoping with this the new Windows loader will boot the old partition

Did you try booting Windows from the UEFI boot menu???

It is possible that you removed something Windows needs it really depends on how it was installed.

I tried using the boot disk selection in my BIOS, all of the options lead to GRUB

Based on that, it looks as if Windows is set to use legacy BIOS booting, while openSUSE is set to use UEFI booting.

Those do not mix.

Your simplest solution will be to switch openSUSE to use legacy BIOS booting. But when you do that, you will also need to switch your BIOS to CSM mode for booting.

To switch openSUSE to legacy booting, use: Yast Boot Loader

It should tell you that the boot loader is configured as GRUB2 for EFI
Change that to GRUB2.

Then check other details. It will probably be set to boot from MBR. If you are using “btrfs” that won’t work because you do not have a bios_grub partition. So set it to boot from a partition, and set it to write generic boot code to the MBR. Hmm, if you are using disk encryption, that won’t work either. There are other options in that case.

If you make that change, your system mayl be able to boot with either UEFI or legacy BIOS/MBR booting. But you would only be able to boot Windows using the legacy booting. And you probably won’t get a Windows boot menu entry until you boot your system with legacy booting and then run

grub2-mkconfig -o /boot/grub2/grub.cfg

Feel free to discuss any concerns or questions before you make changes.