No grub boot menu

Hi guys,
before I start I must say that I know that there are similar topics regarding this issue in this forum but I believe I tried all what I have found but without any success , so I am creating a new one.

The issue is that the grub boot menu doesn’t show and the following screen is displayed instead:

I have Windows in dual boot. The “fast startup” is disabled:


(it is in Czech but yes, it is disabled :slight_smile: )

This is my setting in BIOS:

When I go to BIOS after power on and select the “openSUSE” option manually, I get the grub menu:


btw. the same with Windows.
But the other users of the computer are not so skilled to do it via BIOS every time :frowning: They were used to the grub menu (with pre-selected item/s).

Do you have any idea how to fix it?

Here is some info I have collected:

lsblk -f
NAME        FSTYPE FSVER LABEL   UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
sda                                                                                  
├─sda1      btrfs                982fac0a-786b-4085-a825-f800e8e2633d   81.5G    15% /opt
│                                                                                    /usr/local
│                                                                                    /root
│                                                                                    /srv
│                                                                                    /boot/grub2/x86_64-efi
│                                                                                    /var
│                                                                                    /boot/grub2/i386-pc
│                                                                                    /
├─sda2                                                                               
└─sda5      xfs                  0c94b9ae-c1b9-4785-89d9-9dd7ec3a5f31  108.4G    18% /home
sdb                                                                                  
└─sdb1      ntfs         Data    A8A0D5FCA0D5D0C4                                    
nvme0n1                                                                              
├─nvme0n1p1 vfat   FAT32         7E21-45FB                              63.9M    33% /boot/efi
├─nvme0n1p2                                                                          
├─nvme0n1p3 ntfs         Windows 262E22212E21EA8F                                    
└─nvme0n1p4 ntfs         Windows 569C7D5D9C7D3897                                    
fli-pc-linux:~ # parted /dev/sda
GNU Parted 3.6
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print                                                            
Model: ATA Samsung SSD 860 (scsi)
Disk /dev/sda: 250GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End    Size   Type      File system  Flags
 1      1049kB  107GB  107GB  primary   btrfs
 2      107GB   250GB  143GB  extended               lba
 5      107GB   250GB  143GB  logical   xfs
efibootmgr -v
BootCurrent: 0001
Timeout: 1 seconds
BootOrder: 0001,0000
Boot0000* Windows Boot Manager  HD(1,GPT,25ace567-6b33-4430-9474-d77549c92700,0x800,0x32000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)57494e444f5753000100000088000000780000004200430044004f0042004a004500430054003d007b00390064006500610038003600320063002d0035006300640064002d0034006500370030002d0061006300630031002d006600330032006200330034003400640034003700390035007d00000065000100000010000000040000007fff0400
      dp: 04 01 2a 00 01 00 00 00 00 08 00 00 00 00 00 00 00 20 03 00 00 00 00 00 67 e5 ac 25 33 6b 30 44 94 74 d7 75 49 c9 27 00 02 02 / 04 04 46 00 5c 00 45 00 46 00 49 00 5c 00 4d 00 69 00 63 00 72 00 6f 00 73 00 6f 00 66 00 74 00 5c 00 42 00 6f 00 6f 00 74 00 5c 00 62 00 6f 00 6f 00 74 00 6d 00 67 00 66 00 77 00 2e 00 65 00 66 00 69 00 00 00 / 7f ff 04 00
    data: 57 49 4e 44 4f 57 53 00 01 00 00 00 88 00 00 00 78 00 00 00 42 00 43 00 44 00 4f 00 42 00 4a 00 45 00 43 00 54 00 3d 00 7b 00 39 00 64 00 65 00 61 00 38 00 36 00 32 00 63 00 2d 00 35 00 63 00 64 00 64 00 2d 00 34 00 65 00 37 00 30 00 2d 00 61 00 63 00 63 00 31 00 2d 00 66 00 33 00 32 00 62 00 33 00 34 00 34 00 64 00 34 00 37 00 39 00 35 00 7d 00 00 00 65 00 01 00 00 00 10 00 00 00 04 00 00 00 7f ff 04 00
