Grub screen is there on boot (I think?) but I cannot see or interact with it

Hello,

I read a few posts about grub menu problems and tried various things but they haven’t solved my problem. I am dual booting Manjaro and Windows 10 on a laptop, one EFI partition shared between both OS. The grub menu was working fine until I started messing around. I connected another SSD via a separate Sata port that has a macOS hackintosh install (and its own EFI partition) with Opencore bootloader. Since then the UEFI entries in my laptop BIOS have changed and when I select an entry that points to the dual boot EFI partition I get a blank screen with a thing line of ?garbled graphics at the top of the screen… then a pause for the duration the Grub Menu would usually stay there for (approx 5 seconds) then it boots in to Manjaro. During this time it doesn’t matter if I press any buttons… “c”, “esc” “F8” arrow up and arrow down… this doesn’t have any effect but after a few seconds it boots in to Manjaro. It’s like the Grub menu is there but I can’t see it or interact with it in any way.

This is my /etc/default/grub

GRUB_DEFAULT=saved
GRUB_TIMEOUT=5
#GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT_STYLE=menu
GRUB_DISTRIBUTOR="Manjaro"
GRUB_CMDLINE_LINUX_DEFAULT="quiet apparmor=1 security=apparmor udev.log_priority=3"
GRUB_CMDLINE_LINUX=""

# If you want to enable the save default function, uncomment the following
# line, and set GRUB_DEFAULT to saved.
GRUB_SAVEDEFAULT=true

# Preload both GPT and MBR modules so that they are not missed
GRUB_PRELOAD_MODULES="part_gpt part_msdos"

# Uncomment to enable booting from LUKS encrypted devices
#GRUB_ENABLE_CRYPTODISK=y

# Uncomment to use basic console
#GRUB_TERMINAL_INPUT=console

# Uncomment to disable graphical terminal
#GRUB_TERMINAL_OUTPUT=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command 'videoinfo'
GRUB_GFXMODE=auto
#GRUB_GFXMODE=800x600

# Uncomment to allow the kernel use the same resolution used by grub
GRUB_GFXPAYLOAD_LINUX=keep

# Uncomment if you want GRUB to pass to the Linux kernel the old parameter
# format "root=/dev/xxx" instead of "root=/dev/disk/by-uuid/xxx"
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
GRUB_DISABLE_RECOVERY=true

# Uncomment this option to enable os-prober execution in the grub-mkconfig command
GRUB_DISABLE_OS_PROBER=false

# Uncomment and set to the desired menu colors.  Used by normal and wallpaper
# modes only.  Entries specified as foreground/background.
GRUB_COLOR_NORMAL="light-gray/black"
GRUB_COLOR_HIGHLIGHT="green/black"

# Uncomment one of them for the gfx desired, a image background or a gfxtheme
#GRUB_BACKGROUND="/usr/share/grub/background.png"
GRUB_THEME="/usr/share/grub/themes/manjaro/theme.txt"

# Uncomment to get a beep at GRUB start
#GRUB_INIT_TUNE="480 440 1"

# Uncomment to ensure that the root filesystem is mounted read-only so that
# systemd-fsck can run the check automatically. We use 'fsck' by default, which
# needs 'rw' as boot parameter, to avoid delay in boot-time. 'fsck' needs to be
# removed from 'mkinitcpio.conf' to make 'systemd-fsck' work.
# See also Arch-Wiki: https://wiki.archlinux.org/index.php/Fsck#Boot_time_checking
#GRUB_ROOT_FS_RO=true

These are other things I have tried:

Note: I wanted to include links but was not allowed as this is my first post.

First thing
I changed GRUB_TIMEOUT_STYLE=hidden to GRUB_TIMEOUT_STYLE=menu

I also have this line uncommented:
GRUB_DISABLE_OS_PROBER=false

Then…
sudo grub-mkconfig -o /boot/grub/grub.cfg
reboot

Second thing
Tried pressing buttons when the grub menu is ?probably there
c esc Shift F8

Third thing
I wrote the Manjaro ISO to a USB key and booted in to that and the “chrooted” in to the Manjaro OS on the SSD from the Live USB and executed the commands listed on that page.

grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=manjaro --recheck
grub-mkconfig -o /boot/grub/grub.cfg

Fourth thing
In /etc/default/grub I tried commenting and uncommenting…
GRUB_TERMINAL_INPUT=console
GRUB_TERMINAL_OUTPUT=console
This didn’t make any difference

I tried changing GRUB_GFXMODE=auto to GRUB_GFXMODE=800x600
This DID change the screen resolution around the time when I think the Grub menu is there but I still could not see the grub menu and pressing buttons
and arrow keys on the keyboard did nothing.

