GRUB selection menu is working, but not showing up on screen

Hey guys. I just finished a Manjaro/Windows10 dual boot set up on my Thinkpad W541. Everything went well except I ran into a strange problem.

Whenever I boot up the system, instead of the GRUB menu showing up on screen, it’s stuck at the Lenovo logo. However, I can confirm that GRUB is indeed running in the background (despite the display being stuck at the Lenovo logo) because I can still interact with it via my keyboard. For example, if I press “Enter”, it boots straight into Manjaro; and if I press the “Down” key and then “Enter”, it boots to Windows 10. This shows that GRUB is running, just that the menu interface isn’t showing.

GRUB_DEFAULT=0
GRUB_TIMEOUT=60
GRUB_TIMEOUT_STYLE=menu
GRUB_DISTRIBUTOR="Manjaro"
GRUB_CMDLINE_LINUX_DEFAULT="quiet apparmor=1 security=apparmor resume=UUID=2bc98e71-4074-46c4-9ac5-1211bafa25e6 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

# 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

I’m fairly new to linux, so it would be great if someone can help me out.

Did you run update-grub after adjusting /etc/default/grub?
You can alao try to set GRUB_TERMINAL_OUTPUT=console.

I did. The first thing I did after the installation is edit the grub file and then run update-grub. After that I rebooted and saw the screen stuck at the Lenovo logo. I thought something broke, but then I pressed enter and it boot straight to manjaro in 2 seconds. That was when I suspected that GRUB menu is already running, just that I can’t see it on the display. I rebooted again and pressed the down key and then enter. Indeed, it booted into windows.

Here I would replace ‘auto’ by 640x480 or the actual monitor resolution.

Afterwards, run

sudo update-grub

and reboot.

Hello. Let me try that for a sec.

Tried it. Still the same result. Stuck in Lenovo screen, but GRUB still working.

Do I need to add 1920x1080 as a string? As in, “1920x1080” ?

No, just

`GRUB_GFXMODE=640x480

Please, post

inxi -Sza -Gza

Hello. Here is the output of the command you requested:

System:
  Kernel: 5.10.52-1-MANJARO x86_64 bits: 64 compiler: gcc v: 11.1.0 
  parameters: BOOT_IMAGE=/boot/vmlinuz-5.10-x86_64 
  root=UUID=f215b1a2-4962-4a2c-a898-1e90b53b0f49 rw quiet apparmor=1 
  security=apparmor resume=UUID=2bc98e71-4074-46c4-9ac5-1211bafa25e6 
  udev.log_priority=3 
  Desktop: Xfce 4.16.0 tk: Gtk 3.24.29 info: xfce4-panel wm: xfwm 4.16.1 
  vt: 7 dm: LightDM 1.30.0 Distro: Manjaro Linux base: Arch Linux 
Graphics:
  Device-1: Intel 4th Gen Core Processor Integrated Graphics vendor: Lenovo 
  driver: i915 v: kernel bus-ID: 00:02.0 chip-ID: 8086:0416 class-ID: 0300 
  Device-2: NVIDIA GK106GLM [Quadro K2100M] vendor: Lenovo driver: nouveau 
  v: kernel bus-ID: 01:00.0 chip-ID: 10de:11fc class-ID: 0300 
  Device-3: Chicony Integrated Camera type: USB driver: uvcvideo 
  bus-ID: 3-12:3 chip-ID: 04f2:b39a class-ID: 0e02 
  Display: x11 server: X.Org 1.20.11 compositor: xfwm4 v: 4.16.1 driver: 
  loaded: intel,nouveau unloaded: modesetting alternate: fbdev,nv,vesa 
  display-ID: :0.0 screens: 1 
  Screen-1: 0 s-res: 1920x1080 s-dpi: 96 s-size: 508x285mm (20.0x11.2") 
  s-diag: 582mm (22.9") 
  Monitor-1: eDP1 res: 1920x1080 hz: 60 dpi: 143 size: 340x190mm (13.4x7.5") 
  diag: 389mm (15.3") 
  OpenGL: renderer: Mesa DRI Intel HD Graphics 4600 (HSW GT2) 
  v: 4.5 Mesa 21.1.5 compat-v: 3.0 direct render: Yes 

I tried this one. I got a boot menu, but it didn’t look like the standard Manjaro boot menu

Try to change /etc/mkinitcpio.conf

sudo nano /etc/mkinitcpio.conf

There is a line

MODULES=""

or

MODULES=()

Change it into

MODULES=(i915)

Then run

sudo mkinitcpio -P
sudo update-grub

and reboot.

How does it look like? Did you use another Linux distro before?

It could be worth to restore the boot loader.

Alright, I’ll give this a try. Hold on a sec.

It looked like the grub menu when i was using Ubuntu. I tried to include a picture here, but the system wouldn’t allow me to.

Then try to restore the grub boot loader.