dotlinux blog

Setup Bootsplash on Ubuntu/Debian – Grub Silent or Verbose Boot Mode

The boot process of a Linux system is often overlooked, but it’s the first interaction you have with your OS. By default, Ubuntu and Debian systems may display a plain text scroll of boot messages (verbose mode) or a simple logo (minimal silent mode). A bootsplash (boot splash screen) replaces this with a customized image, animation, or theme, enhancing visual appeal. Additionally, controlling whether Grub (the bootloader) uses silent or verbose mode lets you balance aesthetics (silent) and debuggability (verbose).

This guide will walk you through installing, configuring, and customizing a bootsplash using Plymouth (the default bootsplash tool for Ubuntu/Debian) and adjusting Grub settings for silent or verbose boot modes.

Last Updated: 2025-12

Table of Contents#

  1. Prerequisites
  2. Silent vs. Verbose Boot Modes: What’s the Difference?
  3. Step 1: Install Plymouth (Bootsplash Tool)
  4. Step 2: Choose a Plymouth Theme
  5. Step 3: Configure Plymouth for Your Theme
  6. Step 4: Configure Grub for Silent or Verbose Mode
  7. Step 5: Regenerate Initramfs
  8. Step 6: Test Your Configuration
  9. Troubleshooting Common Issues
  10. Customizing Plymouth Themes (Advanced)
  11. Conclusion
  12. References

Prerequisites#

Before starting, ensure you have:

  • A Ubuntu (20.04+/22.04+) or Debian (10+/11+) system.
  • sudo access (to modify system files).
  • Basic familiarity with the terminal (e.g., running commands, editing files with nano or vim).
  • Optional: A custom image/animation if you plan to create a custom theme (see Advanced).

Silent vs. Verbose Boot Modes: What’s the Difference?#

ModeDescriptionUse Case
SilentHides boot messages; shows only the Plymouth bootsplash and Grub menu (briefly).Normal daily use (clean, distraction-free).
VerboseShows detailed kernel/daemon logs (e.g., "Starting Network Manager...").Debugging boot failures or hardware issues.

Step 1: Install Plymouth (Bootsplash Tool)#

Plymouth is preinstalled on most Ubuntu/Debian systems, but confirm and install missing components:

# Update package lists
sudo apt update
 
# Install Plymouth and core themes (if missing)
sudo apt install plymouth plymouth-themes -y
  • plymouth: The main bootsplash daemon.
  • plymouth-themes: Default themes (e.g., ubuntu-logo, debian-logo, spinner).

Step 2: Choose a Plymouth Theme#

Plymouth themes are stored in /usr/share/plymouth/themes/. To list installed themes:

ls /usr/share/plymouth/themes/
  • ubuntu-logo: Ubuntu’s default logo with a progress bar.
  • debian-logo: Debian’s logo with a spinner.
  • spinner: A simple rotating spinner (minimalist).

Third-Party Themes (Optional):#

Install community-created themes via apt or manual download:

Example: Install the "Arc" Theme#

# Add PPA (for Ubuntu; Debian users may need to download manually)
sudo add-apt-repository ppa:mattrose/plymouth-themes -y
sudo apt update
 
# Install Arc theme
sudo apt install plymouth-theme-arc -y

Manual Download (e.g., from GitHub):#

  1. Download a theme (e.g., Plymouth Themes on GitHub).
  2. Extract it to /usr/share/plymouth/themes/:
    sudo unzip ~/Downloads/plymouth-theme-name.zip -d /usr/share/plymouth/themes/

Step 3: Configure Plymouth for Your Theme#

Set your chosen theme by editing Plymouth’s configuration file:

sudo nano /etc/plymouth/plymouthd.conf

Add/modify these lines (replace THEME_NAME with your theme, e.g., arc):

[Daemon]
Theme=THEME_NAME          # Name of your Plymouth theme
DeviceTimeout=5           # Timeout (seconds) for display detection
XResolution=1920          # Match your monitor's horizontal resolution
YResolution=1080          # Match vertical resolution (e.g., 1080p, 2160p)
  • Resolution Tip: Use xrandr in a terminal to find your monitor’s resolution (e.g., 1920x1080).

Save the file (Ctrl+O, Enter, then Ctrl+X in nano).

Step 4: Configure Grub for Silent or Verbose Mode#

