Grub2/Boot loader Problem

Hi there, (clearly I’ve not had a very good week)

When I boot up my machine it goes blank right after a brief display of “Welcome to GRUB 2!” No Grub menu after that. I cannot afford to reinstall because my life is on this laptop.

I’ve managed to boot from a LiveCD;

fdisk -l

fdisk -l

Disk /dev/sda: 232.9 GiB, 250059350016 bytes, 488397168 sectors
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: 0x603af8d4

Device     Boot     Start       End   Sectors   Size Id Type
/dev/sda1            2048 146802687 146800640    70G 83 Linux
/dev/sda2  *    146802688 155187199   8384512     4G 82 Linux swap / Solaris
/dev/sda3       155187200 488376319 333189120 158.9G 83 Linux
                                                                                                                                                                                    
Disk /dev/sdb: 62.5 GiB, 67108864000 bytes, 131072000 sectors                                                                                                                       
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: 0x7c8c7b64                                                                                                                                                         
                                                                                                                                                                                    
Device     Boot   Start       End   Sectors   Size Id Type                                                                                                                          
/dev/sdb1  *       1652   1755135   1753484 856.2M 83 Linux                                                                                                                         
/dev/sdb2       1755136 131071999 129316864  61.7G 83 Linux

Disk /dev/loop0: 768.6 MiB, 805961728 bytes, 1574144 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


grub-install /dev/sda

WARNING! You are trying to invoke the unsupported grub-install script
with a parameter. To really do this, call grub-install.unsupported.
You should rather call "yast2 bootloader" or create configuration files
appropriate for the intended target.


yast2 bootloader pops up the Bootloader settings from Yast, when I select “/dev/sda as Custom Boot Partition” it brings up an error “An error occurred during boot loader installation. Retry boot loader configuration?”

linux:/mnt/etc # cat fstab

/dev/disk/by-id/ata-WDC_WD2500BEKT-75A25T0_WD-WXP1A50K5902-part2 swap                 swap       defaults              0 0
/dev/disk/by-id/ata-WDC_WD2500BEKT-75A25T0_WD-WXP1A50K5902-part1 /                    ext3       acl,user_xattr        1 1
/dev/disk/by-id/ata-WDC_WD2500BEKT-75A25T0_WD-WXP1A50K5902-part3 /home                ext3       acl,user_xattr        1 2
proc                 /proc                proc       defaults              0 0
sysfs                /sys                 sysfs      noauto                0 0
debugfs              /sys/kernel/debug    debugfs    noauto                0 0
usbfs                /proc/bus/usb        usbfs      noauto                0 0
devpts               /dev/pts             devpts     mode=0620,gid=5       0 0

linux:/mnt/boot/grub2 # cat device.map.new

(hd0)   /dev/disk/by-id/ata-WDC_WD2500BEKT-75A25T0_WD-WXP1A50K5902
(hd1)   /dev/disk/by-id/ata-SAMSUNG_HM500JI_S1WFJ9FSC06406

linux:/mnt/boot/grub # cat menu.lst

# Modified by YaST2. Last modification on Thu Dec 11 16:30:46 EAT 2014
# THIS FILE WILL BE PARTIALLY OVERWRITTEN by perl-Bootloader
# For the new kernel it try to figure out old parameters. In case we are not able to recognize it (e.g. change of flavor or strange install order ) it it use as fallback installation parameters from /etc/sysconfig/bootloader

default 5
timeout 8
gfxmenu (hd0,0)/boot/message
##YaST - activate

###Don't change this comment - YaST2 identifier: Original name: linux###
title openSUSE - 3.11.10-21 (pae)
    root (hd0,0)
    kernel /boot/vmlinuz-3.11.10-21-pae root=/dev/disk/by-id/ata-WDC_WD2500BEKT-75A25T0_WD-WXP1A50K5902-part1 resume=/dev/disk/by-id/ata-WDC_WD2500BEKT-75A25T0_WD-WXP1A50K5902-part2 splash=silent quiet showopts vga=0x317
    initrd /boot/initrd-3.11.10-21-pae