Boot0001* opensuse-secureboot   HD(1,GPT,25ace567-6b33-4430-9474-d77549c92700,0x800,0x32000)/File(\EFI\opensuse\shim.efi)
      dp: 04 01 2a 00 01 00 00 00 00 08 00 00 00 00 00 00 00 20 03 00 00 00 00 00 67 e5 ac 25 33 6b 30 44 94 74 d7 75 49 c9 27 00 02 02 / 04 04 32 00 5c 00 45 00 46 00 49 00 5c 00 6f 00 70 00 65 00 6e 00 73 00 75 00 73 00 65 00 5c 00 73 00 68 00 69 00 6d 00 2e 00 65 00 66 00 69 00 00 00 / 7f ff 04 00
df /boot/efi
Filesystem     1K-blocks  Used Available Use% Mounted on
/dev/nvme0n1p1     98304 32829     65475  34% /boot/efi
grub2-mkconfig /boot/grub2/grub.cfg
Generating grub configuration file ...
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub2-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
set btrfs_relative_path="y"
export btrfs_relative_path
if [ -f ${config_directory}/grubenv ]; then
  load_env -f ${config_directory}/grubenv
elif [ -s $prefix/grubenv ]; then
  load_env
fi

if [ "${env_block}" ] ; then
  set env_block="(${root})${env_block}"
  export env_block
  load_env -f "${env_block}"
fi

if [ "${next_entry}" ] ; then
   set default="${next_entry}"
   set next_entry=
   save_env next_entry
   if [ "${env_block}" ] ; then
     save_env -f "${env_block}" next_entry
   fi
   set boot_once=true
else
   set default="${saved_entry}"
fi

if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
else
  menuentry_id_option=""
fi

export menuentry_id_option

if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    if [ "${env_block}" ] ; then
      save_env -f "${env_block}" saved_entry
    else
      save_env saved_entry
    fi

  fi
}

function load_video {
  if [ x$feature_all_video_module = xy ]; then
    insmod all_video
  else
    insmod efi_gop
    insmod efi_uga
    insmod ieee1275_fb
    insmod vbe
    insmod vga
    insmod video_bochs
    insmod video_cirrus
  fi
}

if [ x$feature_default_font_path = xy ] ; then
   font=unicode
else
insmod part_msdos
insmod btrfs
set root='hd0,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  982fac0a-786b-4085-a825-f800e8e2633d
else
  search --no-floppy --fs-uuid --set=root 982fac0a-786b-4085-a825-f800e8e2633d
fi
    font="/usr/share/grub2/unicode.pf2"
fi

if loadfont $font ; then
  if [ "${grub_platform}" = "efi" ]; then
    echo "Please press 't' to show the boot menu on this console"
  fi

  set gfxmode=auto
  load_video
  insmod gfxterm
fi
terminal_input console

for i in gfxterm; do
  if [ x${use_append} = xtrue ]; then
     terminal_output --append $i
  elif terminal_output $i; then
     use_append=true;
  fi
done

Found theme: /boot/grub2/themes/openSUSE/theme.txt
insmod part_msdos
insmod btrfs
set root='hd0,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  982fac0a-786b-4085-a825-f800e8e2633d
else
  search --no-floppy --fs-uuid --set=root 982fac0a-786b-4085-a825-f800e8e2633d
fi
insmod gfxmenu
loadfont ($root)/boot/grub2/themes/openSUSE/DejaVuSans-Bold14.pf2
loadfont ($root)/boot/grub2/themes/openSUSE/DejaVuSans10.pf2
loadfont ($root)/boot/grub2/themes/openSUSE/DejaVuSans12.pf2
loadfont ($root)/boot/grub2/themes/openSUSE/ascii.pf2
insmod png
set theme=($root)/boot/grub2/themes/openSUSE/theme.txt
export theme
if [ x${boot_once} = xtrue ]; then
  set timeout=0
elif [ x$feature_timeout_style = xy ] ; then
  set timeout_style=menu
  set timeout=8
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
  set timeout=8
fi
if [ -n "$extra_cmdline" ]; then
  menuentry "Help on bootable snapshot #$snapshot_num" {
    echo "Select the default entry of the snapshot boot menu."
    echo "Examine the snapshot, and if it's OK,"
    echo "   run 'snapper rollback' and reboot."
    echo "See 'System Rollback by Booting from Snapshots'"
    echo "   in the manual for more information."
    echo "  ** Hit Any Key to return to boot menu **  "
    read
  }
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/00_tuned ###
set tuned_params=""
set tuned_initrd=""
### END /etc/grub.d/00_tuned ###

### BEGIN /etc/grub.d/02_tuned ###
set tuned_params=""
set tuned_initrd=""
### END /etc/grub.d/02_tuned ###

