Dual Boot of Opensuse and Ubuntu Fails. Last one boots

I am trying to set up my dual boot of openSuse and Ubuntu again after a bout of stupidity on my part. Both systems seem to install just fine, but when the last system that is intalled is the only one that will boot. I don’t understand what is going on.

I have dual, and multi-booted other systems over the years with the old, Grub system.

I am using a previous efi directory and I did not erase the previous entries before installing these systems and there were several. I wonder whether deleting all of the old entries might cure this problem, or perhaps one of you people who understands what they are doing can give some advice.

Whichever one boots, should have a boot menu entry to boot the other one.

It seems Ubuntu stopped using os-prober in default configuration. In order to find openSUSE in Ubuntu’s Grub, it probably needs /etc/default/grub changed to not disable os-prober.

In the openSUSE installer, and in YaST bootloader, the probe foreign OS checkbox needs a checkmark to enable os-prober to get Ubuntu into openSUSE’s Grub menu. That change is registered in the value for /etc/default/grub’s GRUB_DISABLE_OS_PROBER=.

Not deleting obsolete entries from the ESP can sometimes result in eventual BIOS corruption that’s inconvenient to repair.

It does have a boot menu. Actually booting off that boot menu entry fails. The first system installed’s boot menu also fails to boot…

What’s the current state, unable to boot anything by any means? Do you know how to boot an installed system using installation media, or chroot from any bootable Linux? If yes to the latter, you can use YaST in either a plain text VT login, or in a normal GUI envronment, to edit /etc/default/grub and regenerate grub.cfg. Note that openSUSE puts grub.cfg in /etc/grub2/, while Ubuntu uses /etc/grub/. From openSUSE, after editing as required:

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

If you use YaST bootloader, it regenerates /boot/grub2/grub.cfg for you.

From Ubuntu to regenerate after editing:

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

In Ubuntu, IIUC, the following does the same thing:

sudo update-grub

The current state is that I am running openSUSE. Ubuntu will not boot, either from the entry on the openSUSE grub menu or from its own grub entry.

The openSUSE installation DVD installs, as does the Ubuntu installation DVD.

So far you just repeated the same over and over again. It is impossible to even start to guess without at least knowing what “will not boot” means. What are errors, at which stage these errors happen, etc.

openSUSE also has a nice wrapper for that: update-bootloader

What does efibootmgr -v report?

I have a similar problem with Leap 15.5.
Previously, my hard disk was partitioned in this way:

/dev/sda1 Leap 15.3
/dev/sda2 Leap 15.4
/dev/sda3 Slackware
/dev/sda4 swap

From the grub2 boot menu I was able to boot any other distribution.

Now I have installed Leap 15.5 in /dev/sda1, so the new configuration is:

/dev/sda1 Leap 15.5
/dev/sda2 Leap 15.4
/dev/sda3 Slackware
/dev/sda4 swap

Now from the grub2 boot menu I can boot Leap 15.5 only.
If I select leap 15.4 or Slackware, the boot process starts normally, but after one or two minutes, it switches to recovery mode!

This happens also on a laptop with two bootable partitions; only Leap 15.5 boots up correctly.

I reformatted my EFI partition to see if it would cure the problem. It sort-of did help.

I now have a grub partition that will boot openSUSE and a second grub entry that will boot Ubuntu. It will still NOT boot openSUSE. The error message is “Bad Shim Signature.” The openSUSE partition does not have an entry for Ubuntu yet as it was the first system installed.

I have just started using EFI partitions so I don’t know if this is a characteristic or whether this is a recent change to the GRUB2 system. If it is an EFI feature, perhaps GRUB2 should only build a simplified boot menu.

I have achieved a goal of having redundant linux systems, even if I need to select from the EFI boot menu.

Okay, that may explain the problem you are having.

If you disable secure-boot in your BIOS, you should then be able to boot openSUSE from the Ubuntu menu.

Alternatively, enroll the openSUSE signing certificate as a MOK (machine owner key). You can do this with:

mokutil --import /mountpoint/etc/uefi/certs/*-shim.crt

Of course, you must first mount the openSUSE root partition somewhere to allow access from Ubuntu. Then replace “/mountpoint” by wherever you mounted it.

You will see a blue screen on the next boot, and that’s where you take the final step to enroll the key.

1 Like

I did the “mokutil” command as you described and it seemed to work.
I then tried to boot into opensuse. It failed with a different version of the error message:
“Bad Shim signature”/ “You need to load the kernel first.”

I did not see any screens about “enrolling the key.” There must be one more step…

That is the question to Ubuntu. You can check whether you have mm64.efi (this is default upstream name for MokManager) in the Ubuntu EFI directory.