Tumbleweed not showing Windows 10 in grub menu

Hi,

I am a new user to OpenSuse and this is the first time I am trying OpenSuse tumbleweed on my HP laptop. I am using Opensuse tumbleweed as I prefer rolling release distributions.

The installation went through fine without any issues. However, after the installation, I am not seeing Windows 10 as a boot option in my grub2 menu. I have the Secure boot disabled in BIOS.

I tried the command “grub2-mkconfig -o /boot/grub2/grub.cfg”. However, it did not find the windows installation. I checked the folder /boot/efi/EFI folder and I see that there is a Microsoft/boot folder under it.

I ran the command “sudo os-prober” and it did not provide any output.

I ran the YAST boot loader also. Again, no luck. Yast boot loader shows “grub2 for EFI”.

Can someone help?

Thanks,
pnb.

I don’t know why it isn’t showing up. Perhaps that has to do with how Windows was installed.

Windows 8.1 shows up in the menu here. The relevant lines from “/boot/grub2/grub.cfg” are:


menuentry 'Windows Boot Manager (on /dev/sda1)' --class windows --class os $menuentry_id_option 'osprober-efi-960A-3282' {
        insmod part_gpt
        insmod fat
        set root='hd0,gpt1'
        if  x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1  960A-3282
        else
          search --no-floppy --fs-uuid --set=root 960A-3282
        fi
        chainloader /efi/Microsoft/Boot/bootmgfw.efi
}

Here, “960A-3282” is the UUID of the EFI partition.

You can perhaps experiment with something similar. And if that works, append to the end of “/etc/grub.d/40_custom” so that you don’t have to edit “grub.cfg” each time.

To show Windows: All OS must us same boot method EFI or MBR. Mixing causes problems. Fast Boot in Windows MUST BE turned off It leaves the Windows partitions in is an unclosed condition and thus not viewable/bootable from Linux. Windows must not use Dynamic disks. Again Not accessible from Linux.

I am not seeing an entry for Windows in my grub.cfg file. Please find the list of entries below.