### BEGIN /etc/grub.d/05_crypttab ###
### END /etc/grub.d/05_crypttab ###

### BEGIN /etc/grub.d/06_notpm ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/06_notpm ###

### BEGIN /etc/grub.d/10_linux ###
Found linux image: /boot/vmlinuz-6.8.8-1-default
Found initrd image: /boot/initrd-6.8.8-1-default
menuentry 'openSUSE Tumbleweed'  --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-982fac0a-786b-4085-a825-f800e8e2633d' {
        load_video
        set gfxpayload=keep
        insmod gzio
        insmod part_msdos
        insmod btrfs
        set root='hd0,msdos1'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  982fac0a-786b-4085-a825-f800e8e2633d
        else
          search --no-floppy --fs-uuid --set=root 982fac0a-786b-4085-a825-f800e8e2633d
        fi
        echo    'Loading Linux 6.8.8-1-default ...'
        linux   /boot/vmlinuz-6.8.8-1-default root=UUID=982fac0a-786b-4085-a825-f800e8e2633d  ${extra_cmdline} splash=silent quiet security=apparmor mitigations=auto
        echo    'Loading initial ramdisk ...'
        initrd  /boot/initrd-6.8.8-1-default
}
submenu 'Advanced options for openSUSE Tumbleweed' --hotkey=1 $menuentry_id_option 'gnulinux-advanced-982fac0a-786b-4085-a825-f800e8e2633d' {
        menuentry 'openSUSE Tumbleweed, with Linux 6.8.8-1-default' --hotkey=2 --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.8.8-1-default-advanced-982fac0a-786b-4085-a825-f800e8e2633d' {
                load_video
                set gfxpayload=keep
                insmod gzio
                insmod part_msdos
                insmod btrfs
                set root='hd0,msdos1'
                if [ x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  982fac0a-786b-4085-a825-f800e8e2633d
                else
                  search --no-floppy --fs-uuid --set=root 982fac0a-786b-4085-a825-f800e8e2633d
                fi
                echo    'Loading Linux 6.8.8-1-default ...'
                linux   /boot/vmlinuz-6.8.8-1-default root=UUID=982fac0a-786b-4085-a825-f800e8e2633d  ${extra_cmdline} splash=silent quiet security=apparmor mitigations=auto
                echo    'Loading initial ramdisk ...'
                initrd  /boot/initrd-6.8.8-1-default
        }
Found linux image: /boot/vmlinuz-6.7.7-1-default
Found initrd image: /boot/initrd-6.7.7-1-default
        menuentry 'openSUSE Tumbleweed, with Linux 6.7.7-1-default'  --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.7.7-1-default-advanced-982fac0a-786b-4085-a825-f800e8e2633d' {
                load_video
                set gfxpayload=keep
                insmod gzio
                insmod part_msdos
                insmod btrfs
                set root='hd0,msdos1'
                if [ x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  982fac0a-786b-4085-a825-f800e8e2633d
                else
                  search --no-floppy --fs-uuid --set=root 982fac0a-786b-4085-a825-f800e8e2633d
                fi
                echo    'Loading Linux 6.7.7-1-default ...'
                linux   /boot/vmlinuz-6.7.7-1-default root=UUID=982fac0a-786b-4085-a825-f800e8e2633d  ${extra_cmdline} splash=silent quiet security=apparmor mitigations=auto
                echo    'Loading initial ramdisk ...'
                initrd  /boot/initrd-6.7.7-1-default
        }
}

### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###

### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/25_bli ###
if [ "$grub_platform" = "efi" ]; then
  insmod bli
fi
### END /etc/grub.d/25_bli ###

