My GRUB boot menu looks different from Manjaro's default boot menu

I can’t add a link to show you what the grub menu on my laptop looked like, but I can tell you that it looked a lot like the old GNU Grub menu (the ones you see in Ubuntu installations) As far as I know, Manjaro’s default boot menu is customized (with manjaro’s wallpaper, etc.)

This is my second installation already. The first time this happened I thought I’d botched the installation process so I did the installation again, but the result remained the same. I don’t know what went wrong. The installation was smooth and the rest of the system seemed just fine.

The reason I care about the boot menu is because I’m planning to install Windows later on. Any ideas?

Here is my /etc/default/grub file:

GRUB_DEFAULT=saved
GRUB_TIMEOUT=30
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

# 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

You are missing the theme section. :arrow_down:

GRUB_THEME="/usr/share/grub/themes/manjaro/theme.txt"

Add that to /etc/default/grub and run… :arrow_down:

sudo update-grub

Yeah. I just checked.It’s already uncommented.

Yeah, I see it. My apologies, I had completely missed it.

Okay, here is what you can try… First of all, replace the…

GRUB_GFXMODE=auto

… by… :arrow_down:

GRUB_GFXMODE=1920x1080x32

… or whatever the native resolution of your monitor is. On my machine here, that’s 1920 x 1080 pixels with a 32-bit color depth. Adapt this to your own monitor.

Then, open up a terminal and run the following two commands… :arrow_down:

sudo grub-install --recheck --no-rs-codes
sudo update-grub

I once had the same issue as you, and reinstalling GRUB ─ as what those two commands do ─ solved it.

:crossed_fingers:

Sorry to sound like a complete noob -i totally am- but is there a command that allows me to determine the color depth of my display?

When taking Manjaro Cinnamon for a spin first thing I noticed was that its grub menu is simple and theme-less like Ubuntu’s. Maybe other community builds are like that too.

I’m afraid that question is a bit out of my league. In KDE Plasma you can view that information in the Info Center, but I don’t know whether XFCE has such a component.

Generally speaking, if it’s any recent monitor, it’ll support 32-bit color. And if not, then 24-bit is a good option too.

HI @isaiah18376,

According to this page:

xwininfo -root | grep Depth

But it seems you’ll have to install xorg-xwininfo first:

paamac install xorg-xwininfo

And then:

xwininfo -root | grep Depth

Or that’s how I’ve got it, anyway.

Hope this helps!

That helps! Thanks.

Time to get to work, then. :grinning:

So it would seem.

Are you using an encrypted root partition?

If so, the theme files and background images won’t be accessible for GRUB before the next step of decrypting the root partition. Hence, you will be greeted to a plain “theme-less” GRUB menu.

There might be a way around it, but none that I have been able to find. So I just accept a boring, plain GRUB menu if I’m using full disk encryption (or root partition encryption.)

EDIT: Unless anyone knows a way around this, I’d love to try it out. (But the visuals of a GRUB menu are not as important to me as the protection offered by encryption. Just my preference.) :wink:

EDIT 2: Unless you have a non-encrypted /boot/ partition dedicated to GRUB, and re-locate the background and theme file there instead (and make sure GRUB is pointed to the accessible, non-encrypted folder where your theme and wallpaper lives.)

Workaround for Debian, should also work for Manjaro in theory: Grub with a theme, when you have an encrypted root filesystem | Knowledge Base

2 Likes

I just upgraded the SSD of my thinkpad (Samsung EVO 370), hence the installations.

I didn’t encrypt my root, and I don’t have a separate boot partition.

Yeah. I’m aware that the problem lies with the fact that the theme files couldn’t be loaded.

I located the file based on the path listed in /etc/default/grub. Here’s what the theme.txt file looks like:

