Multi boot - Cannot boot Manjaro post install on Multi OS SSD

Greetings all,

I have some limited experience with Linux Ubuntu OSs and it’s my first time with Manjaro :slight_smile:

I have successfully installed Manjaro Cinnamon version on my multi boot SSD that contains Mint, Ubuntu and Zorin. These OSs each boot fine via Grub but Grub cannot see my new Manjaro install. I suspect that the issue could be the Manjaro Btrfs format. Have tried os-prober in Mint, Ubuntu and Zorin hoping that it would pickup the Manjaro partition and add it to the Grub menu but I was unsuccessful. Appreciate your thoughts. Cheers

Failure to boot in multiboot environment is (often) caused by a mixup in BIOS/MBR/GPT vs. EFI/GPT

If os-prober does not pick the installation up - most likely caused by different grub versions (creating different configuration files).

If your installations are not encrypted and your computer boot in EFI mode - you could use rEFInd as your primary loader - rEFInd can boot the kernel directly - incredibly simple.

How you install rEFInd with one of the existing operating systems, I don’t know - so I am guessing

sudo apt install refind

Multi-booting several Linux distributions using one instance of Grub to manage all of them will sooner or later cause you grief.

Manjaro, for example, uses a custom Grub due to Manjaro managing multiple kernels – the Manjaro instance of Grub must always be used to boot Manjaro, therefore it must also be the default for the other distributions.

As you can imagine, other distributions might have their own reasons for demanding prime position. This scenario can quickly become messy.

The following presumes all distributions boot using UEFI.

A more manageable solution to multi-booting with several Linux flavours in the mix, is to use the rEFInd boot manager as your initial boot loader, which in turn will effectively chainload every UEFI boot loader GRUB in your system, including that of Windows or BSD, if they exist.

This allows one to leave each GRUB untouched and managed by it’s respective OS – this means less maintenance and no more juggling settings to enable a successful boot.

For convenience, rEFInd should be installed to Manjaro, and will only be managed from within the Manjaro OS.

Setting up rEFInd is quite easy;

1. Install the rEFInd package so that it’s available to Manjaro.

sudo pacman -S refind

2. Use rEFInd’s own tool to install it to the $ESP.

sudo refind-install

After a reboot, rEFInd should be your default UEFI boot manager and allow you to boot each Linux OS either via GRUB or directly via the kernel stub.

In the rare case that it’s doesn’t automatically assume the role of default boot, you will need to boot to your UEFI BIOS and select “rEFInd UEFI boot manager” manually as the first in boot order.

rEFInd is configured from one file which can be edited using:

sudo nano /boot/efi/EFI/refind/refind.conf

The defaults are quite sane – in fact, it’s likely all you might want to change is the timeout and the theme.

Another nice feature of rEFInd is the ability to bypass Grub and boot the kernel stub directly (on most Linux distributions).

This is very handy in the event that Grub is not booting (for whatever reason) as it allows to still launch the OS, while diagnosing and repairing whatever you may have broken.

I hope this is useful.

Regards.

2 Likes

Many thanks. Whew. There’s a a bit to do then. OK. I will reinstall Manjaro tomorrow and try your suggestion. I haven’t delved into the EFI boot system before so It’l take me some time to check this out. thanks again. Will update tomorrow. Cheers

Thank you. I will try this tomorrow. Cheers

Well, if you call two commands “a bit to do”, I guess so. :wink:

I had presumed you would use the existing installed Manjaro, but if you’re going to install afresh, I might suggest choosing ext4 rather than btrfs as the filesystem, to maintain compatibility with Grub.

Configuring swap during install is also a good idea.

Regards.

Am I able to choose ext4 before/during the install setup? If so how.

Yes.

That depends on which partitioning method you choose.

Pay attention while installing – many claim they “didn’t see” the option – but, it’s certainly there, albeit not for every partitioning method.

The most versatile is to choose the manual partitioning method.

Important: Choose not to format the $ESP if using the manual partitioning method, otherwise you will overwrite boot files of the other distribution(s).

The documentation might be a little rusty in parts but should still give a fair indication.

Regards.

OK. Understood

Assuming it’s installed as UEFI. Did you try configuring the UEFI to use Manjaro’s grub, and then updating Manjaro’s grub using os-prober?

Never had an issue myself.

I tried refind but at least on my laptop it’s slower and less reliable than grub.

My experience with rEFInd over the course of the past decade has been quite the opposite. Once configured properly it never misses a beat.

However, the whole point is to have rEFInd manage the boot selection, without having to force one Grub instance to co-exist with other distributions.

As mentioned immediately below the text you quoted:

Of course, any benefit from rEFInd depends on each OS booting as UEFI – it’s quite useless in a BIOS/MBR scenario.

Thanks dmt. I don’t know whether or not my installations are via UEFI as I don’t quite understand UEFI. I guess that this has something to do with the bios? Is UEFI installation a choice? How would I go about configuring the UEFI to use Manjaro’s Grub? I apologize for such basic questions. As you can see, I am new at all this. It’s also the reason why when someone suggests it’s only entering a couple of lines of code in the terminal and that it’s simple to do that I am trying to understand how and why I am doing stuff. Oh well, it’s a learning process for us noobs. cheers

1 Like

There’s a simple command, which will tell you whether your system has booted up in UEFI mode or in legacy BIOS mode… :backhand_index_pointing_down:

[ -d /sys/firmware/efi ] && echo UEFI || echo BIOS

In order to help you understand the above syntax, the command above is actually shorthand for the following script, which will do the exact same thing… :backhand_index_pointing_down:

if [ -d /sys/firmware/efi ]
then
   echo UEFI
else
   echo BIOS
fi