### BEGIN /etc/grub.d/10_linux ###
menuentry 'openSUSE Tumbleweed'  --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-9fed23c0-58b7-470c-9a0d-0b76b5a9a61c' {
        load_video
        set gfxpayload=keep
        insmod gzio
        insmod part_gpt
        insmod ext2
        if  x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root  9fed23c0-58b7-470c-9a0d-0b76b5a9a61c
        else
          search --no-floppy --fs-uuid --set=root 9fed23c0-58b7-470c-9a0d-0b76b5a9a61c
        fi
        echo    'Loading Linux 5.12.0-2-default ...'
        linuxefi /boot/vmlinuz-5.12.0-2-default root=UUID=9fed23c0-58b7-470c-9a0d-0b76b5a9a61c  splash=silent quiet mitigations=auto
        echo    'Loading initial ramdisk ...'
        initrdefi       /boot/initrd-5.12.0-2-default
}
submenu 'Advanced options for openSUSE Tumbleweed' --hotkey=1 $menuentry_id_option 'gnulinux-advanced-9fed23c0-58b7-470c-9a0d-0b76b5a9a61c' {
        menuentry 'openSUSE Tumbleweed, with Linux 5.12.0-2-default' --hotkey=2 --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.12.0-2-default-advanced-9fed23c0-58b7-470c-9a0d-0b76b5a9a61c' {
                load_video
                set gfxpayload=keep
                insmod gzio
                insmod part_gpt
                insmod ext2
                if  x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root  9fed23c0-58b7-470c-9a0d-0b76b5a9a61c
                else
                  search --no-floppy --fs-uuid --set=root 9fed23c0-58b7-470c-9a0d-0b76b5a9a61c
                fi
                echo    'Loading Linux 5.12.0-2-default ...'
                linuxefi /boot/vmlinuz-5.12.0-2-default root=UUID=9fed23c0-58b7-470c-9a0d-0b76b5a9a61c  splash=silent quiet mitigations=auto
                echo    'Loading initial ramdisk ...'
                initrdefi       /boot/initrd-5.12.0-2-default
        }
        menuentry 'openSUSE Tumbleweed, with Linux 5.12.0-2-default (recovery mode)' --hotkey=3 --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.12.0-2-default-recovery-9fed23c0-58b7-470c-9a0d-0b76b5a9a61c' {
                load_video
                set gfxpayload=keep
                insmod gzio
                insmod part_gpt
                insmod ext2
                if  x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root  9fed23c0-58b7-470c-9a0d-0b76b5a9a61c
                else
                  search --no-floppy --fs-uuid --set=root 9fed23c0-58b7-470c-9a0d-0b76b5a9a61c
                fi
                echo    'Loading Linux 5.12.0-2-default ...'
                linuxefi /boot/vmlinuz-5.12.0-2-default root=UUID=9fed23c0-58b7-470c-9a0d-0b76b5a9a61c  
                echo    'Loading initial ramdisk ...'
                initrdefi       /boot/initrd-5.12.0-2-default
        }
        menuentry 'openSUSE Tumbleweed, with Linux 5.11.16-1-default'  --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.11.16-1-default-advanced-9fed23c0-58b7-470c-9a0d-0b76b5a9a61c' {
                load_video
                set gfxpayload=keep
                insmod gzio
                insmod part_gpt
                insmod ext2
                if  x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root  9fed23c0-58b7-470c-9a0d-0b76b5a9a61c
                else
                  search --no-floppy --fs-uuid --set=root 9fed23c0-58b7-470c-9a0d-0b76b5a9a61c
                fi
                echo    'Loading Linux 5.11.16-1-default ...'
                linuxefi /boot/vmlinuz-5.11.16-1-default root=UUID=9fed23c0-58b7-470c-9a0d-0b76b5a9a61c  splash=silent quiet mitigations=auto
                echo    'Loading initial ramdisk ...'
                initrdefi       /boot/initrd-5.11.16-1-default
        }
        menuentry 'openSUSE Tumbleweed, with Linux 5.11.16-1-default (recovery mode)' --hotkey=1 --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.11.16-1-default-recovery-9fed23c0-58b7-470c-9a0d-0b76b5a9a61c' {
                load_video
                set gfxpayload=keep
                insmod gzio
                insmod part_gpt
                insmod ext2
                if  x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root  9fed23c0-58b7-470c-9a0d-0b76b5a9a61c
                else
                  search --no-floppy --fs-uuid --set=root 9fed23c0-58b7-470c-9a0d-0b76b5a9a61c
                fi
                echo    'Loading Linux 5.11.16-1-default ...'
                linuxefi /boot/vmlinuz-5.11.16-1-default root=UUID=9fed23c0-58b7-470c-9a0d-0b76b5a9a61c  
                echo    'Loading initial ramdisk ...'
                initrdefi       /boot/initrd-5.11.16-1-default
        }
}


Unfortunately, the laptop came with Windows 10 and I am not sure how it was installed. I will try to boot into Windows 10 by selecting the boot option from BIOS and see if the fastboot is enabled.

What will happen if I change the option “grub2 for EFI” to “Grub2” in yast boot loader? Does it messup anything?

Could mess up things. Windows 10 is probably installed EFI not MBR unless you maybe installed it. There should be a small EFI boot partition if installed EFI boot Show **sudo fdisk -l **(small L not one)

Windows defaults to fast boot on in most cases so that is probably the problem. If it is on that turn off you will need to reinstall grub to see Windows. In openSUSE start yast go to boot loader be sure that Probe foreign OS is set on third tab. You need to make a change then change it back to trick Yast into rebuilding grub.

I have disabled “fast startup” option from Windows 10. Booted into OpenSuse, launched yast boot loader, checked the option “Probe for Foreign OS”. Still no luck.

The EFI partition is there as /dev/nvme0pn1 or something like that.

The laptop has an NVME SSD drive with 32GB Optane memory. Could that be an issue?