###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- openSUSE - 3.11.10-21 (pae)
    root (hd0,0)
    kernel /boot/vmlinuz-3.11.10-21-pae root=/dev/disk/by-id/ata-WDC_WD2500BEKT-75A25T0_WD-WXP1A50K5902-part1 showopts apm=off noresume nosmp maxcpus=0 edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 nomodeset x11failsafe vga=0x317
    initrd /boot/initrd-3.11.10-21-pae


###Don't change this comment - YaST2 identifier: Original name: linux###
title Ec2 -- openSUSE - 3.11.10-21
    root (hd0,0)
    kernel /boot/vmlinuz-3.11.10-21-ec2 root=/dev/disk/by-id/ata-WDC_WD2500BEKT-75A25T0_WD-WXP1A50K5902-part1 resume=/dev/disk/by-id/ata-WDC_WD2500BEKT-75A25T0_WD-WXP1A50K5902-part2 splash=silent quiet showopts vga=0x317
    initrd /boot/initrd-3.11.10-21-ec2


###Don't change this comment - YaST2 identifier: Original name: linux###
title Desktop -- openSUSE - 3.11.10-21
    root (hd0,0)
    kernel /boot/vmlinuz-3.11.10-21-desktop root=/dev/disk/by-id/ata-WDC_WD2500BEKT-75A25T0_WD-WXP1A50K5902-part1 resume=/dev/disk/by-id/ata-WDC_WD2500BEKT-75A25T0_WD-WXP1A50K5902-part2 splash=silent quiet showopts vga=0x317
    initrd /boot/initrd-3.11.10-21-desktop


###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- openSUSE - 3.11.10-21 (desktop)
    root (hd0,0)
    kernel /boot/vmlinuz-3.11.10-21-desktop root=/dev/disk/by-id/ata-WDC_WD2500BEKT-75A25T0_WD-WXP1A50K5902-part1 showopts apm=off noresume nosmp maxcpus=0 edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 nomodeset x11failsafe vga=0x317
    initrd /boot/initrd-3.11.10-21-desktop


###Don't change this comment - YaST2 identifier: Original name: linux###
title openSUSE - 3.11.10-21
    root (hd0,0)
    kernel /boot/vmlinuz-3.11.10-21-default root=/dev/disk/by-id/ata-WDC_WD2500BEKT-75A25T0_WD-WXP1A50K5902-part1 resume=/dev/disk/by-id/ata-WDC_WD2500BEKT-75A25T0_WD-WXP1A50K5902-part2 splash=silent quiet showopts vga=0x317
    initrd /boot/initrd-3.11.10-21-default


###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- openSUSE - 3.11.10-21 (default)
    root (hd0,0)
    kernel /boot/vmlinuz-3.11.10-21-default root=/dev/disk/by-id/ata-WDC_WD2500BEKT-75A25T0_WD-WXP1A50K5902-part1 showopts apm=off noresume nosmp maxcpus=0 edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 nomodeset x11failsafe vga=0x317
    initrd /boot/initrd-3.11.10-21-default


###Don't change this comment - YaST2 identifier: Original name: linux###
title openSUSE - 3.17.0-50.gc467423 (pae)
    root (hd0,0)
    kernel /boot/vmlinuz-3.17.0-50.gc467423-pae root=/dev/disk/by-id/ata-WDC_WD2500BEKT-75A25T0_WD-WXP1A50K5902-part1 resume=/dev/disk/by-id/ata-WDC_WD2500BEKT-75A25T0_WD-WXP1A50K5902-part2 splash=silent quiet showopts vga=0x317
    initrd /boot/initrd-3.17.0-50.gc467423-pae


