Broken GRUB after multiple (arch based distro) installations

I got a new Laptop (EFI) that I intend to dual boot. First I installed Windows, then Manjaro, all good so far.

Fast forward two weeks and I installed EndeavorOS (arch based) and realized the GRUB looked different, but all OSes were listed so I thought EndeavorOS just changed the GRUB theme or something. Then I installed ArcoLinux, same thing. GRUB looked different, all OSes listed but Only Arco and Windows are bootable, the others lead to grub rescue with the message error: grub_get_disk_size Symbol not found or something like that.

Now I was eventually able to fix that issue by just installing manjaro (over the EndeavorOS partition) again.

So a couple of questions aorse:

  1. (Why) Does every distro install their own grub on the boot partition?
  2. Can a distro be installed without adding their own GRUB (and use a pre-existing GRUB, maybe add an entry to the list via os-prober or similar)?
  3. Can manjaro specifically (through calamares) be installed without GRUB? Would that even work?
  4. How come certain OSes are bootable from “other” GRUBS while manjaro seems broken when trying to boot from ArcoLinux GRUB (while booting to Arco works from manjaro GRUB)?
  5. Can I delete the newly installed manjaro (I installed just because of grub but won’t actually use since I have another manjaro installed) without breaking grub again?

Below a ls of the /boot/efi/EFI directory/partition.

defjux# ls -la /boot/efi/EFI
total 7
drwx------ 7 root root 1024 28. Mär 03:48 .
drwx------ 4 root root 1024  1. Jan 1970  ..
drwx------ 2 root root 1024 28. Mär 03:48 ArcoLinux
drwx------ 2 root root 1024 16. Mär 23:58 Boot
drwx------ 2 root root 1024 27. Mär 15:46 EndeavourOS
drwx------ 2 root root 1024 17. Mär 01:23 Manjaro
drwx------ 4 root root 1024 16. Mär 23:56 Microsoft
defjux# ls -la /boot/efi/EFI/ArcoLinux /boot/efi/EFI/Boot /boot/efi/EFI/EndeavourOS /boot/efi/EFI/Manjaro /boot/efi/EFI/Microsoft
/boot/efi/EFI/ArcoLinux:
total 134
drwx------ 2 root root   1024 28. Mär 03:48 .
drwx------ 7 root root   1024 28. Mär 03:48 ..
-rwx------ 1 root root 135168 28. Mär 03:48 grubx64.efi

/boot/efi/EFI/Boot:
total 150
drwx------ 2 root root   1024 16. Mär 23:58 .
drwx------ 7 root root   1024 28. Mär 03:48 ..
-rwx------ 1 root root 151552 28. Mär 19:40 bootx64.efi

/boot/efi/EFI/EndeavourOS:
total 134
drwx------ 2 root root   1024 27. Mär 15:46 .
drwx------ 7 root root   1024 28. Mär 03:48 ..
-rwx------ 1 root root 135168 27. Mär 15:46 grubx64.efi

/boot/efi/EFI/Manjaro:
total 150
drwx------ 2 root root   1024 17. Mär 01:23 .
drwx------ 7 root root   1024 28. Mär 03:48 ..
-rwx------ 1 root root 151552 28. Mär 19:40 grubx64.efi

/boot/efi/EFI/Microsoft:
total 8
drwx------  4 root root 1024 16. Mär 23:56 .
drwx------  7 root root 1024 28. Mär 03:48 ..
drwx------ 40 root root 5120 16. Mär 23:56 Boot
drwx------  2 root root 1024 16. Mär 23:58 Recovery

Hi, @kwolf,
In the Manjaro manual it is recommended not to install another grub when you have installed Manjaro and Windows, because Manjaro detects the new installation and appends it to the grub.

Hope this help,
Regards,

Thanks for your reply.

Let’s assume I would want to install another manjaro, how would I go about installing it through calamares without another grub?

Hello, when you arrive to partition scheme in Calamares, by default the bootloader installation is selected.

You’'ll have to manually choose not to install it.

When I had 3 different Manjaro systems, I had first installed KDE and added after Cinnamon and Gnome. I dif not know yet how Grub worked, and Cinnamon came in the 1st place instead ok KDE. I had to reinstall Grub within KDE to put it back. Same for Gnome…

When Architect was still a thing, I’d installed my additional Manjaro without bootloader, as Grub was already installed by my primary system.

1 Like

Hi @kwolf , the answer is yes because is recommended in the user guide.
‘Manjaro - User Guide’
Regards

You might be able to to install without GRUB by commenting out the - bootloader option in calamares configuration file
Specialized Settings - calamares Wiki ¡ GitHub
calamares/settings.conf at calamares ¡ calamares/calamares ¡ GitHub

Or use manjaro-chroot from a live ISO to restore Manjaro GRUB after installing another distribution
GRUB/Restore the GRUB Bootloader - Manjaro

