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
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:
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
To use it, the following commands must be executed:
sudo pacman -S --needed grub-tools
sudo grub-mkconfig -o /boot/grub/grub.cfg
Then reboot, and the menu entries should work as expected.
If either of the packages
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
os-prober and re-generate grub.cfg.