Two Grub Partitions!

I have two hard disks with sda dedicated to windows and sdb to Linux.
Initially I had 12.3 after which I added 13.1 and then 13.2 with SATA set up. When I first installed 42.1 I used the space used by 12.3 and used the UEFI set up! Later realising my error I re-installed 42.1 with SATA set up. Somewhere in the process 13.2 stopped showing up in the boot menu. All (basic) efforts to get Grub to include 13.2 have failed. When I rechecked the partitions I find I have two Grub partitions as below:
sdb1 EFI boot - FAT
sdb2 Linux Swap - SWAP
sdb3 BIOS GRUB
sdb4 Linux native - BtrFS - /
sdb5 Linux native - Ext4 - (/ for 13.1)
sdb6 Linux native - Ext4 - (/home for 13.1)
sdb7 BIOS GRUB
sdb8 Linux native - Btrfs - (/ for 13.2)
sdb9 Linux native - XFS - (/Home for 13.2)
sdb10 Linux native - XFS - /Home

sdb4 and sdb10 are of 42.1, sdb5 and sdb6 belong to 13.1, while sdb8 and 9 are the 13.2 partitions. As far as I can make out sdb7 with (Grub 2) must have got created when 13.2 was installed since 12.3 and possibly 13.1 (as I installed) were Grub Legacy. From the looks of it sdb3 may have got amended or changed when 42.1 was installed. But if it is still legacy grub and now I am booting off sdb7 why is 13.2 not detected. How do I check which grub partition is the active one? Would it be OK to delete the non-active one? If sdb7 is the non-active grub would its removal allow detection of 13.2 on sdb8 and sdb9?

I really would like to keep 13.2 for some time.

PrakashC

The first one. GRUB installs in the first “BIOS BOOT” partition it finds.

Would it be OK to delete the non-active one?

Yes, but I do not see how it helps.

If sdb7 is the non-active grub would its removal allow detection of 13.2 on sdb8 and sdb9?

No. Most likely it is os-prober bug where it fails to find OS on primary btrfs subvolume. Update for Leap is being prepared; you may want to test os-prober from here: https://build.opensuse.org/project/show/home:michael-chang:Leap:42.1:Update.

If one OS is EFI installed and the other legacy they can not see each other or chain.

Changing a MBR boot to a EFI boot and back made a GPT partition table and still have a MSDOS partition table that can seriously confuse things

No easy fix this you need to re do the partitioning so all OS’s use the same boot method

I do not quite understand what you mean by “SATA-setup”? As far as i know there are three basic components which make up the boot process:

  1. the motherboard setup: BIOS or UEFI
  2. the disk partitioning: MBR or GPT
  3. the bootloader: GRUB legacy or GRUB2

This looks to me like a GPT partition scheme and there is an EFI partition, so you might use UEFI boot. To advice you any further some more details about your configuration would be good to know. So could you supply the output of the following commands (issued as administrator in a console) please:

#  -d */sys/firmware/efi* ] && echo "EFI boot" || echo "Legacy boot"
# od -An -t u1 /sys/firmware/efi/vars/SecureBoot-8be4df61-93ca-11d2-aa0d-00e098032b8c/data
# efibootmgr
# gdisk -l /dev/sda
# gdisk -l /dev/sdb
# zypper se -si grub

How do you switch between booting Windows and booting openSUSE ?

Best regards

susejunky

I expected as much and therefore re-installed 42.1 MBR (SATA) over the EFI version. All OSes are now MBR booting. The GPT partition table is (at least at present) not troubling me. I really would not like to go through the process of re-installing 13.1 and 13.2 or even the 42.1. I do have a portable hard disk where I could back up the partitions, re-partition this (sdb) drive and write back existing partitions. But before trying that I want to correct the existing problem with 13.2.

PrakashC

Sorry, I meant MBR when I typed SATA.

As I mentioned 12.3 and 13.1 were installed with Legacy Grub. When 13.2 was installed the default Grub 2 was selected. 42.1 of course is with Grub 2.
I will post the output from the suggested commands shortly.

How do you switch between booting Windows and booting openSUSE ?

Normally BIOS is set up to boot from sda to Windows 7 for other users. To boot to Linux I use the BIOS boot menu (press F12 etc etc)…

Thanks

PrakashC