###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- openSUSE - 3.17.0-50.gc467423 (pae)
    root (hd0,0)
    kernel /boot/vmlinuz-3.17.0-50.gc467423-pae root=/dev/disk/by-id/ata-WDC_WD2500BEKT-75A25T0_WD-WXP1A50K5902-part1 showopts apm=off noresume nosmp maxcpus=0 edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 nomodeset x11failsafe vga=0x317
    initrd /boot/initrd-3.17.0-50.gc467423-pae


###Don't change this comment - YaST2 identifier: Original name: linux###
title Ec2 -- openSUSE - 3.17.0-50.gc467423
    root (hd0,0)
    kernel /boot/vmlinuz-3.17.0-50.gc467423-ec2 root=/dev/disk/by-id/ata-WDC_WD2500BEKT-75A25T0_WD-WXP1A50K5902-part1 resume=/dev/disk/by-id/ata-WDC_WD2500BEKT-75A25T0_WD-WXP1A50K5902-part2 splash=silent quiet showopts vga=0x317
    initrd /boot/initrd-3.17.0-50.gc467423-ec2


###Don't change this comment - YaST2 identifier: Original name: linux###
title Desktop -- openSUSE - 3.17.0-50.gc467423
    root (hd0,0)
    kernel /boot/vmlinuz-3.17.0-50.gc467423-desktop root=/dev/disk/by-id/ata-WDC_WD2500BEKT-75A25T0_WD-WXP1A50K5902-part1 resume=/dev/disk/by-id/ata-WDC_WD2500BEKT-75A25T0_WD-WXP1A50K5902-part2 splash=silent quiet showopts vga=0x317
    initrd /boot/initrd-3.17.0-50.gc467423-desktop


###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- openSUSE - 3.17.0-50.gc467423 (desktop)
    root (hd0,0)
    kernel /boot/vmlinuz-3.17.0-50.gc467423-desktop root=/dev/disk/by-id/ata-WDC_WD2500BEKT-75A25T0_WD-WXP1A50K5902-part1 showopts apm=off noresume nosmp maxcpus=0 edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 nomodeset x11failsafe vga=0x317
    initrd /boot/initrd-3.17.0-50.gc467423-desktop


###Don't change this comment - YaST2 identifier: Original name: linux###
title openSUSE - 3.17.0-50.gc467423
    root (hd0,0)
    kernel /boot/vmlinuz-3.17.0-50.gc467423-default root=/dev/disk/by-id/ata-WDC_WD2500BEKT-75A25T0_WD-WXP1A50K5902-part1 resume=/dev/disk/by-id/ata-WDC_WD2500BEKT-75A25T0_WD-WXP1A50K5902-part2 splash=silent quiet showopts vga=0x317
    initrd /boot/initrd-3.17.0-50.gc467423-default


###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- openSUSE - 3.17.0-50.gc467423 (default)
    root (hd0,0)
    kernel /boot/vmlinuz-3.17.0-50.gc467423-default root=/dev/disk/by-id/ata-WDC_WD2500BEKT-75A25T0_WD-WXP1A50K5902-part1 showopts apm=off noresume nosmp maxcpus=0 edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 nomodeset x11failsafe vga=0x317
    initrd /boot/initrd-3.17.0-50.gc467423-default


###Don't change this comment - YaST2 identifier: Original name: linux###
title openSUSE - 3.16.3-49.gd2bbe7f (default)
    root (hd0,0)
    kernel /boot/vmlinuz-3.16.3-49.gd2bbe7f-default root=/dev/disk/by-id/ata-WDC_WD2500BEKT-75A25T0_WD-WXP1A50K5902-part1 resume=/dev/disk/by-id/ata-WDC_WD2500BEKT-75A25T0_WD-WXP1A50K5902-part2 splash=silent quiet showopts vga=0x317
    initrd /boot/initrd-3.16.3-49.gd2bbe7f-default


