Boot from lvm fails but boot from usb succeeds

Hi all
Got a Dell T3500, 24 GB Ram, 256GB Ssd, two rotational disks. Installed it under OS 15.3 and upgraded it to 15.4.

We use that system only now and then. about two weeks ago - running 15.4 -, booting was no issue. It is now, though.

If I boot the system, it enters grub rescue mode with an error:
file://tmp/20220704_161255.jpg
{OT: Cannot show the screen foto because I cannot add an attachment :- why?}
So in short:

error: …/…/grub/core/ker/disk.c:237:disk ‘lvmid/2yabcdef…z/1lHDabcd…z’ not found
error: …/…/grub/core/ker/disk.c:237:disk ‘lvmid/2yabcdef…z/1lHDabcd…z’ not found
Entering rescue mode…
grub rescue>

What I did so far:

  • mkinitrd, reboot to grub rescue
  • reinstall kernels, mkinitrd, reboot to grub rescue
  • yast/bootloader toggeled “grub” to “grub for efi” and back again. Hit OK, reboot to grub rescue
  • grub2-mkconfig -o /boot/grub2/grub.cfg, reboot to grub rescue
  • reinstall all of grub related stuff, reboot to grub rescue

here is my grub.cfg

cat grub.cfg  
# 
# 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_gpt 
insmod part_gpt 
insmod part_gpt 
insmod part_gpt 
insmod part_gpt 
insmod lvm 
insmod btrfs 
set root='lvmid/2Yc8Du-vMI5-VI9e-xrVR-k5nY-SIpZ-fCEwaS/1lHDMB-ylYW-s6cZ-HQH3-peFy-7qxR-tHD3pp' 
if  x$feature_platform_search_hint = xy ]; then 
  search --no-floppy --fs-uuid --set=root --hint='lvmid/2Yc8Du-vMI5-VI9e-xrVR-k5nY-SIpZ-fCEwaS/1lHDMB-ylYW-s6cZ-HQH3-peFy-7qxR-tHD3pp'  94ee7205-07a2-4e1e-a498-d1f1e
a0799d4 
else 
  search --no-floppy --fs-uuid --set=root 94ee7205-07a2-4e1e-a498-d1f1ea0799d4 
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 
terminal_output gfxterm 
*insmod part_gpt 
insmod part_gpt 
insmod part_gpt 
insmod part_gpt 
insmod part_gpt 
insmod lvm 
insmod btrfs *
set root='lvmid/2Yc8Du-vMI5-VI9e-xrVR-k5nY-SIpZ-fCEwaS/1lHDMB-ylYW-s6cZ-HQH3-peFy-7qxR-tHD3pp' 
if  x$feature_platform_search_hint = xy ]; then 
  search --no-floppy --fs-uuid --set=root --hint='lvmid/2Yc8Du-vMI5-VI9e-xrVR-k5nY-SIpZ-fCEwaS/1lHDMB-ylYW-s6cZ-HQH3-peFy-7qxR-tHD3pp'  94ee7205-07a2-4e1e-a498-d1f1e
a0799d4 
else 
  search --no-floppy --fs-uuid --set=root 94ee7205-07a2-4e1e-a498-d1f1ea0799d4 
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=3 
# Fallback normal timeout code in case the timeout_style feature is 
# unavailable. 
else 
  set timeout=3 
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/10_linux ### 
menuentry 'openSUSE Leap 15.4'  --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-94ee7205-07a2-4e1e-a498-d1f1ea0799d4'
 { 
        load_video 
        set gfxpayload=keep 
        insmod gzio 
        insmod part_gpt 
        insmod part_gpt 
        insmod part_gpt 
        insmod part_gpt 
        insmod part_gpt 
        insmod lvm 
        insmod btrfs 
        set root='lvmid/2Yc8Du-vMI5-VI9e-xrVR-k5nY-SIpZ-fCEwaS/1lHDMB-ylYW-s6cZ-HQH3-peFy-7qxR-tHD3pp' 
        if  x$feature_platform_search_hint = xy ]; then 
          search --no-floppy --fs-uuid --set=root --hint='lvmid/2Yc8Du-vMI5-VI9e-xrVR-k5nY-SIpZ-fCEwaS/1lHDMB-ylYW-s6cZ-HQH3-peFy-7qxR-tHD3pp'  94ee7205-07a2-4e1e-a4
