Migrate from systemd-boot to GRUB

Hi everyone,

I’m new to EndeavourOS, just distro-hopped to it from PopOS last week.
I installed it with KDE and systemd-boot, but I’d really like to customize the boot menu. I tried rEFInd, but I’m not quite convinced by it …

I’d like to switch from systemd-boot to GRUB, but I can’t find any tutorial or forum posts about this, how can I achieve this ?

If your system isn’t encrypted, it should be fairly straight forward.

This isn’t tested but these are the general steps.

  • Remove kernel-install-for-dracut
  • Install dracut-hook and grub
  • Reinstall your kernel packages
  • Install grub as you normally would
  • Copy the kernel options from /etc/kernel/cmdline and insert them into the the appropriate place in /etc/default/grub
  • Run sudo grub-mkconfig -o /boot/grub/grub.cfg

Once it is all working and booting you can delete the extra stuff in your ESP. It would probably still be at /efi unless you remount it.

2 Likes

This always make me think twice:

Grub the package
Grub the bootloader

I guess you mean both.

1 Like

In that case, I mean grub the bootloader. The package was installed in a prior step.

1 Like

Sorry, you are right!
I missed that :older_adult: :eyeglasses:

1 Like

Thank you, these steps worked fine !

I could boot on GRUB, but there was no other entry than firmware …
I then installed os-prober and used sudo grub-mkconfig -o /boot/grub/grub.cfg to auto generate entries from other boot options, which seems to have added entries for my Windows dual-boot :

Windows Boot Manager found on /dev/nvme0n1p3@/EFI/Microsoft/Boot/bootmgfw.efi
Windows Boot Manager found on /dev/sda1@/efi/Microsoft/Boot/bootmgfw.efi

I have other options that are displayed on my systemd-boot menu, which can be found in /efi.
They’re basically the different boot options for EndeavourOS : 6.1.25-1-lts & 6.2.12-arch1-1, both with a fallback alt option).

Is there any way to add them to the GRUB menu, or at least to add a basic EndeavourOS boot option ?

grub-mkconfig should automatically find EOS. Did you reinstall your kernel packages? If not, do that and then grub sudo grub-mkconfig -o /boot/grub/grub.cfg

1 Like

ah yes I forgot this step …

but even after doing a sudo reinstall-kernels followed by a sudo grub-mkconfig -o /boot/grub/grub.cfg, there’s still only Windows boot that are displayed … am I missing something ?

That is for systemd-boot. You need to reinstall the kernel packages using pacman.

Also did you uninstall kernel-install-for-dracut?

1 Like

okay perfect, reinstalling packages solved the issue.

thanks so much !

1 Like

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.