Fifth thing
In Windows 10 command line I ran this command:
bcdedit /set {bootmgr} path \EFI\manjaro\grubx64.efi

This now gives me two UEFI BIOS boot entries with the same name: Windows Boot Manager
But it is working correctly in that one brings me directly in to Win 10 and the other brings me to what I guess is the Grub Menu except as described above… I cannot see the Grub screen or interact with it and it then just boots in to Manjaro regardless of what buttons I press on the keyboard.

Sixth thing
I added a new entry to my UEFI BIOS. My EFI partition is at /dev/sda1.
Using this command…
sudo efibootmgr -c -d /dev/sda -p 1 -L "manjaro" -l "\EFI\Manjaro\grubx64.efi"
Again selecting this takes me to a blank screen, which I presume is the Grub Menu, that stays there for a few seconds and then Manjaro boots.

Any help greatly appreciated,

Flex

Hi @flexmcmurphy, and weolcome!

I have absolutely no idea is this will woork or not, but try changing this line in /etc/defaults/grub:

to

GRUB_CMDLINE_LINUX_DEFAULT="apparmor=1 security=apparmor udev.log_priority=3"

(Remove the quiet parameter.)

Followed by updating grub:

sudo update-grub

and rebooting and testing.

Once again, I have no idea if this’ll work, or even have an effect, but it might.

Hello @Mirdarthos,

Thanks for the help. I tried that and well it didn’t fix the problem. Although there are a few differences. I get more sort of snowy effect like the Grub Menu is all garbled up and that takes up about half the screen now whereas before it was just a thin line at the top of the screen.

I also see some of the ?dmesg output at the start… there was one message there after it started the bluetooth service about not finding a bluetooth firmware patch… but I doubt that has anything to do with the grub menu not showing or seemingly showing but having garbled graphics.

Maybe it’s the graphics card then? But this was working a few days ago just fine in the same laptop… nothing else has changed except I have now disconnected that other SSD that I had macOS hackintosh running from.

Another probably unrelated thing is sometimes when I boot up some of the buttons on my laptops keyboard don’t work or they will start working after a while or after I reboot. I doubt that’s related though…

I could just re-install Manjaro but I’d like to know a way to fix this because I suppose I will have this problem again in the future.

Cheers,

Flex

Hi @flexmcmurphy,

Sometimes it’s quicker to reinstall. As was the case with my first Manjaro installation that developed a problem…

I don’t have any extra advice for you, other than uninstalling Grub, removing its configs and reinstalling. But I cannot help you with steps as I’ve not done it.

Perhaps this will help: GRUB/Restore the GRUB Bootloader - Manjaro

Good luck! (Really!)

OK just to clarify what I am doing… I press F12 on boot up to enter the UEFI BIOS menu and I chose an option from there. When I do that I don’t see the Grub Menu but a blank screen for a few seconds then it boots into an OS.

But I finally stopped doing this same thing over and over again and just let the laptop boot itself into an OS so I didn’t press F12 at boot up and… the Grub menu appears?!

So then the Grub Menu DOES appear when the laptop chooses ?the default boot manager by itself but if I press F12 and then choose any boot manager myself from the UEFI BIOS list (including the default option) then Grub will not show.

I cannot understand why this is but I guess I can google some more unless someone can explain it to me?!

Cheers,

Flex

IIRC - ‘silent boot’ is more or less the default now.

You can hit ‘shift’ or ‘esc’ to bring grub up during boot.
You can also disable this setting - at a few points inlcuding above, as well as “timeout” and “timeout_style”(hidden?) in the same file.

To see more about it (and what you can disable if you so choose) … see here (though note there are slightly different variations so only ‘undo’ what applies to your system):

https://wiki.archlinux.org/title/Silent_boot

Thank you. I read that link about Silent boot. It has no effect on hiding the grub menu and I haven’t installed grub-silent.

Also, as I mentioned above, along with listing my grub config, that pressing keys when the grub menu is probably displaying (but not visible) has no effect. I tried c, esc, shift and all the function keys.

As I said before, I CAN see the grub menu when I let the laptop start up itself. The problem is when I hit F12 and go in to the BIOS and select a bootloader from there that the grub menu will then not show.

When I had a grub-menu (because I let the laptop boot itself so it chose the default bootloader itself) I went to the command line and typed videoinfo and then changed GRUB_GFXMODE=auto to GRUB_GFXMODE=1920x1080 but this had no effect on making the grub menu appear when I manually select a bootloader from the UEFI menu in BIOS.

I think it might be some video card/display setting that does not kick in so the gfxterm doesn’t work in Grub… and bizarrely only when I manually chose a bootloader from UEFI BIOS. Once the OS loads I have full display capabilities again.

Cheers,

Flex