98-d1f1ea0799d4 
        else 
          search --no-floppy --fs-uuid --set=root 94ee7205-07a2-4e1e-a498-d1f1ea0799d4 
        fi 
        echo    'Loading Linux 5.14.21-150400.22-default ...' 
        linux   /boot/vmlinuz-5.14.21-150400.22-default root=/dev/mapper/system-root  ${extra_cmdline} splash=silent resume=/dev/system/swap quiet mitigations=auto 
        echo    'Loading initial ramdisk ...' 
        initrd  /boot/initrd-5.14.21-150400.22-default 
} 
submenu 'Advanced options for openSUSE Leap 15.4' --hotkey=1 $menuentry_id_option 'gnulinux-advanced-94ee7205-07a2-4e1e-a498-d1f1ea0799d4' { 
        menuentry 'openSUSE Leap 15.4, with Linux 5.14.21-150400.22-default' --hotkey=2 --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_optio
n 'gnulinux-5.14.21-150400.22-default-advanced-94ee7205-07a2-4e1e-a498-d1f1ea0799d4' { 
                load_video 
                set gfxpayload=keep 
                insmod gzio 
                insmod part_gpt 
                insmod part_gpt 
                insmod part_gpt 
                insmod part_gpt 
                insmod part_gpt 
                insmod lvm 
                insmod btrfs 
                set root='lvmid/2Yc8Du-vMI5-VI9e-xrVR-k5nY-SIpZ-fCEwaS/1lHDMB-ylYW-s6cZ-HQH3-peFy-7qxR-tHD3pp' 
                if  x$feature_platform_search_hint = xy ]; then 
                  search --no-floppy --fs-uuid --set=root --hint='lvmid/2Yc8Du-vMI5-VI9e-xrVR-k5nY-SIpZ-fCEwaS/1lHDMB-ylYW-s6cZ-HQH3-peFy-7qxR-tHD3pp'  94ee7205-07a2
-4e1e-a498-d1f1ea0799d4 
                else 
                  search --no-floppy --fs-uuid --set=root 94ee7205-07a2-4e1e-a498-d1f1ea0799d4 
                fi 
                echo    'Loading Linux 5.14.21-150400.22-default ...' 
                linux   /boot/vmlinuz-5.14.21-150400.22-default root=/dev/mapper/system-root  ${extra_cmdline} splash=silent resume=/dev/system/swap quiet mitigation
s=auto 
                echo    'Loading initial ramdisk ...' 
                initrd  /boot/initrd-5.14.21-150400.22-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/20_memtest86+ ### 
### END /etc/grub.d/20_memtest86+ ### 

### BEGIN /etc/grub.d/30_os-prober ### 
### END /etc/grub.d/30_os-prober ### 

### BEGIN /etc/grub.d/30_uefi-firmware ### 
### END /etc/grub.d/30_uefi-firmware ### 

### 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/80_suse_btrfs_snapshot ### 
btrfs-mount-subvol ($root) /.snapshots @/.snapshots 
if  -f "/.snapshots/grub-snapshot.cfg" ]; then 
  source "/.snapshots/grub-snapshot.cfg" 
fi 
### 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 ###

OT: Puzzling are imho the multiple lines with “insmod part_gpt”. I’d assume, having it once shuold be enough.

How can I resolve this?
greez
chris

I’m not sure that I can help, but I’ll comment where I can.

That’s not going to help. You can upload your image to susepaste.org, and then link to the image from there.

I don’t have much experience with grub and the “lvmid” parts, as I don’t do it that way. So I’m not sure how grub determines the lvmid that it is using.

OT: Puzzling are imho the multiple lines with “insmod part_gpt”. I’d assume, having it once shuold be enough.

As far as I know, that’s harmless.

If it were me, here is what I would try:

(1) I would switch to EFI booting.
(2) I would copy both the kernel and the “initrd” into the EFI partition.
(3) I would save the “grub.cfg” to a different filename. That’s the “grub.cfg” that is in the EFI partition, usually at “\EFI\opensuse\grub.cfg” relative to the EFI partition.
(4) I would manually create a replacement “grub.cfg” (again, the one in the EFI partition) that boots the kernel and initrd that I had copied to the EFI partition.

Hopefully, that would allow the system to boot. And from there it would be easier to investigate.

I’m not sure of your level of ability. From what you say you have tried, you don’t seem to be a novice. If you decide to try this, you can ask for further help as needed.

nrickert

Thanks for your hints esp. susepaste.org.

The Dell T3500 is a non efi machine. Needs to boot through BIOS. So, efi way does not work here. I should have pointed that out in my initial post.

It is not resolved for me.

Greez

chris

Run bootinfoscript and provide full RESULT.txt.