title-text: ""
title-font: "DejaVu Sans Regular 48"
message-font: "Terminus 16"
message-color: "#7f8c8d"
message-bg-color: "#4d4d4d"
desktop-color: "#24282c"
desktop-image: "background.png"
terminal-font: "Terminus 14"
terminal-left: "0"
terminal-top: "0"
terminal-width: "100%"
terminal-height: "100%"
terminal-border: "0"

# Logo image
+ image {
	left = 30%-250
	top = 10%-30
    file = "logo.png"
}

+ boot_menu {
    left = 15%
    #width = 250
    width = 70%
    #top = 50%-125
    #height = 400
    top = 30%
    height = 44%
    item_height = 30
    item_padding = 5
    icon_width = 32
    icon_height = 32
    item_icon_space = 20
    item_spacing = 5
    item_font =  "Terminus 16"
    item_color = "#cccccc"
    #item_color = "#FFA2A2"
    selected_item_font = "Terminus 16"
    selected_item_color = "#1ABB9B"
    selected_item_pixmap_style = "select_*.png"
    #menu_pixmap_style = "menu_*.png"
}

+ progress_bar {
    id = "__timeout__"
    left = 50%-125
    top = 70%
    width = 250
    height = 20
    show_text = true
    font = "Terminus 14"
    text_color = "#ffffff"
    align = "center"
    text = "@TIMEOUT_NOTIFICATION_MIDDLE@"
    bar_style = "progress_bar2_*.png"
}

+ hbox {
    left = 50%-250
    top = 80%
    width = 500
    #+ label { width = 250 height = 20 align = "center" color = "#ffffff" font = "Terminus 16" text = "[↵] Boot selected OS" }
    #+ label { width = 250 height = 20 align = "center" color = "#ffffff" font = "Terminus 16" text = "[↑ and ↓ Key] Navigation" }
    + label { width = 250 height = 20 align = "center" color = "#ffffff" font = "Terminus 16" text = "E = Edit Boot Options" }
    + label { width = 250 height = 20 align = "center" color = "#ffffff" font = "Terminus 16" text = "C = GRUB Commandline" }
}

Think you can make anything of it?

Hmm. I think you may have just hit upon the solution. I’m going to try this.

But I don’t remember encrypting my drive. The drive is completely new. Samsung EVO 370. Just bought it today.

Are you able to take a photo of the error message? It’s along the scope of “Could not load XYZ theme…” seconds before the GRUB menu appears?

No. There weren’t any error messages.

There was the Lenovo Logo, then the old, themeless menu showed up.

One thing I did notice is this: when I booted into the live media, there wasn’t a fancy boot menu as well. The boot menu was supposed to be there (there were photos of it in Manjaro’s user guide). When I booted into my live usb, a whole bunch of text showed up, and the system booted straight into the live desktop. But that was different from the description in the manual. The manual said that we’re supposed to see a menu where we can select to boot with open-source drivers, etc.

As for the creation of the live media, I followed the instruction to a tee. Did the checksum, and wrote the iso into my usb from the command line.

You can still try to make a copy of the theme in the boot folder.

sudo mkdir /boot/themes
sudo cp -rpv /usr/share/grub/themes/manjaro /boot/themes/

Then edit your GRUB’s default config to point to /boot/themes/manjaro/theme.txt

sudo nano /etc/default/grub

Change
GRUB_THEME=/usr/share/grub/themes/manjaro/theme.txt
to
GRUB_THEME=/boot/themes/manjaro/theme.txt

Make sure that menu is displayed by checking the values of GRUB_TIMEOUT and GRUB_TIMEOUT_STYLE. Should look something like:
GRUB_TIMEOUT_STYLE=menu
GRUB_TIMEOUT=10

Finally, update GRUB.

sudo update-grub

1 Like

For future reference, hold down LEFT-SHIFT the very moment you boot up your system.

Tried this already. The result remains the same. Still no theme.

I’m following along on my own Xfce Manjaro system, and placing the themes on /boot/ predictably enables/disables the theme (in conjunction with modifying /etc/default/grub and update-grub).