Changing the bootloader

I have new Tumbleweed install on a (for now) auxiliary computer that was grub-bls after the install.

I recently had some negative experiences with grub-bls, by default grub-bls was not selecting the latest kernel when booting and I had some problems removing a kernel parameter.

Because of this I thought, let’s switch back to grub-efi after reading the man page of update-bootloader:

sudo update-bootloader --loader grub-efi
sudo update-bootloader --install
sudo update-bootloader --config

Rebooted the system after that and yes I was greeted by grub-efi.

What was not good is that grub2 only showed two options:

  • UEFI Firmare Settings
  • openSUSE Tumbleweed Memtest (I have memtest86+ installed)

No option to boot the Tumbleweed system, but starting memtest works.

After some time I realized that grub2 has a command line and using that I could just boot the system and run “sudo grub2-mkconfig -o /boot/grub2/grub.cfg” (or “sudo update-bootloader”…) so that grub2 is updated to show also Tumbleweed.

Found this guide:

But the first problem is already ls, ls does not show any driver, while this system has two NVME drives and that was working fine with grub-bls.

Had a look and saw grub is using modules that can be inserted using insmod (grep insmod /boot/grub2/grub.cfg) so did issue:

insmod pci
insmod lspci
insmod efi_gop
insmod efi_uga
insmod part_gpt
insmod xfs
insmod ext2

But ls (on the grub2 prompt) still does not list anything, same for lspci. Note: no sure if these insmod’s make any difference as lsmod gives already a long list of modules that are loaded.

Next try, booted the installation USB drive. Boot from harddisk gives me just the grub bootloader. Boot Linux System starts a system but after some time stop on a red text window saying “No bootable system found”.

The rescue system boots fine and lsblk shows the NVME drivers and I can mount the root and home partitions so that looks okay.

I am wondering what to do next, would like to get grub2 ls/lspci working but another way to boot the Tumbleweed partition would be also good.

Maybe https://forums.opensuse.org/t/grub2-efi-instead-of-grub2-bls-how-to-change-to-it-reason-cannot-see-windows/190393 will help?

The suggestions in that other topic involve issuing commands on the running system, for now I can not yet access the system as the bootloader does not give that option and my attempts to boot via the installation USB drive were fruitless.

There have been so many changes to booting and boot loaders, I can’t offer any suggestions on how to fix it using chroot from a rescue DVD boot.

If you have spare partitions, or a spare ssd that you can plug in, then you could install another instance of OpenSUSE in the spare partition - install it choosing grub2 as the boot-loader. Once that’s done, use yast bootloader to check that the bootloader option Probe foreign OS is enabled. If it is generate a new boot loader config using Yast, or manually using

grub2-mkconfig -o /boot/grub2/grub.cfg

When os-prober runs it should detect the other OpenSUSE and generate a boot entry for it. Then boot into the old system and try to use yast or command line tools to install the desired bootloader. If the other system is really broken, os-prober might not generate anything useful, but if you have the time, it would be worth a shot.

I have been in the habit of always having a spare 30 GB partition for an alternative/recovery OS install.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.