Boot entry for Windows is missing in dual boot installation

Hi,

I installed Leap 16.0 in addition to my existing Windows 11 OS. The installation worked alright, but now the boot loader only offers to boot Leap 16.0, but no Windows.

This is really odd, because I did nearly the same thing a month ago and Windows appeared alright then. The only difference is, I now used the space from another parallel Tumbleweed installation on the disk for the new /home, while last time I kept Tumbleweed as the 3rd system. At that time TWD disappeared from the boot menu after the first reboot, but Windows and Leap 16 both worked alright.
Here’s the link to my post from one month ago:
https://forums.opensuse.org/t/after-installing-leap-16-i-can-not-boot-my-parallel-twd-installation/192311

I used the same installation DVD as one month ago and I only used the three partitions that the 1st Leap 16 installation had used - Windows was kept unaltered.

As I read something similar here in the forum, I tried os-prober as root. The result is:
359.247065 ł DM multipath kernel driver not loaded

So, how can I get the Windows boot entry?

Thank you for your help!

Did you use grub-efi or grub-BLS ? BLS is the new default and precludes multi-boot. Why good question :roll_eyes:

you need to know what boot loader you use if it’s something other than grub2-efi you need to switch to grub2-efi and enable os-prober if it’s disabled

side note on uefi you can open the bios boot menu and chose windows
usually it’s f12 or f9

It calls itself “Gnu Grub version 2.12” and it looks as it always has. With a green bar to select entries and openSUSE on the left top corner. It looked exactly the same, when I installed from the same installation medium one month ago, but then, it had more entries.

How can I choose which boot loader is installed by the standard installation routine? The installation medium is the ISO image from the opensuse.org page.

In the KDE partition manager the boot partition is called
/boot/efi

@flo37 what does update-bootloader --show indicate?

Edit: and lsblk -f

grub2-efi

tNAME        FSTYPE      FSVER LABEL               UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
nvme0n1                                                                                               
├─nvme0n1p1 BitLocker   2     C: 06.05.2022       d2775440-41fd-XXX                
├─nvme0n1p2 ntfs                                  5CD0E4ABD0-XXX                                    
├─nvme0n1p3 ntfs              shared_data         645A6A715A6-XXX                                    
├─nvme0n1p4 vfat        FAT32                     F6CC-2XXX                                          
└─nvme0n1p5 crypto_LUKS 2                         2a5bc5c2-d4e9-4c61-8e7b-XXXX               
  └─cr_home xfs               my_home             50608567-62a2-4a1f-ad70-XXXX	        354.3G     2% /home
nvme1n1                                                                                               
├─nvme1n1p1 vfat        FAT32                     6A7A-XXXX                             504.6M     1% /boot/efi
├─nvme1n1p2                                                                                           
├─nvme1n1p3 ntfs                                  74C8DE31C8D-XXXX                                    
├─nvme1n1p4 crypto_LUKS 2                         e4ce7239-9f54-4146-XXX                
│ └─cr_root btrfs                                 306c1784-0ebd-4567-XXX                 15.2G    35% /var
│                                                                                                     /usr/local
│                                                                                                     /root
│                                                                                                     /srv
│                                                                                                     /opt
│                                                                                                     /boot/grub2/x86_64-efi
│                                                                                                     /boot/grub2/i386-pc
│                                                                                                     /.snapshots
│                                                                                                     /
└─nvme1n1p5 crypto_LUKS 2                         1d834f68-ff39-4f22-8c89-XXXX                
  └─cr_swap swap        1                         7f40c815-5e80-461d-ba5a-XXXX		              [SWAP]
ype or paste code here

Now, that I see it: Where it now says “BitLocker” I think, it said “Windows” in my last installation.

During installation, I only allowed the installer to modify:

nvme0n1p5 
nvme1n1p1 
nvme1n1p4
nvme1n1p5 

So you have two ESP devices, nvme0n1p4 which is probably the windows os…

What does the output from efibootmgr show?

For reference, here is my dual boot setup (only one ESP)…

lsblk -f

NAME        FSTYPE    FSVER LABEL    UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
sda                                                                                      
└─sda1      ext4      1.0   DATA     3ec5f735-c12f-4c42-8c35-a1721bd0124d  859.7G     1% /data
sr0                                                                                      
zram0       swap      1     zram0    f4ce9c17-a2bb-471b-ad0a-2e363bdb72df                [SWAP]
nvme0n1                                                                                  
├─nvme0n1p1 vfat      FAT32 ESP      86C1-B552                               3.9G     1% /boot/efi
├─nvme0n1p2                                                                              
├─nvme0n1p3 BitLocker 2              b6aac422-9c17-48e3-9197-c65467167560                
├─nvme0n1p4 ntfs                     70D06D09D06CD73E                                    
└─nvme0n1p5 btrfs           LP031726 0cfbf95a-5a4e-4e0e-af24-5e9ee5eb8b9a  681.5G     2% /var
                                                                                         /usr/local
                                                                                         /srv
                                                                                         /root
                                                                                         /home
                                                                                         /opt
                                                                                         /boot/grub2/x86_64-efi
                                                                                         /boot/grub2/i386-pc
                                                                                         /.snapshots
                                                                                         /
