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