1 Like

Hi, thanks for your reply. Although I have to admit I don’t really understand it. What is “yes” the answer to, and what is recommended in the user guide?

The user guide is a good tip though, forgot about that.

Thanks for your reply.
How do I manually choose not to install it? If there is an option in the GUI I couldn’t find it.

Besides I went through the User Guide and it said the following:

Screenshot_20210330_185251

Oh, and I am running an EFI system. So this excert strongly indicates that I cannot install manjaro on efi without installing GRUB, too bad.

Thanks a lot for the pointers and links, didn’t know you can configure calamares.

The /etc/calamares conf file looks like this on the live iso (please ignore the relative line numbers):

[...]

 33 sequence:
 32     - show:
 31         - welcome
 30         - locale
 29         - keyboard
 28         - partition
 27         - users
 26         - packagechooser
 25         - summary
 24     - exec:
 23         - partition
 22         - mount
 21         - unpackfs
 20         - networkcfg
 19         - machineid
 18         - fstab
 17         - locale
 16         - keyboard
 15         - localecfg
 14         - luksopenswaphookcfg
 13         - luksbootkeyfile
 12         - initcpiocfg
 11         - initcpio
 10         - users
  9         - displaymanager
  8         - mhwdcfg
  7         - hwclock
  6         - services
  5         - grubcfg
  4         - bootloader
  3         - postcfg
  2         - umount
  1     - show:
36          - finished

[...]

So would you remove the -grubcfg line as well or just the -bootloader line? I didn’t find much information about what those do on Deploy Configuration · calamares/calamares Wiki · GitHub

Have you had any experience with this so far?

Edit: Oh maybe there is more info about grubcfg and bootloader in the actual modules under /etc/calamares. Will have to check.

Edit: The grubcfg does not seem to have a module config in the /etc/calamares/modules/ folder. The bootloader config is as follows:

  0 --
  1 efiBootLoader: "grub"
  2 kernel: "/vmlinuz-5.9-x86_64"
  3 img: "/initramfs-5.9-x86_64.img"
  4 fallback: "/initramfs-5.9-x86_64-fallback.img"
  5 timeout: "10"
  6 kernelLine: ", with linux59"
  7 fallbackKernelLine: ", with linux59 (fallback initramfs)"
  8 grubInstall: "grub-install"
  9 grubMkconfig: "grub-mkconfig"
 10 grubCfg: "/boot/grub/grub.cfg"
 11 grubProbe: "grub-probe"
 12 efiBootMgr: "efibootmgr"
 13 #efiBootloaderId: "dirname"
 14 installEFIFallback: true

Hello, go to manual partitioning. I thought it was visible from the standard partitioning menu, but I can’t verify right now, I’m on my phone.

In the bottom, you should have a drop down list asking where to install your bootloader, or choose not to install any.

I have no experience in using this. I just remembered seeing it when I was checking out the Wiki a few weeks ago

I would use the calamares GUI option to choose no bootloader if it is available before trying to reconfigure calamares

Hi @kwolf ,
The link I wrote in my post send you to download the install guide. I downloaded the guide and searched for GRUB: what I found in page 41 says:
Boot loaderA boot loader is a program which enables you to choosewhich operating system to boot when you turn on your computer.At boot, a list of all detected operating systems on the computer isdisplayed. One of the most widely used boot loaders isGRUB. Itis the one installed by Calamares, the installer used by Manjaro

Afterwards, on page 51 I found this.
Update the GRUB boot loader, or “Where did Windows go?”Sometimes the boot loader GRUB2does not detect an existing Mi-crosoft Windows installation when installing. This means that onlyManjaro Linux will appear in the list of installed operating systemswhen you boot the machine.To solve this problem, run the command:sudo update-grubin a terminal after booting into Manjaro and it will detect Windowsand add an entry to the boot menu

At last, in page 53 you can read the following text:
Luckily, in all assisted installation options, Calamares handlesthe creation of this partition if it does not already exist and writesthe necessary files to it. If the partition already exists, it is detectedand used to write the files. In this chapter, for UEFI systems, it is onpartition sda1. Also, on UEFI, no matter which method you choose toinstall Manjaro, you won’t be asked whether you want to install the GRUB boot loader or not. It will be installed automatically

Then, the answer yes is that Manjaro always detects new installations and add them to de GRUB, whether is not detected you can also run sudo update-grub and you have the new operating system on the GRUB.

Regards,

@Falav I can’t seem to find that option in manual partitioning. But the manual says that you won’t get choices using EFI, so…

@nikgnomic Sounds like good advice. I can’t seem to find a GUI option so I’ll probably play around with the calamares config, but I’ll save that until I have to install another OS, since it’s working ATM, hehe.

@j8a Thanks for clarifying.