###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- openSUSE - 3.16.3-49.gd2bbe7f (default)
    root (hd0,0)
    kernel /boot/vmlinuz-3.16.3-49.gd2bbe7f-default root=/dev/disk/by-id/ata-WDC_WD2500BEKT-75A25T0_WD-WXP1A50K5902-part1 showopts apm=off noresume nosmp maxcpus=0 edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 nomodeset x11failsafe vga=0x317
    initrd /boot/initrd-3.16.3-49.gd2bbe7f-default


###Don't change this comment - YaST2 identifier: Original name: linux###
title Desktop -- openSUSE - 3.16.3-49.gd2bbe7f
    root (hd0,0)
    kernel /boot/vmlinuz-3.16.3-49.gd2bbe7f-desktop root=/dev/disk/by-id/ata-WDC_WD2500BEKT-75A25T0_WD-WXP1A50K5902-part1 resume=/dev/disk/by-id/ata-WDC_WD2500BEKT-75A25T0_WD-WXP1A50K5902-part2 splash=silent quiet showopts vga=0x317
    initrd /boot/initrd-3.16.3-49.gd2bbe7f-desktop


###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- openSUSE - 3.16.3-49.gd2bbe7f (desktop)
    root (hd0,0)
    kernel /boot/vmlinuz-3.16.3-49.gd2bbe7f-desktop root=/dev/disk/by-id/ata-WDC_WD2500BEKT-75A25T0_WD-WXP1A50K5902-part1 showopts apm=off noresume nosmp maxcpus=0 edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 nomodeset x11failsafe vga=0x317
    initrd /boot/initrd-3.16.3-49.gd2bbe7f-desktop


###Don't change this comment - YaST2 identifier: Original name: linux###
title Ec2 -- openSUSE - 3.16.3-49.gd2bbe7f
    root (hd0,0)
    kernel /boot/vmlinuz-3.16.3-49.gd2bbe7f-ec2 root=/dev/disk/by-id/ata-WDC_WD2500BEKT-75A25T0_WD-WXP1A50K5902-part1 resume=/dev/disk/by-id/ata-WDC_WD2500BEKT-75A25T0_WD-WXP1A50K5902-part2 splash=silent quiet showopts vga=0x317
    initrd /boot/initrd-3.16.3-49.gd2bbe7f-ec2


###Don't change this comment - YaST2 identifier: Original name: linux###
title openSUSE - 3.16.3-49.gd2bbe7f
    root (hd0,0)
    kernel /boot/vmlinuz-3.16.3-49.gd2bbe7f-pae root=/dev/disk/by-id/ata-WDC_WD2500BEKT-75A25T0_WD-WXP1A50K5902-part1 resume=/dev/disk/by-id/ata-WDC_WD2500BEKT-75A25T0_WD-WXP1A50K5902-part2 splash=silent quiet showopts vga=0x317
    initrd /boot/initrd-3.16.3-49.gd2bbe7f-pae


###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- openSUSE - 3.16.3-49.gd2bbe7f (pae)
    root (hd0,0)
    kernel /boot/vmlinuz-3.16.3-49.gd2bbe7f-pae root=/dev/disk/by-id/ata-WDC_WD2500BEKT-75A25T0_WD-WXP1A50K5902-part1 showopts apm=off noresume nosmp maxcpus=0 edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 nomodeset x11failsafe vga=0x317
    initrd /boot/initrd-3.16.3-49.gd2bbe7f-pae


###Don't change this comment - YaST2 identifier: Original name: linux###
title GNU GRUB 2 -- openSUSE 12.2 - GNU GRUB 2
    kernel (hd0,0)/boot/grub2/i386-pc/core.img root=/dev/disk/by-id/ata-WDC_WD2500BEKT-75A25T0_WD-WXP1A50K5902-part1 resume=/dev/disk/by-id/ata-WDC_WD2500BEKT-75A25T0_WD-WXP1A50K5902-part2 splash=silent quiet showopts init=/bin/sysvinit vga=0x317

