How to handle GRUB

Hi All,

No idea if this is the right forum to ask my question, I was kinda looking for a installation section but couldn’t find it.

I have Manjaro 16.10.3 installed on disk sda. The rest of disk sda and the complete sdb are empty and are meant for tryouts of other distro’s. I was curious about OpenSuse Tumbleweed and installed it on 3 new partition son disk sdb. I chose not to install GRUB in OpenSuse because I wanted to keep the Manjaro one. I thought, after installing OpenSuse, I would boot into Manjaro, select update-grub which would find OpenSuse as well and I would be able to boot into either of the two. Well, thought, would and would be able don’t work so well. Update-grub did not find Suse and after a reboot I was back in Manjaro. Nice, but not what I wanted.
Question: how do I set up a second OS with relation to Grub and maintain Grub from the first OS (Manjaro) so I can steer everything from that OS, even when I delete the second (third, fourth?) OS?
Is there a simple way of explaining this or maybe even a tutorial somewhere?
Thanks a lot.

is sdb mounted in your Manjaro fstab at all? Update-grub might not find an OS on a device it doesn’t know to look at.

The only time I played around with multiple Linux distros I installed them with their bootloaders (ie GRUB), made sure in BIOS/UEFI settings that Manjaro bootloader was the default / first in boot order, and ran sudo update-grub in Manjaro to add the other Linux distro entry, if it is not already added.

Not sure what happens if you install another distro without a bootloader and run sudo update-grub. Might explain why update-grub doesn’t find it.

Be aware though that updating other distro kernels can cause issues with Manjaro GRUB. They can be easily fixed though.

@DeMus The most likely cause why Manjaro update-grub did not pick up OpenSuse (which is on another disk) is that

Disks are not partitioned the same (gpt/msdos).
Hopefully you did not also install them with different boots (uefi/bios-legacy).

If unsure, print out output of “fdisk -l” (need info for all disks - do not omit any disk)

New disks (bought off the shelf) especially ssd’s are raw disks - they are not prepartitioned - their partitioning is neither msdos nor gpt. You will need to set up the partitioning (msdos or gpt - not just adding partitions).

You can try same Opensuse installation on ‘sda’ partition instead of on sdb. Manjaro should pick up Opensuse entry.

ps - in older times, hard disks bought off the shelves are by default msdos partitioned.

It’s a simple case of stacking. The opensuse grub is the first stack, next is manajro stack. Manjaro stack will overide opensuse stack. The scenario goes on as more stack are added, but if you want to use manjaro grub or opensuse grub as your main grub . Simply boot into manjaro or opensuse and re-update grub.It will overwrite your current grub.

Thank you, thank you, thank you for all the answers and advice.
I guess I know now what I did wrong: Disk sdb was not a part of my Manjaro setup so the Manjaro grub could not find OpenSuse on sdb.
I did use gpt and efi on both setups, that’s not the problem.

Wil try again after making sure Manjaro knows the partitions which will be used for Susy.

Another reason could be, which I also read here, is the installation of OpenSuse without grub. I did that not to let OpenSuse take over Grub. But even when that happens and the next boot is in OpenSuse’s Grub, is it easy to move it over to Manjaro again, simply by using update-grub from within Manjaro?

Thank you so much for all your help.

Can you explain further?
Do you mean you did not mount the $esp and the installation proceeded anyway?
If you mounted the $esp, is it as /boot/efi or /boot ?

Still interested in your “fdisk -l” though. It may tell more.

Sorry, but fdisk -l will not show you anything since I have deleted all partitions except the two I use for Manjaro.

fdisk -l /dev/sda
Disk /dev/sda: 119,2 GiB, 128035676160 bytes, 250069680 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: gpt
Disk identifier: 75BAB8AF-75C6-4C85-AA8A-993F0489B37C

Device       Start      End  Sectors  Size Type
/dev/sda1     2048  1050623  1048576  512M EFI System
/dev/sda2  1050624 68159487 67108864   32G Linux filesystem
fdisk -l /dev/sdb
Disk /dev/sdb: 119,2 GiB, 128035676160 bytes, 250069680 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: gpt
Disk identifier: BDE68DEA-66C2-41CF-B44C-E1EF43F24078

What is $esp?
What I did was:
I copied the OpenSuse ISO to a USB stick and booted from that
Then it was a normal installation like I have done so many times, this time on 2 partitions on sdb, except without adding Grub to OpenSuse.
I booted into Manjaro again and performed update-grub but this did not find the OpenSuse installation.

What is $esp?

It’s like your sda1 and in fat32 [0]
We cannot install any OS in uefi/gpt without mounting the $esp at installation.
So to install Opensuse in uefo/gpt, we will need to select an $esp to mount.
And if that is mounted as /boot/efi, grub 2 will be installed as the bootloader. [1]
If that is installed as /boot, bootloader will be bootctl (aka systemd boot) [1].

So if $esp is not selected, it is unlikely to be installed in uefi - (hence my first post).
If install media is booted in uefi (and that is required if we were to install in uefi) and $esp is not selected as mount point, installation will not proceed.

