Grub-tools doesn't work if "grub-silent aur" is installed

crosslinked

3 Likes

Likely to be down to

?

3 Likes

I’ll look into this as soon as possible.

But until the reason is found, we can consider grub-silent and grub-tools “conflicting”.

4 Likes

Packages grub-silent and grub-tools may not be fully compatible. Especially future changes of grub-silent may complicate things further because grub-silent and grub-tools have (partially) been changing the same grub source code files.

Anyway, after replacing grub with grub-silent, you should run commands

  grub-fix-initrd-generation
  grub-mkconfig -o /boot/grub/grub.cfg

to make grub-silent and grub-tools work together (but no guarantees!).

And if you update grub-silent later, you may need to run those commands again.

EDIT: as mentioned below by @mireiner , grub-fix-initrd-generation will update grub, so a separate command for updating grub is not needed.

2 Likes

Hello Manuel,

thank you for the fix. It works!

I suspect that you can skip the “grub-mkconfig -o /boot/grub/grub.cfg” command. Because I got the impression that the command “grub-fix-initrd-generation” already does a grub update as last step.

When I saw this when running the command “grub-fix-initrd-generation” I didn’t run the “normal” grub update after that. And it worked.

So I suspect if you have grub-silent installed you just have to run “grub-fix-initrd-generation” to update grub instead of “grub-mkconfig -o /boot/grub/grub.cfg” and you’re done.

In the long run the ideal solution might be to include the code of grub-silent into EndeavourOS grub-tools - or make it in some way optional.

Thanks again,
mireiner

1 Like

That’s true! I had already forgot it, as the initial version of grub-fix-initrd-generation did not update grub.
Anyway, thanks for reminding! :+1:

By the way, welcome aboard! ::smile:

Welcome to the forum @mireiner I hope you enjoy your time here.

Pudge

Hello Manual & Pudge,

thank you both for your welcome.

I have to correct myself. Now as the first kernel update came in I saw that ‘grub-fix-initrd-generation’ didn’t automatically call ‘grub-mkconfig -o /boot/grub/grub.cfg’. Probably it’s doing this only for a fresh grub install.

So it’s just as Manual stated: Both commands have to be called after another if the kernel has updated. A bash alias can make it more handy:

alias update-grub=‘sudo grub-fix-initrd-generation && sudo grub-mkconfig -o /boot/grub/grub.cfg’

A pacman hook
/etc/pacman.d/hooks/grub-update-after-kernel.hook
calls grub-mkconfig ... when a kernel or microcode is installed or removed.
Grub doesn’t need to be updated if kernel is updated.

Another pacman hook
/etc/pacman.d/hooks/grub-fix-initrd-generation.hook
calls grub-fix-initrd-generation when either grub or os-prober is updated.