Please show use fdisk -l
Use code tags here (# in menu)
Since we can not look over your shoulder we like to see what you are seeing.:wink:

Can you mount the Windows directory?? If you can’t see it then you can’t boot there either.

Check Windows to see how the partition is formatted ie is it RAID or Dynamic Disk format???

Since it appears that Linux is running and you can boot Windows from the UEFI/BIOS I doubt that the drive type has any effect on booting across OS.

Sorry about that. Below is the output of “sudo fdisk -l”.


guest@tumbleweed:~> sudo fdisk -l
[sudo] password for root: 
Disk /dev/nvme0n1: 476.94 GiB, 512110190592 bytes, 1000215216 sectors
Disk model: INTEL HBRPEKNX0202AH                    
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: E7357B32-0F7B-40EA-A00C-DD6549636018

Device             Start        End   Sectors  Size Type
/dev/nvme0n1p1      2048     534527    532480  260M BIOS boot
/dev/nvme0n1p2    534528     567295     32768   16M Microsoft reserved
/dev/nvme0n1p3    567296  734668514 734101219  350G Microsoft basic data
/dev/nvme0n1p4 734668800  755890378  21221579 10.1G Linux swap
/dev/nvme0n1p5 755892224  860907283 105015060 50.1G Linux filesystem
/dev/nvme0n1p6 860907520  999098413 138190894 65.9G Linux filesystem
/dev/nvme0n1p7 999104512 1000198143   1093632  534M Windows recovery environment


Disk /dev/nvme1n1: 27.25 GiB, 29260513280 bytes, 57149440 sectors
Disk model: INTEL HBRPEKNX0202AHO                   
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Here is the output of “sudo blkid”


guest@tumbleweed:~> sudo blkid
/dev/nvme0n1p1: LABEL_FATBOOT="SYSTEM" LABEL="SYSTEM" UUID="703E-EA07" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="ec29cc78-3215-4f03-85e4-09c5cf60bb6a"
/dev/nvme0n1p2: PARTLABEL="Microsoft reserved partition" PARTUUID="b2576a3b-5b3d-422b-9242-da0c94a78aff"
/dev/nvme0n1p3: LABEL="Windows" BLOCK_SIZE="512" UUID="1E92299B92297903" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="d549ca26-3b2b-45fb-a3e9-20d19a344a0f"
/dev/nvme0n1p4: UUID="3c5a21be-690d-4293-b50a-d58389c94dc7" TYPE="swap" PARTLABEL="Basic data partition" PARTUUID="30dd1996-a561-11eb-a7af-aa517519dab9"
/dev/nvme0n1p5: UUID="9fed23c0-58b7-470c-9a0d-0b76b5a9a61c" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="a8f47194-3b43-ef41-a524-fcf448f2c11f"
/dev/nvme0n1p6: UUID="5dc356be-4f8e-4cdd-8964-da056915a56e" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="e06db115-2d0b-4f41-9a6e-ee8e84b74287"
/dev/nvme0n1p7: LABEL="Windows RE tools" BLOCK_SIZE="512" UUID="D4EEC43FEEC41B9C" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="e919f9fa-5f97-4f61-9dd9-f0e35d777062"
/dev/nvme1n1: TYPE="isw_raid_member"

This is wrong in view of

guest@tumbleweed:~> sudo blkid
/dev/nvme0n1p1: LABEL_FATBOOT=“SYSTEM” LABEL=“SYSTEM” UUID=“703E-EA07” BLOCK_SIZE=“512” TYPE=“vfat” PARTLABEL=“EFI system partition” PARTUUID=“ec29cc78-3215-4f03-85e4-09c5cf60bb6a”

os-prober checks for partition type and so skips this filesystem. You should change partition type to EFI system partition.

@arvidjaar, thanks for your pointer.

I have checked the “esp” flag on the EFI system partition with gparted and then updated the boot loader options with Yast boot loader and now OpenSuse is showing Windows 10 as a boot option.

Again, thanks for your help.

I had a similar issue showing other Linux distros at boot. Came across two options. Hit esc during post allows you to pull up a boot menu that should give you the option to boot into windows or the hdd windows is stored on. Second, install refind. It runs before the boot process allowing you to boot just about anything. You could do away with Windows completely and just run it in a virtual machine though. That’s what I ended up doing lol.

I was getting very frustrated with my SSD/NVME setup, and having very little luck. Finally, I went to the EFI partition on the windows drive (in Dolphin, no less), and copied the “Microsoft” folder to /boot/efi/EFI.

Ran os-prober again, and it found it! grub2-mkconfig added it to the menu, and it works great.