[0] - you can check your manjaro /etc/fstab and see that /boot/efi (your sda1) is an entry there.
Or use ‘findmnt /boot/efi’ in a terminal.

[1] - rEFInd can be installed when $esp is mounted either as /boot (preferably) or as /boot/efi but that will take additional ‘deliberate intervention’ steps. Just to be technically accurate. But whatever, $esp has to be mounted for uefi.

This is my fstab:

# <file system>                           <mount point>  <type>  <options>  <dump>  <pass>
UUID=54F8-4DFB                            /boot/efi      vfat    defaults,noatime 0       2
UUID=c6032d7d-d108-4f37-a8ec-7662d75fe5b6 /              ext4    defaults,noatime,discard 0       1
UUID=a41f5474-7f26-4807-87d3-279976d1a844 /Data          ext4    defaults,noatime 0       2
UUID=646d28e0-fa3a-4ad4-8890-ba1940ff448c /Music         ext4    defaults,noatime 0       2
tmpfs                                     /tmp           tmpfs   defaults,noatime,mode=1777 0       0
#

/boot/efi is sda1, / = sda2, /Data is sdc1, .Music is /sdd1
sda (and sdb) are SSD’s, sdc and sdd are 1TB normal hard disks

"We cannot install any OS in uefi/gpt without mounting the $esp at installation."
Do you mean I need it for Manjaro as well? No idea if I have it.
Sorry, but I have no idea what you are talking about, I have never read anything about $esp and have no idea what it is. Do you know where I can read something about it? You make it sound like it is something I can’t live without. (and no, this is not sarcasm, it is just, as I said, I know nothing about it)

Yes, you have it. Here it is…

This is my fstab:
UUID=54F8-4DFB /boot/efi

It is your sda1. You can verify the UUID of your sda1 with

sudo blkid

[quote=“DeMus, post:10, topic:14101”]
$esp…You make it sound like it is something I can’t live without. (and no, this is not sarcasm, it
[/quote]:smile:
Yes. $esp is something uefi cannot live without.

You and I, on the other hand can live without many things…:relaxed:

1 Like

He is talking about your EFI System Partition, can’t really use a UEFI installed OS without one.

This is it on your system.

UUID=54F8-4DFB       /boot/efi      vfat    defaults,noatime 0       2

Right or wrong I have always installed different OSes on separate hard disks, each with their own EFI boot partition, and managed boot order in GRUB. Of course if you are installing multiple OSes on the same hard disk you can only have one, and then it becomes important the order in which you install them (ie install Manjaro last to ensure your ESP has Manjaro GRUB). This is why you need to make sure the ESP is mounted before installation begins.

2 Likes

Well, in the mean time I did a complete overhaul of my system. I don’t use gpt and efi anymore, got me into more problems than I could handle. I’m back to good old mbr and msdos partitiontype.
Manjaro is up and running again, will make a complete backup of it after some extra settings I need to do and then I can start playing with other OS’es again.

@sueridgepipe, @gohlip
I really didn’t know the abbreviation $esp (or even esp) so I had no idea what you were talking about.
Will have to do some serious reading someday (when?) to find out about it.
I want to thank you for all the help you gave me, it is really appreciated.

Why not just set up VirtualBox. It doesn’t care where you install your experimental machines, and instead of shutting down one to run the other, you can run two or more at a time.

1 Like

This is what I do too. If there is a distro, or interesting/advanced/quirky Linux setup, that piques my interest I just create a virtual machine and install there. It is very quick, hassle free, and no chance of affecting your “production” environment. You also don’t have to create bootable USB/DVD, just point the virtual optical device to the installation ISO file.

Another advantage is you generally don’t spend a lot of time friggin’ around with drivers and hardware, instead just exploring, experimenting and using the OS. If you like what you see you can keep the VM, or bare metal install if you wish (check driver compatibility with their Live environment first though). If you don’t like it, or are done playing, just blow it away with one click.

Did you ever add /dev/sdb to the manjaro fstab? I really think that might help grub find the installation on that disk.
You might also want to check that you os-prober installed and that /etc/default/grub does not include
GRUB_DISABLE_OS_PROBER=true

Yes, I did add sdb to fstab, but I was fed up with the gpt and efi stuff so I rearranged the disk (sda) and since I don’t need sdb yet I did not format it. Will concentrate first on getting Manjaro exactly the way I want it.

Is /boot/efi flagged as “boot” ?

Regards

I use plain old msdos partitions and everything works as it should now. Happy again.

1 Like

Me too. My machine came with GPT/EFI and Windows and I have read several places–including the ArchWiki–that GPT is newer and superior to MSDOS tables, but somehow I missed reading the part where they explain how it is superior and by what/whose measurements. Perhaps error-checking or the extra file table? I dunno.

Anyway, I’ve done it both ways–GPT/EFI and MSDOS/MBR–and don’t see any perceived functional differences, so I dunno on that account, either. (I don’t run Windows.) Anyway, I’m back to MSDOS/MBR and it sure seems simpler that having a special /boot/efi partition all its own. It just strikes me as suspicious, needing what amounts to a boot interpreter.

Regards

1 Like

Forum kindly sponsored by Bytemark