Grub (Grand Unified Bootloader) controls the initial boot screen and kernel parameters. Edit its config to enable silent/verbose mode:

sudo nano /etc/default/grub

To hide boot logs and show only the Plymouth splash:

  • Set GRUB_CMDLINE_LINUX_DEFAULT to include quiet splash:

    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
    • quiet: Hides non-critical kernel messages.
    • splash: Enables the Plymouth splash screen.
  • Hide the Grub menu (optional but recommended for silent mode):

    GRUB_TIMEOUT_STYLE=hidden  # Hides the menu unless Shift is held
    GRUB_TIMEOUT=0             # No delay before booting default OS

Option B: Verbose Mode (For Debugging)#

To show detailed logs, remove quiet splash from GRUB_CMDLINE_LINUX_DEFAULT:

GRUB_CMDLINE_LINUX_DEFAULT=""  # Empty = show all logs
  • Keep the Grub menu visible (optional):
    GRUB_TIMEOUT_STYLE=menu     # Always show the menu
    GRUB_TIMEOUT=10             # 10-second delay before auto-boot

Save Grub Changes#

After editing, update Grub’s configuration:

sudo update-grub

Step 5: Regenerate Initramfs#

Plymouth themes are embedded in the initramfs (initial RAM filesystem). Regenerate it to apply theme changes:

# Update initramfs for the current kernel
sudo update-initramfs -u -k $(uname -r)
 
# OR: Update for all installed kernels (safer)
sudo update-initramfs -u -k all
  • -u: Update the initramfs.
  • -k $(uname -r): Target the currently running kernel.

Step 6: Test Your Configuration#

Reboot to apply changes:

sudo reboot

What to Expect:#

  • Silent Mode: A black screen → Grub menu (hidden unless Shift is held) → Plymouth bootsplash → Login screen.
  • Verbose Mode: Grub menu → Scrolling white text logs → Login screen.

Troubleshooting Common Issues#

1. Bootsplash Doesn’t Appear#

  • Fix: Ensure splash is in GRUB_CMDLINE_LINUX_DEFAULT and initramfs was regenerated.
    # Verify initramfs includes Plymouth
    lsinitramfs /boot/initrd.img-$(uname -r) | grep plymouth

2. Low-Resolution/Stretched Theme#

  • Fix: Set XResolution and YResolution in /etc/plymouth/plymouthd.conf to match your monitor (e.g., 1920 1080).

3. Grub Menu Still Appears (Silent Mode)#

  • Fix: Ensure GRUB_TIMEOUT_STYLE=hidden and GRUB_TIMEOUT=0 in /etc/default/grub, then re-run sudo update-grub.

Customizing Plymouth Themes (Advanced)#

Create a custom theme by modifying an existing one or building from scratch. Here’s a quick guide:

Theme Structure#

A Plymouth theme requires two files:

  1. THEME_NAME.plymouth: Metadata (theme name, script path).
  2. THEME_NAME.script: Animation logic (uses Plymouth’s scripting language).

Example: Simple Custom Theme#

  1. Create a theme directory:

    sudo mkdir /usr/share/plymouth/themes/my-custom-theme
  2. Add a background image (e.g., background.png, 1920x1080):

    sudo cp ~/Pictures/my-background.png /usr/share/plymouth/themes/my-custom-theme/
  3. Create my-custom-theme.plymouth:

    [Plymouth Theme]
    Name=My Custom Theme
    Description=A simple theme with a custom background
    ModuleName=script
     
    [script]
    ImageDir=/usr/share/plymouth/themes/my-custom-theme
    ScriptFile=/usr/share/plymouth/themes/my-custom-theme/my-custom-theme.script
  4. Create my-custom-theme.script (display the image):

    #!/usr/bin/plymouth -script
     
    # Load background image
    png_image = Image("background.png");
     
    # Draw image to fill the screen
    screen_width = Window.GetWidth();
    screen_height = Window.GetHeight();
    Window.SetBackgroundImage(png_image.Scale(screen_width, screen_height));
  5. Set the theme (repeat Steps 3–5 above) and reboot.

Conclusion#

With Plymouth and Grub configured, you’ve transformed your boot process from utilitarian to personalized. Silent mode keeps things clean, while verbose mode helps diagnose issues. Experiment with themes or build your own to make your Linux setup truly unique!

References#