**Notice menu.lst is in /boot/grub and not /boot/grub2 so I’m confused but decided to share it anyway.

Any advice is highly welcome!

Right, menu.lst is grub legacy’s boot menu configuration. That’s irrelevant if you use grub2, like everything else in /boot/grub.
Grub2 has its files in /boot/grub2 exclusively.
And you shouldn’t run grub-install either, as that is for installing grub legacy, not grub2.

See here for how to re-install Grub2:
https://forums.opensuse.org/content.php/128-Re-install-Grub2-from-DVD-Rescue

Please note that “mount /proc” and “mount /sys” will not work on a default 13.1 installation any more (you do seem to have 13.1 installed), use this instead:

mount -t proc proc /proc
mount -t sysfs sysfs /sys

If that alone doesn’t help, try to switch to text mode by setting “GRUB_TERMINAL=console” in /etc/default/grub (there should be a line “GRUB_TERMINAL=gfxterm” already, just change that) and following the above steps afterwards to apply the config.

Thanks for the prompt response, Wolfi. My problems begun after I tried to update to 13.2 so I’m not sure whether I’m still booting into 13.1. Which brings me to my next question. I do seem to have so many old kernel versions installed, not sure what you normally do with them - ignore or delete/purge?

I’ll try your recommendation as soon as I’m back at my PC.

Note also that reinstalling does not mean you lose all. You have a separate home partition. So if you reinstall you just make sure that your home partitions is NOT formatted and mounted as /home. You would need to reinstall any apps you use that is not part of the default setup.

So do you now see the wisdom in having backups :stuck_out_tongue:

Note that this kind of problem may indicate failing hardware ie the disk.

Well, did it work after upgrading to 13.2, or did something go wrong during the upgrade?
How did you upgrade in the first place?

Which brings me to my next question. I do seem to have so many old kernel versions installed, not sure what you normally do with them - ignore or delete/purge?

Normally, old kernels should be removed automatically.
Maybe you have to enable the “purge-kernels.service” manually (either in YaST->System->Services Manager, or via “systemctl enable purge-kernels”), there was a bug in one of the earlier versions (12.3 I think) that caused it not to be enabled by default.
But this only works if you installed kernels via rpm packages. If you installed them by hand, purge-kernels will not see/remove them.

OTOH, there was a bug with purge-kernels that made it fail to work on kernels from one of the Kernel repos or Tumbleweed/Factory.
This has been fixed meanwhile though, I myself submitted an update for 12.3 and 13.1 a few weeks ago. :wink:

You can always manually uninstall kernels in YaST though, click on the “Versions” tab below the package list to install/remove specific versions.

Here’s what happens when I try to mount /proc & sysfs

linux:/ # mount -t proc proc /proc
mount: proc is already mounted or /proc busy
       proc is already mounted on /proc

linux:/ # mount -t sysfs sysfs /sys
mount: sysfs is already mounted or /sys busy
       sysfs is already mounted on /sys


Also /etc/default/grub is already set to GRUB_TERMINAL=console

Here’s what happens when I try to mount /proc & sysfs

linux:/ # mount -t proc proc /proc
mount: proc is already mounted or /proc busy
       proc is already mounted on /proc

linux:/ # mount -t sysfs sysfs /sys
mount: sysfs is already mounted or /sys busy
       sysfs is already mounted on /sys


Also /etc/default/grub is already set to GRUB_TERMINAL=console

# Modified by YaST2. Last modification on Fri Dec 12 16:47:27 UTC 2014
# THIS FILE WILL BE PARTIALLY OVERWRITTEN by perl-Bootloader
# For the new kernel it try to figure out old parameters. In case we are not able to recognize it (e.g. change of flavor or strange install order ) it it use as fallback installation parameters from /etc/sysconfig/bootloader

