Trouble with grub during triple-booting

Ok, so I know this question has been asked a lot, but most answers online are really old and I’m getting desperate. The problem is, I’ve been successfully dual-booting windows 10 and ubuntu 14 for some time now, but decided to go for opensuse as third os(probably will get rid of ubuntu in the future if I like suse but for now I have too much university software installed there to do that).
According to instructions online I should create partitions manually, install opensuse there but keep ubuntu’s grub which would recognize new system without problems so I:
-created one partition for root(sda10) and one for home(sda11) (plus swap the same as ubuntu)
-chose them during installation process and stayed away from overwriting ubuntu grub, as I’ve read it might prevent me from booting my computer so I stopped installer from installing a new bootloader
However, after installation, booting ubuntu and running sudo update-grub nothing changes, as if no third system was installed. Tried sudo apt-get install --reinstall grub-efi-amd64 but that did nothing as well.
I think the problem may be suse’s /boot/efi as I wasn’t certain where to mount it so first I tried the same partition as ubuntu’s boot(sda2) and then decided not to create one at all. Obviously that didn’t work as well, as grub still can’t see opensuse.
Running grub-install --version produces: grub-install (GRUB) 2.02~beta2-9ubuntu1.12
My partitions:

lsblk
NAME    MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda       8:0    0 931,5G  0 disk 
├─sda1    8:1    0  1000M  0 part 
├─sda2    8:2    0   260M  0 part /boot/efi
├─sda3    8:3    0  1000M  0 part 
├─sda4    8:4    0   128M  0 part 
├─sda5    8:5    0 198,7G  0 part 
├─sda6    8:6    0    25G  0 part 
├─sda7    8:7    0  12,5G  0 part 
├─sda8    8:8    0 278,1G  0 part /                 <- ubuntu root
├─sda9    8:9    0  14,9G  0 part [SWAP]
├─sda10   8:10   0    25G  0 part                   <- openSUSE root
└─sda11   8:11   0   375G  0 part                  <- openSUSE home



My computer (Lenovo Z50-70) came with windows 8 and running dmesg | grep efi produced a few lines starting with efi so (as far as I know) it uses UEFI.
I’ve been browsing through internet for hours looking for solutions but, as I said, most tutorials are for old bios systems or mention that opensuse uses grub-legacy, whereas I think it tried to install grub2-efi during installation so I was tempted to just override old one, but I’m not sure if that may result in a no-boot situation. What am I doing wrong? Is it something with /boot/efi? That was the only thing for which I couldn’t find clear guide.

I multi-boot Linux Mint 17.3 and SuSE 13.1 and Tumbleweed. I let the SuSE bootloader handle all installed OS’s. Linux Mint, and I presume also Ubuntu, do not support BTRFS.

Mixing boot methods does not work since ALL have to be EFI or ALL MBR.

Be sure to boot the installer is in EFI mode since that seems to be what is being used by the other OS

Since it appears you have created the partitions at some point you will need to take control and point the installer to the partitions you want to use

The efi boot partition should be mounted at /boot/efi and use the FAT format. DO NOT format it just be sure it is mounted and use FAT

All OS you mention should support EFI boot

That should work, with one exception. And that exception may be your problem.

Updating the grub menu uses “os-prober”. And some versions of “os-prober” are not properly handling “btrfs” file systems. So if you installed opensuse to use “btrfs” for root (and that’s the default), this is probably the issue that you are having.

If that’s correct, you might try reinstalling in the same partitions. But change the root partition to use “ext4”.

Also remember that on ubuntu, you do have to update grub before it will recognize your new install. I believe the command for “ubuntu” is

grub-mkconfig -o /boot/grub.cfg

or there might be an alternative such as “update-grub” or similar. And you have to run that as root.

If you have not already updated grub on ubuntu, start with that. If it still doesn’t work and you used “btrfs” for opensuse, then try the suggested reinstall (and again update grub on ubuntu).

Actually, that’s not quite right with linux and grub.

You can install two different linux systems, one using legacy booting and the other using EFI booting. And as long as both use the appropriate grub for their booting methods, each will be able to boot the other. However, “secure-boot” may mess with that if enabled. And “btrfs” may complicate things.

For example, I have one box with opensuse installed for UEFI booting and KaOS installed for legacy booting. I actually boot both using the grub2-efi installed with opensuse.

But you have to fuss with it to make it work. Or you can use the UEFI boot menu to select OS. They can coexist just not chain boot without some intervention. And with Windows in the mix well…:open_mouth:

You are right that you cannot chain-load.

However, most linux folk will use the menus automatically generated by “grub2-mkconfig” (or “grub-mkconfig” on some systems), and those should work.

You are generally right to warn about not mixing UEFI with Legacy, unless you really know what you are doing. However, in the case of the problem in the OP for this thread, I think it more likely that it is “btrfs” related.

Sorry for replying so late, the problem was indeed btrfs file system on root. After formatting sda10 and sda11 and installing from scratch, this time setting root as ext4, ubuntu grub managed to see openSUSE. Although I had some problems later, namely openSUSE didn’t want to boot but got stuck at: “A start job is running for dev-sda10.device” it booted after trying for a second time. I don’t know what was the reason for the failure at first, but it worked eventually.Thanks very much for your help.