[SOLUTION] Manjaro isn't detected by openSUSE GRUB

Hi, im new to using Manjaro but not a beginner in using linux in general, so please bare with me with this long post, i encountered this problem and solved it easily, so i might as well post it here just in case someone is experiencing the same problem.

In short i have:

  1. openSUSE
  2. Windows

But when i installed Manjaro, it installed fine so i just booted to opensuse and ran grub update to add manjaro to the bootlist. To my surprise it doesnt boot and grub displays an error similar to this:

error: file '/vmlinuz' not found 
error: you need to load the kernel first.
Press any key to continue

After a bit of research, i found out that BTRFS isn't properly detected by Grub for some reason, and either i need to reinstall the / on ext4 or create a separate /boot partition. Which is cumbersome for me so i decided to fiddle with the boot partition of manjaro.

So i compared manjaro's grub.cfg file to opensuse's

https://pastebin.com/raw/gXTkya8D (Manjaro)
https://pastebin.com/raw/eNFnRYZ5 (Manjaro entry under openSUSE)

Tho it's explicitely described there (2nd entry) that it's a btrfs, grub forgot adding an @
to the linuxefi and initrdefi part of the entry, resulting in grub to assume it's ext4 but BTRFS uses @ so it can't find it.

I made these changes to the line, i added an /@ to both and also erased ^ and added a space then add the /@ again. I did this to all manjaro entries created by opensuse. (advanced and memtest86)

linuxefi /@/boot/vmlinuz-5.0-rt-x86_64 root=UUID=1873dd54-9e00-4329-80fc-d4bb2eccba90 rw rootflags=subvol=@ quiet resume=UUID=d47339fc-a696-49a6-ab00-7405eeff224d
initrdefi /@/boot/intel-ucode.img /@/boot/initramfs-5.0-rt-x86_64.img

That nailed it, it now boots. Hopefully it helps :slight_smile:

This might need to be done when there is an update to grub of openSUSE(or other OSes you use with BTRFS root). i guess it's better than rebooting to bios then select manjaro boot everytime i want to use it.

Why go trough all that when you can use Manjaro Grub to detect and boot both of the other OS?

2 Likes

Manjaro doesnt detect openSUSE, even tho i grub-update, it shows that it detects openSUSE but on the actual grub.cfg, it doesn't have an entry.

Manjaro detects all OS trough os-prober and adds them to the boot menu. :slight_smile:

Isn't it:

update-grub

?

Manjaro should detect OpenSUSE. When I used to have an OpenSUSE (the only distro where I used BTRFS) install a few years ago on my multiboot machine, Manjaro certainly did.

But it was legacy BIOS, not UEFI.

yeah update-grub, typo error in the post. My system is UEFI tho

I wonder if adding Manjaro's boot entry to /etc/grub.d/custom_40 in openSUSE could be be an option?
https://help.ubuntu.com/community/Grub2/CustomMenus

hell yeah, it is possible:

  1. Backup your old grub.cfg entry
  2. Copy the line from the Windows entry (first bracket) up to the manjaro (the last bracket, there is comment lines so where it ends is visible) to the custom _40 file, hit save after.
  3. Open Yast Bootloader Option, then disable Probe Foreign OS.
  4. Press Ok and it will update grub.

In case of a new linux installation, install the bootloader on it's root then after just copy the entries of it to the grub entry you actually use.

Thanks man for tip! :smiley::smile::grin::grin:

You're welcome!
Glad you got it working!

1 Like