# If you change this file, run 'grub2-mkconfig -o /boot/grub2/grub.cfg' afterwards to update
# /boot/grub2/grub.cfg.
GRUB_DISTRIBUTOR=openSUSE
GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_CMDLINE_LINUX_DEFAULT=" quiet splash=silent"
GRUB_CMDLINE_LINUX=""
# Uncomment to automatically save last booted menu entry in GRUB2 environment
# variable `saved_entry'
#GRUB_SAVEDEFAULT=true
# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM=0x01234567,0xfefefefe,0x89abcdef,0xefefefef
# Uncomment to disable graphical terminal (grub-pc only)
GRUB_TERMINAL=console
# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
GRUB_GFXMODE=640x480
# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true
# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_LINUX_RECOVERY=true
# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"
GRUB_BACKGROUND=/boot/grub2/themes/openSUSE/background.png
GRUB_THEME=/boot/grub2/themes/openSUSE/theme.txt
SUSE_BTRFS_SNAPSHOT_BOOTING=true
GRUB_ENABLE_CRYPTODISK=n
GRUB_DISABLE_OS_PROBER=true
                                                        

You have to run that after the chroot.
Or run “mount --bind /proc /mnt/proc” and “mount --bind /sys /mnt/sys” before the chroot.

Also /etc/default/grub is already set to GRUB_TERMINAL=console

But you have to run “grub2-mkconfig -o /boot/grub2/grub.cfg” to actually apply the settings from /etc/default/grub.

You can of course also try to set it to “gfxterm” if “console” doesn’t work.

Thanks Wolfie, for some reason my problems seem to keep piling up. When I do an fdisk -l, I get this display

Disk /dev/sda: 232.9 GiB, 250059350016 bytes, 488397168 sectors
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: 0x603af8d4

Device     Boot     Start       End   Sectors   Size Id Type
/dev/sda1            2048 146802687 146800640    70G 83 Linux
/dev/sda2  *    146802688 155187199   8384512     4G 82 Linux swap / Solaris
/dev/sda3       155187200 488376319 333189120 158.9G 83 Linux

Disk /dev/sdb: 62.5 GiB, 67108864000 bytes, 131072000 sectors
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: 0x7c8c7b64

Device     Boot   Start       End   Sectors   Size Id Type
/dev/sdb1  *       1652   1755135   1753484 856.2M 83 Linux
/dev/sdb2       1755136 131071999 129316864  61.7G 83 Linux

Disk /dev/loop0: 768.6 MiB, 805961728 bytes, 1574144 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Probably why I got this error. My *NIX partition-fu is not too fluent.

grub2-mkconfig -o /boot/grub2/grub.cfg
/usr/sbin/grub2-probe: error: failed to get canonical path of `overlayfs'.

Hm, a bit unusual to boot from the swap partition I’d say… This could maybe be the source of your problems.

So you have two hard disks with 4 Linux and one swap partition?
And from which hard disk are you actually booting? (this can be configured in the BIOS settings normally)

Do you have a separate /boot? And if yes, which one is it? I suppose /dev/sdb1?
If no, which is your openSUSE / partition?

grub2-mkconfig -o /boot/grub2/grub.cfg
/usr/sbin/grub2-probe: error: failed to get canonical path of `overlayfs'.

Hm, ‘overlayfs’ would point to the installation medium. This error can probably be ignored.

Of course you might just have tried to install the boot loader to the wrong device.
Please answer the above questions, and I give you the exact steps you need to run.

Exactly, and yet when I posted fdisk initially it was under /dev/sda1

[QUOTE] So you have two hard disks with 4 Linux and one swap partition?
And from which hard disk are you actually booting? (this can be configured in the BIOS settings normally)
{/QUOTE]

I’ve actually got 1 hard disk, /dev/sdb1 is the LiveCD (856M) inside /dev/sdb2 which is a bootable flash disk (61G). Not sure whether that makes sense.