### BEGIN /etc/grub.d/30_os-prober ###
Warning: os-prober will be executed to detect other bootable partitions.
Its output will be used to detect bootable binaries on them and create new boot entries.
692.934706 | DM multipath kernel driver not loaded
Found Windows Boot Manager on /dev/nvme0n1p1@/EFI/Microsoft/Boot/bootmgfw.efi
menuentry 'Windows Boot Manager (on /dev/nvme0n1p1)' --class windows --class os $menuentry_id_option 'osprober-efi-7E21-45FB' {
        insmod part_gpt
        insmod fat
        search --no-floppy --fs-uuid --set=root 7E21-45FB
        chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/30_uefi-firmware ###
Adding boot menu entry for UEFI Firmware Settings ...
if [ "$grub_platform" = "efi" ]; then
        menuentry 'UEFI Firmware Settings' $menuentry_id_option 'uefi-firmware' {
                fwsetup --is-supported
                if [ "$?" = 0 ]; then
                        fwsetup
                else
                        echo "Your firmware doesn't support setup menu entry from a boot loader"
                        echo "Press any key to return ..."
                        read
                fi
        }
fi
### END /etc/grub.d/30_uefi-firmware ###

### BEGIN /etc/grub.d/35_fwupd ###
### END /etc/grub.d/35_fwupd ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  ${config_directory}/custom.cfg ]; then
  source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg
fi
### END /etc/grub.d/41_custom ###

### BEGIN /etc/grub.d/45_linux_xen ###

### END /etc/grub.d/45_linux_xen ###

### BEGIN /etc/grub.d/46_memtest86+ ###
### END /etc/grub.d/46_memtest86+ ###

### BEGIN /etc/grub.d/48_uefi-firmware ###
Adding boot menu entry for UEFI Firmware Settings ...
menuentry 'UEFI Firmware Settings' $menuentry_id_option 'uefi-firmware' {
        fwsetup
}
### END /etc/grub.d/48_uefi-firmware ###

### BEGIN /etc/grub.d/49_fwupd ###
### END /etc/grub.d/49_fwupd ###

### BEGIN /etc/grub.d/51_custom ###
if [ -f  ${config_directory}/custom.cfg ]; then
  source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg
fi
### END /etc/grub.d/51_custom ###

### BEGIN /etc/grub.d/80_suse_btrfs_snapshot ###
### END /etc/grub.d/80_suse_btrfs_snapshot ###

### BEGIN /etc/grub.d/90_persistent ###
### END /etc/grub.d/90_persistent ###

### BEGIN /etc/grub.d/95_textmode ###
if [ "${grub_platform}" = "efi" ]; then
  # On EFI systems we can only have graphics *or* serial, so allow the user
  # to switch between the two
  hiddenentry 'Text mode' --hotkey 't' {
    set textmode=true
    terminal_output console
  }
fi
### END /etc/grub.d/95_textmode ###

### BEGIN /etc/grub.d/LS_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
menuentry "Windows 11" --class windows --class os $menuentry_id_option 'osprober-efi-7E21-45FB' {
        insmod part_gpt
        insmod fat
        search --no-floppy --fs-uuid --set=root 7E21-45FB
        chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
### END /etc/grub.d/LS_custom ###

### BEGIN /etc/grub.d/LS_linux ###
Warning: version_find_latest() is deprecated. Use version_sort() instead.
Warning: version_test_gt() is deprecated. Use version_sort() instead.
Warning: version_test_gt() is deprecated. Use version_sort() instead.
Warning: version_test_numeric() is deprecated. Use version_sort() instead.
Found linux image: /boot/vmlinuz-6.8.8-1-default
Found initrd image: /boot/initrd-6.8.8-1-default
menuentry 'openSUSE Tumbleweed'  --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-982fac0a-786b-4085-a825-f800e8e2633d' {
        load_video
        set gfxpayload=keep
        insmod gzio
        insmod part_msdos
        insmod btrfs
        set root='hd0,msdos1'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  982fac0a-786b-4085-a825-f800e8e2633d
        else
          search --no-floppy --fs-uuid --set=root 982fac0a-786b-4085-a825-f800e8e2633d
        fi
        echo    'Loading Linux 6.8.8-1-default ...'
        linux   /boot/vmlinuz-6.8.8-1-default root=UUID=982fac0a-786b-4085-a825-f800e8e2633d  ${extra_cmdline} splash=silent quiet security=apparmor mitigations=auto
        echo    'Loading initial ramdisk ...'
        initrd  /boot/initrd-6.8.8-1-default
}
submenu 'Advanced options for openSUSE Tumbleweed' --hotkey=1 $menuentry_id_option 'gnulinux-advanced-982fac0a-786b-4085-a825-f800e8e2633d' {
        menuentry 'openSUSE Tumbleweed, with Linux 6.8.8-1-default' --hotkey=2 --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.8.8-1-default-advanced-982fac0a-786b-4085-a825-f800e8e2633d' {
                load_video
                set gfxpayload=keep
                insmod gzio
                insmod part_msdos
                insmod btrfs
                set root='hd0,msdos1'
                if [ x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  982fac0a-786b-4085-a825-f800e8e2633d
                else
                  search --no-floppy --fs-uuid --set=root 982fac0a-786b-4085-a825-f800e8e2633d
                fi
                echo    'Loading Linux 6.8.8-1-default ...'
                linux   /boot/vmlinuz-6.8.8-1-default root=UUID=982fac0a-786b-4085-a825-f800e8e2633d  ${extra_cmdline} splash=silent quiet security=apparmor mitigations=auto
                echo    'Loading initial ramdisk ...'
                initrd  /boot/initrd-6.8.8-1-default
        }
Warning: version_find_latest() is deprecated. Use version_sort() instead.
Warning: version_test_gt() is deprecated. Use version_sort() instead.
Found linux image: /boot/vmlinuz-6.7.7-1-default
Found initrd image: /boot/initrd-6.7.7-1-default
        menuentry 'openSUSE Tumbleweed, with Linux 6.7.7-1-default'  --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.7.7-1-default-advanced-982fac0a-786b-4085-a825-f800e8e2633d' {
                load_video
                set gfxpayload=keep
                insmod gzio
                insmod part_msdos
                insmod btrfs
                set root='hd0,msdos1'
                if [ x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  982fac0a-786b-4085-a825-f800e8e2633d
                else
                  search --no-floppy --fs-uuid --set=root 982fac0a-786b-4085-a825-f800e8e2633d
                fi
                echo    'Loading Linux 6.7.7-1-default ...'
                linux   /boot/vmlinuz-6.7.7-1-default root=UUID=982fac0a-786b-4085-a825-f800e8e2633d  ${extra_cmdline} splash=silent quiet security=apparmor mitigations=auto
                echo    'Loading initial ramdisk ...'
                initrd  /boot/initrd-6.7.7-1-default
        }
}

### END /etc/grub.d/LS_linux ###

### BEGIN /etc/grub.d/LS_os-prober ###
Warning: os-prober will be executed to detect other bootable partitions.
Its output will be used to detect bootable binaries on them and create new boot entries.
693.732346 | DM multipath kernel driver not loaded
Found Windows Boot Manager on /dev/nvme0n1p1@/EFI/Microsoft/Boot/bootmgfw.efi
menuentry 'Windows Boot Manager (on /dev/nvme0n1p1)' --class windows --class os $menuentry_id_option 'osprober-efi-7E21-45FB' {
        insmod part_gpt
        insmod fat
        search --no-floppy --fs-uuid --set=root 7E21-45FB
        chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
### END /etc/grub.d/LS_os-prober ###
shim-install --config-file=/boot/grub2/grub.cfg
copying /usr/share/efi/x86_64/grub.efi to /boot/efi/EFI/opensuse/grub.efi
Installing for x86_64-efi platform.
Installation finished. No error reported.
BootCurrent: 0001
Timeout: 1 seconds
BootOrder: 0000
Boot0000* Windows Boot Manager  HD(1,GPT,25ace567-6b33-4430-9474-d77549c92700,0x800,0x32000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)57494e444f5753000100000088000000780000004200430044004f0042004a004500430054003d007b00390064006500610038003600320063002d0035006300640064002d0034006500370030002d0061006300630031002d006600330032006200330034003400640034003700390035007d00000065000100000010000000040000007fff0400
BootCurrent: 0001
Timeout: 1 seconds
BootOrder: 0001,0000
Boot0000* Windows Boot Manager  HD(1,GPT,25ace567-6b33-4430-9474-d77549c92700,0x800,0x32000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)57494e444f5753000100000088000000780000004200430044004f0042004a004500430054003d007b00390064006500610038003600320063002d0035006300640064002d0034006500370030002d0061006300630031002d006600330032006200330034003400640034003700390035007d00000065000100000010000000040000007fff0400
Boot0001* opensuse-secureboot   HD(1,GPT,25ace567-6b33-4430-9474-d77549c92700,0x800,0x32000)/File(\EFI\opensuse\shim.efi)

Run

set pager=1
set

commands and provide photo of the output. It may be longer than one screen, you will be prompted to continue display on this case.


Show

cat /boot/efi/EFI/opensuse/grub.cfg

cat /boot/efi/EFI/opensuse/grub.cfg

set btrfs_relative_path="yes"
search --fs-uuid --set=root 982fac0a-786b-4085-a825-f800e8e2633d
set prefix=(${root})/boot/grub2
source "${prefix}/grub.cfg"

From the openSUSE side configuration is correct. When you stop in grub CLI, show the output of

ls

Here it is:

btw. and just FYI, I tried one desperate attempt. I reinstalled the grub2 package. No version change, no repo change, just force update from Yast. And then I did “rub2-mkconfig …”. I restarted the PC and … I got the grub menu! But then I turned the PC off and when I turned it on, I got stuck again at that “GNU GRUB” screen :frowning:

I am afraid it’s your BIOS trying to “optimize” boot time. Your ESP is on NVMe and Linux root is on the SATA. So when auto-booting BIOS does not attempt to scan and load drivers for “unneeded” devices. When you invoke boot menu, it does full scan.

From the openSUSE side the only workaround is to put ESP on the same disk as Linux root. It may be possible to configure BIOS to do full scan, you need to ask on the support channels for your hardware.

1 Like

Although in this case grub may miss NVMe (i.e. Windows) device.

Another option is to switch to systemd-boot. It is still considered experimental in openSUSE and as kernel/initrd for all snapshots are kept on ESP it needs significantly more space. E.g. MicroOS systemd-boot VM with 10 snapshots consumes about 250MB on ESP.

I’ve have grub issue in the past and my go to is a live usb stick and do an upgrade of the version you’re running and it always takes care of grub issues for me.

Your setup is complicated. Nonetheless it should work theoretically. However in reality it doesn’t work.

I suggest trying a simple setup:

  1. convert msdos to gpu
  2. shrink btrfs to free space for an ESP on /dev/sda
  3. create an ESP as and move grub to it

I believe this was meant to read GPT rather than GPU. IOW, convert the disk’s partition table from legacy/MBR/MSDOS mode to GPT mode. I wouldn’t do steps 2 or 3 without trying 1 alone first, then rescue boot TW in ESP mode to install Grub to existing ESP, then test. 1 ESP per PC should always be sufficient, though not necessarily ideal.

Correct.

Sure. However a drive holding its own ESP facilitates troubleshooting:

  1. You may try and temporarily deactivate the NVME drive.

  2. You may attach the drive to another system and test it with different hardware.

BTW: The built in NVME backup drive of infamous host erlangen holds a full default installation of Tumbleweed, just in case of a broken primary drive.

In fact, that setup has been made by the openSUSE installer, not by me. I didn’t change anything, just accepted what the installer suggested. And what is more funny, it worked well for almost a year. Then I had another issue with booting the system and during solving that one this new one appeared. Unfortunately, I don’t remember all the changes I did during trying to fix that issue but I never touched any partitions or changed anything in BIOS. Yes, I force-re-installed the system from live USB several times - maybe that caused this.

But what I don’t understand is that when I select the “openSUSE” option in the BIOS manually, then it works. From my understanding it should be the same as if the BIOS selects it by itself. But it doesn’t.

Anyway, I will look at the solutions you are proposing if they are worth to try - I don’t want to break it more than it is now :slight_smile: Thank you.

Could you try running yast bootloader GUI, make some changes and save it to see if that solves the issue?

E.g. change the timeout 8 > 7. That is a very innocent change and nevertheless a change that should trigger several actions.

Even if you keep existing partitioning installed firmware and software will change. I presume most users will want to use their system for several years. A system which stops working within one year for no apparent reason is not an option for these folks. They may want to reconsider and start from scratch.

Doing lots of installs on different hardware I standardized the partitioning of Tumbleweed as follows:

3400g:~ # fdisk -l /dev/nvme0n1
Disk /dev/nvme0n1: 476.94 GiB, 512110190592 bytes, 1000215216 sectors
Disk model: Samsung SSD 950 PRO 512GB               
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: A84F222E-0177-499B-A7EA-BDA6F31E2196

Device          Start        End    Sectors   Size Type
/dev/nvme0n1p1   2048     206847     204800   100M EFI System
/dev/nvme0n1p2 206848 1000212479 1000005632 476.8G Linux filesystem
3400g:~ # 

All of the systems using the above partitioning are rock solid, work for many years hassle-free and require minimal administration.

1 Like

It won’t help. Actually it was one of the first things I tried.

I found two options how to get the grub menu - see the picture below. But it’s strange that the menu has different items in each of the options.

After seeing that last image, I’d like to see if efibootmgr output has changed since two weeks ago. Why would menu items be repeated if nothing is wrong in NVRAM?