> efibootmgr
BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0000,0003,0002,9999
Boot0000* opensuse-secureboot   HD(1,GPT,adb7b20f-f490-439d-a93e-adc3f5bc75b4,0x3a800,0x100000)/File(\EFI\opensuse\shim.efi)
Boot0002* Solid State Disk      PciRoot(0x0)/Pci(0xe,0x0)/NVMe(0x1,5C-D2-E4-55-11-90-98-C6)/HD(4,GPT,0cdd634a-8bed-4f81-a38a-e5eb58c29046,0x49f98000,0x100000)0000424f
Boot0003* Solid State Disk      PciRoot(0x0)/Pci(0xe,0x0)/NVMe(0x2,5C-D2-E4-54-58-59-01-00)/HD(1,GPT,adb7b20f-f490-439d-a93e-adc3f5bc75b4,0x3a800,0x100000)0000424f
Boot9999* USB Drive (UEFI)      PciRoot(0x0)/Pci(0x1d,0x0)/USB(16,0)0000424f

@flo37 So in the system BIOS can you browse and add an efi file to boot? Else you can manually create pointing to the other esp partition.

There are several small partitions, of which I can’t really recognize the exact purpose.

/dev/nvme0n1p2   ntfs  is 1.11 GiB
/dev/nvme0n1p4  fat32  is 512 MiB   (might have been the original Windows bootloader, the computer came with)

/dev/nvme1n1p2   unknown  Microsoft reserved  16 MiB
/dev/nvme1n1p3  ntfs   is  525 MiB

/dev/nvme1n1p1   is    /boot/efi now.

During the install, you could have selected nvme0n1p4 as /boot/efi and set to not format, this would resolve the issue.

So what directories are under the current /boot/efi partition?

Then use mount /dev/nvme0n1p4 /mnt then check directories under /mnt/

So no BIOS option to add an efi file?

Yes, apparently I can.

In the BIOS I have the option to boot

OS Boot Manager (UEFI) [here used to be some remark with Windows, it's now gone]
OS Boot Manager (UEFI)
Boot From EFI File

Both OS Boot Manager direct me to Grub now.
When I choose Boot From EFI File, I get the options:

<boot>
<opensuse>

When I choose ‘boot’, I get

Mok.Manager.efi
fallback.efi
bootx64.efi

When I choose ‘opensuse’, I get

grubx64.efi
shim.efi
grub.efi
MokManager.efi

I see, under /boot/efi I find exactly the same entries as in the BIOS :wink:

at /dev/nvme0n1p4 I find

EFI
System Volume Information

At EFI I find

boot
opensuse

with the same entries as before.

Then it look like you have overwritten the Windows loader, you need to boot from the windows install media and re-install the Windows boot loader… I suggest a google on what to do.

Dear malcomlewis,

Thank you very much indeed for your patient help.

Your analysis was correct, I must have overwritten the Windows boot loader, when I chose to use nvme1n1p1 as the EFI partition in the openSUSE installer. Apparently Windows had it placed there, although the Windows OS is on the other disk (nvme0n1p1). I’ve learned, this is a typical setup. Probably, I used another partition with my first Leap installation for EFI but couldn’t recognize this in the partition list, when I did the 2nd installation.

Now I have managed to re-create the Windows bootloader (it took a 2-hour chat with the Co-pilot to get the Windows installer do this task. One could praise the precise answers and nice assistance of the Co-pilot, if all the problems it helped to overcome were not created by the same company).

Now the Laptop still only boots Leap 16, but it seems, I have the Windows bootloader on nvme0n1p4. At least, using your mount command from above, I see there:

boot
Microsoft
   /Boot
      /bootx64.efi
      /fallback.efi
      /MokManager.efi
   /Recovery
opensuse

So, before I destroy it again: How should I do the Leap 16 installation to include the Windows boot option?

@flo37 is it detected with the os-prober command?

There is no issue sharing, you just need to ensure on a linux install to use the partition as /boot/efi but not to format. So for the Agama installer I use the trash icon to delete the / and swap suggestions, then create a /boot/efi select the partition and don’t format.

Likewise in the summary take a note of what it’s saying, likely going to delete, so you need to select any others and ensure “do not modify” is selected.

See previous example layout.

I had a windows update mess up my grub in the past, but I went through the OS update process via a live usb stick and it fixed the boot loader.

# os-prober
195.622175 | DM multipath kernel driver not loaded
/dev/nvme1n1p4@/efi/Microsoft/Boot/bootmgfw.efi:Windows Boot Manager:Windows:efi

So, I could use

nvme1n1p1 vfat        FAT32  

now for /boot/efi with the Windows boot loader sitting on

nvme0n1p4 vfat 

right ? As there is just the Leap 16 boot loader on nvme1n1p1 at the moment, deleting it wouldn’t even change anything, would it?