I realise I probably did not partition correctly during initial install:(

So that maybe is the real problem here. I could imagine that you just get a blank screen instead of the boot menu when the grub code is loaded from the wrong partition. (the generic MBR code normally just loads the first sector of the active partition and jumps to it without any sophisticated checks)
Actually that’s probably even more likely than a problem with the graphics mode… :wink:

Try to set it back to /dev/sda1 with fdisk, maybe this even fixes the system.

If not do this afterwards:

  • mount /dev/sda1 /mnt
  • mount --bind /dev /mnt/dev
  • chroot /mnt
  • mount -t proc proc /proc
  • mount -t sysfs sysfs /sys
  • grub2-mkconfig -o /boot/grub2/grub.cfg
  • grub2-install /dev/sda

Afterwards reboot, and the grub menu will hopefully appear again.

A side-note: this actually installs the boot loader code to the MBR, so it doesn’t really matter any more then which partition is active.

I’ve actually got 1 hard disk, /dev/sdb1 is the LiveCD (856M) inside /dev/sdb2 which is a bootable flash disk (61G). Not sure whether that makes sense.

Well, I actually suspected this at first, but the 61G partition confused me a bit… :wink:

I realise I probably did not partition correctly during initial install:(

There is no right or wrong really.
It seems you have a / partition, a swap, and a separate /home. Those are actually the default suggestions.

Personally I prefer to have just one partition over the whole hard disk (and a swap of course), but that’s personal preference.
Others will definitely disagree.

Still no GRUB menu :expressionless: There’s an error “Error loading operating system” when I boot.

IThis is what it looks like

Disk /dev/sda: 62.5 GiB, 67108864000 bytes, 131072000 sectors
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: 0x7c8c7b64

Device     Boot   Start       End   Sectors   Size Id Type
/dev/sda1  *       1652   1755135   1753484 856.2M 83 Linux
/dev/sda2       1755136 131071999 129316864  61.7G 83 Linux

Disk /dev/sdb: 232.9 GiB, 250059350016 bytes, 488397168 sectors
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: 0x603af8d4

Device     Boot     Start       End   Sectors   Size Id Type
/dev/sdb1            2048 146802687 146800640    70G 83 Linux
/dev/sdb2  *    146802688 155187199   8384512     4G 82 Linux swap / Solaris
/dev/sdb3       155187200 488376319 333189120 158.9G 83 Linux

Disk /dev/loop0: 768.6 MiB, 805961728 bytes, 1574144 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Well, sda and sdb are swapped now, so you probably did the completely wrong things. (that sdb2 is active now and not sdb1 would support that theory)

As it is now in your fdisk output, you need to replace sda with sdb everywhere. I.e. make /dev/sdb1 active, or for re-installing the boot loader mount /dev/sdb1 and run “grub2-install /dev/sdb” as the final step.

But please check with “fdisk -l” first which one, sda or sdb, is your hard disk now.

Btw, that’s the reason why normally partitions are mounted by id. Those device names can dynamically change on each boot depending on what drives are connected (connect an USB drive and it might become /dev/sda at the next boot e.g.)

You have the BOOT/ACTIVE flag set on the SWAP partition. Try changing that to the root partition.

Here’s what I’ve got now, I followed your steb-by-step instructions

linux:/> grub2-mkconfig -o /boot/grub2/grub.cfg 
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-ec2
Found initrd image: /boot/initrd-ec2
Found linux image: /boot/vmlinuz-3.17.0-50.gc467423-pae
Found initrd image: /boot/initrd-3.17.0-50.gc467423-pae
Found linux image: /boot/vmlinuz-3.17.0-50.gc467423-ec2
Found initrd image: /boot/initrd-3.17.0-50.gc467423-ec2
Found linux image: /boot/vmlinuz-3.17.0-50.gc467423-desktop
Found initrd image: /boot/initrd-3.17.0-50.gc467423-desktop
Found linux image: /boot/vmlinuz-3.17.0-50.gc467423-default
Found initrd image: /boot/initrd-3.17.0-50.gc467423-default
Found linux image: /boot/vmlinuz-3.16.3-49.gd2bbe7f-pae
Found initrd image: /boot/initrd-3.16.3-49.gd2bbe7f-pae
Found linux image: /boot/vmlinuz-3.16.3-49.gd2bbe7f-ec2
Found initrd image: /boot/initrd-3.16.3-49.gd2bbe7f-ec2
Found linux image: /boot/vmlinuz-3.16.3-49.gd2bbe7f-desktop
Found initrd image: /boot/initrd-3.16.3-49.gd2bbe7f-desktop
Found linux image: /boot/vmlinuz-3.16.3-49.gd2bbe7f-default
Found initrd image: /boot/initrd-3.16.3-49.gd2bbe7f-default
Found linux image: /boot/vmlinuz-3.11.10-21-pae
Found initrd image: /boot/initrd-3.11.10-21-pae
Found linux image: /boot/vmlinuz-3.11.10-21-ec2
Found initrd image: /boot/initrd-3.11.10-21-ec2
Found linux image: /boot/vmlinuz-3.11.10-21-desktop
Found initrd image: /boot/initrd-3.11.10-21-desktop
Found linux image: /boot/vmlinuz-3.11.10-21-default
Found initrd image: /boot/initrd-3.11.10-21-default
  WARNING: Failed to connect to lvmetad: No such file or directory. Falling back to internal scanning.
*  No volume groups found
/usr/lib/os-probes/50mounted-tests: line 79: btrfs: command not found
/usr/lib/os-probes/50mounted-tests: line 80: btrfs: command not found
/usr/lib/os-probes/50mounted-tests: line 81: btrfs: command not found*
done


fdisk -l

fdisk -l

Disk /dev/sda: 250.1 GB, 250059350016 bytes, 488397168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x603af8d4

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048   146802687    73400320   83  Linux
/dev/sda2   *   146802688   155187199     4192256   82  Linux swap / Solaris
/dev/sda3       155187200   488376319   166594560   83  Linux

Disk /dev/sdb: 67.1 GB, 67108864000 bytes, 131072000 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x7c8c7b64

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *        1652     1755135      876742   83  Linux
/dev/sdb2         1755136   131071999    64658432   83  Linux


cat /boot/grub2/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 ###
if  -s $prefix/grubenv ]; then
  load_env
fi
if  "${next_entry}" ] ; then
   set default="${next_entry}"
   set next_entry=
   save_env next_entry
   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}"
    save_env saved_entry
  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
}
                                        

