1. Home
  2. Docs
  3. Installation
  4. Grub: how to fix booting of other Arch based systems

Grub: how to fix booting of other Arch based systems

By: Manuel
Date: 2020-Jan-03

Fixing a grub & os-prober issue

This article deals with the situation where there are other Arch based operating systems already installed onto a machine, and EndeavourOS is then installed to that machine.

There is a long-standing and annoying issue with co-operation between packages grub and os-prober. The generated /boot/grub/grub.cfg file fails to boot some Arch based operating systems!

The reason for the issue is the handling of the initrd lines during generation. On Arch based systems there may be more parameters for the initrd line than simply the initramfs image: the microcode image. And that is not generated properly along with the initramfs image.

For example, when using a microcode image, this kind of initrd line should be generated:

initrd /boot/intel-ucode.img /boot/initramfs-linux.img

but instead, this is generated:

initrd /boot/intel-ucode.img

And that particular boot menu entry fails to boot!

The fix is using the EndeavousOS package grub-tools. It contains program grub-fix-initrd-generation which can fix the co-operation error in the implementation of gruband os-prober.

To use it, the following commands must be executed:

sudo pacman -S --needed grub-tools
sudo grub-fix-initrd-generation
sudo grub-mkconfig -o /boot/grub/grub.cfg

Then reboot, and the menu entries should work as expected.

Additional notes

If either of the packages grub or os-prober is updated, the above commands need to be re-executed (provided the issue is not fixed upstream).

To remove the fix, simply re-install packages grub and os-prober and re-generate grub.cfg.

Follow us
Was this article helpful to you? Yes 3 No

How can we help?