How to modify the GRUB boot in Linux

Open a terminal and type the following:
sudo nano /etc/default/grub
You can also navigate to that path with your file manager (for example Dolphin) and edit the file with your text editor. When it asks to save changes it will request your password.
Some fields you can set are:
# Time in seconds that GRUB waits before booting the default entry. GRUB_TIMEOUT=3 # Style of the GRUB screen during the wait: 'menu' will show the boot menu, 'hidden' hides it. GRUB_TIMEOUT_STYLE=menu # Graphical resolution to be used in the GRUB menu. GRUB_GFXMODE=1920x1080 # Indicates the Linux kernel should keep the same resolution as GRUB when it boots into Linux. GRUB_GFXPAYLOAD_LINUX=keep # Default entry to boot. Index of the entry to boot by default (0 = first entry) ('saved' = last used entry). GRUB_DEFAULT=0 # Enable saved selection. Saves the last boot selection as default. GRUB_SAVEDEFAULT=true # Show the GRUB logo or a splash. Image shown as the menu background. GRUB_BACKGROUND="/boot/grub/fondo.png" # Enable high-resolution graphical mode (if the hardware supports it). 'console' uses text only, 'gfxterm' allows graphics. GRUB_TERMINAL_OUTPUT=gfxterm # Additional kernel options when booting Linux. 'quiet' hides boot messages, 'splash' shows a graphical splash screen. GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" # Kernel debug options. 'nomodeset' prevents the kernel from automatically configuring the graphics card. GRUB_CMDLINE_LINUX="nomodeset"
Below I put two example GRUB configurations. One very silent and fast and another more visually pleasing that shows the image we choose.
1️⃣ “Totally silent” configuration (no messages, auto-boot entry 0):
# Automatic boot to the first menu entry (0 = first) GRUB_DEFAULT=0 # Timeout before booting the default entry (0 = immediate boot) GRUB_TIMEOUT=0 # Hide the menu completely GRUB_TIMEOUT_STYLE=hidden # Prevent displaying GRUB messages GRUB_TERMINAL=console # Prevent Linux from showing boot messages and use a black screen GRUB_CMDLINE_LINUX_DEFAULT="quiet loglevel=0 splash" # No graphical mode needed in the menu GRUB_GFXMODE=auto GRUB_GFXPAYLOAD_LINUX=keep
What does this configuration do?:
- Automatically boots the first entry without showing anything.
- No menu, no GRUB messages, no kernel messages are shown.
- Black screen until the operating system loads.
2️⃣ “Pretty image 1920×1080” configuration (auto-boot entry 0)
# Automatic boot to the first entry GRUB_DEFAULT=0 # Wait 3 seconds (optional) so the image is visible before booting GRUB_TIMEOUT=3 # Show menu (even if it's only the image) GRUB_TIMEOUT_STYLE=menu # Enable graphical output GRUB_TERMINAL_OUTPUT=gfxterm # Menu image resolution GRUB_GFXMODE=1920x1080 GRUB_GFXPAYLOAD_LINUX=keep # Background image (place your image at /boot/grub/fondo.png) GRUB_BACKGROUND="/boot/grub/fondo.png" # Minimal kernel messages, only splash screen GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
What does this configuration do?:
- Automatically boots the first entry.
- Shows only a background image at 1920×1080.
- Hides kernel and GRUB boot messages.
- The transition from menu to Linux is smooth, without abrupt resolution changes.