Show grub options on boot, offering kernel selector

I’m not sure if this is a question as much as a feature request, but it’s one of the first things I felt I should bring up after taking my first look at Manjaro. Note that I only tested the OS on VirtualBox for the time being: I don’t know if the grub2 setup differs when installing on a real machine. Here’s what I should apparently be seeing based on screenshots I found… in my case I’m not getting this menu, being immediately taken to the splash screen upon booting instead:

I like the idea behind the kernel manager, which lists available kernels and lets you install or remove any version. However this system is rendered useless by the fact that you can’t choose which one to boot: The latest kernel is always loaded when the OS starts, the default setup doesn’t present any options when the machine is powered on! If you can maintain multiple kernels, shouldn’t the bootloader let you select them, while of course defaulting to the latest version?

Speaking of the boot loader: One thing that worries me is that there’s no GUI to customize it, such as setting the grub theme or default boot parameters. Changing the boot parameters is especially important: I use a GCN 2.0 AMD graphics card, because the amdgpu driver isn’t enabled by default on GCN < 3.0 cards I need to add radeon.si_support=0 radeon.cik_support=0 amdgpu.si_support=1 amdgpu.cik_support=1 otherwise I’ll be put on the deprecated radeon module instead of amdgpu. Being able to temporarily edit the GRUB command line on startup is also important for testing and debugging… to do so grub2 must show up instead of instantly booting.

It’s under “Advanced Options”. It will bring up another menu screen to let you choose which kernel to boot with.

EDIT: I just realized that was someone else’s screenshot, not your own. :yum: I was wondering if you mistook the “Advanced Options” menu entry.

2 Likes

Of course you can. Tap Esc or hold Shift on boot to show the GRUB menu.

By default GRUB is hidden unless there is more than one boot entry to choose from. Change GRUB_TIMEOUT_STYLE=hidden to GRUB_TIMEOUT_STYLE=menu.

Install the amdgpu-experimental package to automate this.

See GRUB - ArchWiki and GNU GRUB Manual 2.04: Top

1 Like

Thanks: Works exactly as intended with this change. Setting GRUB_TIMEOUT_STYLE=menu alone suffices, the other change to /etc/default/grub didn’t seem to be necessary.

Holding shift doesn’t appear to work but pressing esc does (at least on VBox). Now that I’m aware of this solution I don’t need to change the default grub configuration any more. I was going to ask why GRUB_TIMEOUT_STYLE=menu isn’t used by default and suggest changing that, but I figure there was a reason why the team decided that hiding those options behind the escape key is better… as long as this menu exists and can be opened on boot I can’t complain.

Thanks for mentioning the amdgpu-experimental solution also, that’s very useful to be aware of! On openSUSE I need to use those command line parameters to get the proper driver with my card… it’s nice to hear Manjaro offers an easier solution in the form of a package.

If you want to make GRUB show up, even if you only have one kernel installed, try this (as root)

grub2-editenv - unset menu_auto_hide

grub2-mkconfig -o /boot/grub2/grub.cfg

2 Likes

Thanks, I’ll note this possibility as well. I no longer plan on changing it now though: When I made this thread I wasn’t aware you could press esc to show this menu, I thought it simply wasn’t generated by default at all… now that I know how to access it I’m happy with the vanilla setup for grub :slight_smile:

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