You can ignore this, as you don’t use LVM anyway.

/usr/lib/os-probes/50mounted-tests: line 79: btrfs: command not found
/usr/lib/os-probes/50mounted-tests: line 80: btrfs: command not found
/usr/lib/os-probes/50mounted-tests: line 81: btrfs: command not found*
done

Are you using btrfs?
You should have the command btrfs installed then.

Anyway, this is just the os-prober, which searches for additional installed operating systems to add to the boot menu.
The errors should therefore not matter really.

Have you run “grub2-install /dev/sda” (if sda is the hard disk now) afterwards?
Then your system should probably boot now, or at least you should see the boot menu.

fdisk -l

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048   146802687    73400320   83  Linux
/dev/sda2   *   146802688   155187199     4192256   82  Linux swap / Solaris
/dev/sda3       155187200   488376319   166594560   83  Linux

The swap partition is still the active one.
Please run “fdisk /dev/sda” and make the 1st partition (sda1) active, by entering ‘a’ and answering ‘1’ for the question which partition to activate.
Then enter ‘x’ for writing back the change and exit.

Is that all?
There’s not even a single OS entry in there.

Are you sure you mounted the correct partition?
It should be /dev/sda1 I suppose, in the case of your latest fdisk output.
I.e. you should have run “mount /dev/sda1 /mnt” this time.

If unsure, check (and/or post) the output of “ls /mnt” afterwards.

It actually looks like grub-mkconfig either crashed or run out of space on destination directory.