Furthermore, the construct “[ -d directory-name ]” means “run a test if the directory with name directory-name exists.”

&&” is a logical AND, and “||`” is a logical OR.

The two articles below will explain things. :wink: :backhand_index_pointing_down:

The Manjaro USB/DVD will upon booting detect whether the system was booted in UEFI mode or in legacy BIOS mode.

If you have UEFI firmware — all computers made in the last 15+ years do — then is advised to disable legacy BIOS emulation and install the system in native UEFI mode.

However, with UEFI also comes a thing called Secure Boot, which is a requirement for running the latest versions of Microsoft Windows.

While it is possible to get Manjaro to work with Secure Boot, it is not officially supported by the Manjaro Team, and therefore getting Secure Boot to work with Manjaro is the responsibility of the user. The Arch Wiki does however have instructions on how to set it up. :backhand_index_pointing_down:

Despite its name, Secure Boot is not actually secure. It is merely a mechanism to disallow a computer system from booting an operating system that hasn’t been signed with a special key from Microsoft, and as a so-called security technology, it has already amply been bypassed. The advice therefore is to just disable it and not bother with trying to get it to work in Manjaro.

Every command has a man page, i.e. a synopsis that tells you what it’s for and how to use it. An example follows below. :backhand_index_pointing_down:

man pacman

Sometimes there is additional — commonly more specialized — information in a separate man page, in which case you can also specify the section number of that particular page. An example follows below. :backhand_index_pointing_down:

man 2 chmod
2 Likes

Thank you! This is so helpful.

I entered [ -d /sys/firmware/efi ] && echo UEFI || echo BIOS and the result was UEFI. My Fast Boot and Secure Boot have always been disabled. I am installing via native UEFI mode. This morning I installed Manjaro again (post a foxclone image restore of my previous Mint, Ubuntu and Zorin) and followed the directions from others that I should try manual partitioning during the Manjaro install. I also designated ext4 as the base format.

There were some other options available such as / and root, and so on that I didn’t designate or touch. All went well with the Manjaro install but when it came to reboot the result just hangs with a line that says ‘Grub..’ As I can still not actually get into Manjaro to somehow fiddle with Grub then I am back to square 1.

It seems to me that there is a problem with the Boot loader and Grub, and probably still is also with the way that I did the manual install. From my reading of many posts apparently Manjaro has a particular Grub profile that either needs to be somehow activated or I should clean install Majaro first then Zorin, then, Ubuntu, then Mint.

Cheers

Well, during the partition creation phase, you must set a mountpoint for the root partition, i.e. /. If you do not set this, then grub won’t know where to load the kernel from.

If this is the problem, then you don’t need to reinstall. Just boot up from the installer USB, open up a terminal window, and mount the partition that you know you installed Manjaro to.

If this partition is /dev/sda4 — note: this is an example, and it may be called differently on your system — then the command will be… :backhand_index_pointing_down:

sudo mount -t ext4 /dev/sda4 /mnt

Next, issue the command… :backhand_index_pointing_down:

blkid

… and write down the UUID of the partition Manjaro is on.

Then, edit your fstab. :backhand_index_pointing_down:

sudo nano /mnt/etc/fstab

Check whether there is a line with the UUID that you’ve just written down. If not, add the following line… :backhand_index_pointing_down:

UUID=the-uuid-you-wrote-down  /  ext4  defaults   0   1

Save the file and exit nano.

Now, you must chroot into your installation… :backhand_index_pointing_down:

sudo -i
manjaro-chroot -a

Select the Manjaro partition from the menu.

And now, reinstall grub. :backhand_index_pointing_down:

grub-install --recheck && update-grub && sync

If all went well, you can now safely reboot — cleanly, of course — and you should be able to boot into Manjaro.

Crossing your fingers might help. :wink:

:crossed_fingers:

The manual partitioning method is indeed the most versatile.

However, it seems obvious this is where you faltered.

Manual partitioning infers that nothing is done automatically; you need to tend to each item – designate it, touch it.

If you failed to create a partition for the / (root) file system; configure it to be formatted (as ext4 or btrfs, for example); failed to set the appropriate mount point (/) for the partition; or failed to set the mount point for the existing $ESP (/boot/efi); plus, if you wanted a swap partition, that would need to be configured manually, also.

Any of these steps, if missed, might have placed you in your current situation. Any of these might also be recoverable. However, given that there’s no mission-critical data to be lost, you may as well simply start over.

Regards.

Thank you. Understood.

Thank you. As I am now back to my original foxclone saved image (Zorin, Ubuntu and Mint without Manjaro) I’ll do a Manjaro install via the Manjaro partitioning method. If this still fails then I will try your processes. All with fingers crossed, of course

1 Like

I think the rest has been dealt with, so:

You go into the UEFI settings and change the boot priority (it may have a different name). You can also use efibootmgr.

There should also be a boot menu, that allows you to select whichever option you want (for a single boot).

1 Like

Okaay… So I almost got there. With fingers firmly crossed I got as far as the grub-install --recheck && update-grub && sync. All seemed fine but when I when to reboot…it wouldn’t. Something about ‘Unable to mount…’ Sadly the screen just blacked out before I could write it down. Then when I reboot the black screen just hangs.

So, I did a clean install for the SSD with Manjaro up first, then Mint, then Ubuntu. All good. I nano fiddled with the Boot menu so the boot menu actually shows and as I progressively installed Mint and Ubuntu they too showed up in the boot menu. It seems to me that Manjaro needs to be first in the rank and it’s boot system can look after the others. Interestingly, when I installed Ubuntu the boot menu automatically updated (by Ubuntu) so I didn’t have to go into to Manjaro to update Grub. Whew. It’s been a worthwhile learning journey. cheers