How To Install Grub Customizer on Debian 13

Install Grub Customizer on Debian 13

If you have ever set up a dual-boot system on Debian and found yourself manually digging through /etc/default/grub just to change the default boot entry, you already know the pain. Editing raw GRUB config files is error-prone, and one wrong character can leave your system unbootable. This guide shows you exactly how to install Grub Customizer on Debian 13 so you can manage your bootloader through a clean, visual interface without touching a single config file by hand. By the end, you will be able to reorder boot entries, set kernel parameters, apply themes, and save changes safely in under five minutes.

What Is GRUB and Why Does It Matter?

GRUB, which stands for Grand Unified Bootloader, is the first piece of software that runs when you power on a Linux machine. It is responsible for loading your operating system kernel into memory. On most Debian systems, GRUB2 is the default bootloader, and it reads its configuration from /boot/grub/grub.cfg.

The problem is that grub.cfg is not meant to be edited directly. Debian regenerates it automatically every time a new kernel is installed or update-grub runs. Any manual edits you make get wiped out. That is why tools like Grub Customizer exist.

Grub Customizer is a graphical interface tool developed by Daniel Richter that lets you configure GRUB2 and BURG without touching raw config files. It wraps the complexity of GRUB configuration into a three-tab GUI: List Configuration, General Settings, and Appearance Settings. The official package version available in the Debian 13 (Trixie) repository is 5.2.5-1, which has an installed size of approximately 3,571 KB on amd64 systems.

This is particularly useful in three real-world scenarios. First, you are running a dual-boot setup between Debian 13 and Windows, and you want Windows to boot by default. Second, you manage a development machine with multiple kernel versions and need to pick the right one without memorizing numbers. Third, you want to set a five-second timeout and a custom background image on a lab workstation for a cleaner experience.

What Is Debian 13 (Trixie)?

Debian 13 carries the codename “Trixie” and is the current release that follows Debian 12 (Bookworm) in the Debian release cycle. Debian follows a strict freeze-and-release process, which means packages in the official Trixie repository are tested for compatibility and stability before they land in your system.

The grub-customizer package is officially available in the Trixie repository at packages.debian.org/trixie/utils/grub-customizer, which means no PPAs, no third-party sources, and no compatibility headaches. The package supports eight architectures including amd64, arm64, i386, ppc64el, and riscv64.

Why Use Grub Customizer on Debian 13?

Managing GRUB manually works, but it is not the safest workflow for most users. Here is where the Grub Customizer on Debian 13 setup pays off:

  • Dual-boot management: Reorder or change the default OS between Debian and Windows without editing raw config files
  • Multi-kernel environments: Select the correct kernel version from a GUI list instead of memorizing menu entry numbers
  • Kernel parameter control: Add or remove boot flags like quiet, splash, nomodeset, or acpi=off from a settings panel
  • Visual theming: Apply background images, custom fonts, and text colors to the GRUB menu
  • Safe MBR reinstall: Recover from a broken bootloader after a Windows installation overwrites GRUB, all from within the GUI
  • Persistent changes: Entries customized with Grub Customizer remain updatable by future update-grub runs, so kernel upgrades do not wipe your work

Key Features of GRUB Customizer

Before you install, here is a quick look at what the tool can actually do:

  • Move, remove, or rename menu entries while keeping them updatable by update-grub
  • Edit existing menu entry contents or create new custom entries (internally manages the 40_custom file)
  • Full support for both GRUB2 and BURG bootloaders
  • Reinstall the bootloader to the Master Boot Record (MBR) directly from the GUI
  • Configure default OS, kernel parameters, background image, text colors, and boot timeout
  • Run change operations from a live CD, DVD, or bootable USB drive
  • Uses polkit (pkexec) for privilege escalation instead of running as root directly
  • Relies on hwinfo for hardware identification during bootloader reinstall operations

Prerequisites

Before you start, confirm the following are in place:

  • OS: Debian 13 (Trixie) with a working desktop environment (GNOME, KDE, XFCE, or similar)
  • Bootloader: GRUB2 must be the system bootloader (the default on all standard Debian installations)
  • User permissions: A non-root user account with sudo privileges
  • Internet access: Required to download the package and its dependencies from the official Debian repository
  • Architecture: x86_64 (amd64) or any supported architecture listed at packages.debian.org
  • Disk space: At least 4 MB free in / (installed size is approximately 3,571 KB on amd64)
  • Backup: Recommended before making any bootloader changes, especially in production or VM environments

Step 1: Update Your System

The first thing to do before any installation on a Debian system is refresh the local package index. This step prevents APT from trying to install outdated package versions or running into broken dependency chains.

Open your terminal and run:

sudo apt update

You will see output similar to this:

Hit:1 http://deb.debian.org/debian trixie InRelease
Hit:2 http://security.debian.org/debian-security trixie-security InRelease
Reading package lists... Done

Now upgrade any outdated packages to keep your system consistent:

sudo apt upgrade -y

The -y flag auto-confirms all prompts so you do not have to type “yes” repeatedly. This step is optional but it is good practice on any server or workstation before installing new software.

Why This Matters

When you skip apt update, APT works from a stale package cache. This can cause it to pull incompatible library versions for Grub Customizer dependencies like libgtkmm-3.0, libssl3t64, and hwinfo. Running the update first takes 10 seconds and saves you 20 minutes of debugging later.

Step 2: Install Grub Customizer from the Official Debian Repository

This is the core of this Linux server tutorial. On Debian 13, you do not need to add any external PPA or third-party repository. The package is already in the official Trixie repo, which means the installation is a single command.

Run the following:

sudo apt install grub-customizer

APT will resolve and install all required dependencies automatically. These include:

  • hwinfo for hardware identification during bootloader reinstall operations
  • libgtkmm-3.0-1t64 for the GTK-based GUI rendering
  • pkexec for privilege escalation via polkit
  • libssl3t64 for secure operations
  • libarchive13t64 for archive support

During installation, you will see output like this:

The following NEW packages will be installed:
  grub-customizer hwinfo libarchive13t64 libatkmm-1.6-1v5
  libcairomm-1.0-1v5 libglibmm-2.4-1t64 libgtkmm-3.0-1t64
  libpangomm-1.4-1v5 libsigc++-2.0-0v5
0 upgraded, 9 newly installed, 0 to remove and 0 not upgraded.
Do you want to continue? [Y/n]

Type Y and press Enter to confirm.

What About the PPA Method?

Some older guides and Ubuntu tutorials tell you to add the PPA ppa:danielrichter2007/grub-customizer before installing. Do not do this on Debian 13.

Debian does not support Ubuntu PPAs natively. Mixing Ubuntu PPA packages into a Debian system introduces Ubuntu-specific library versions that can break your APT dependency tree. Since Debian 13 already ships grub-customizer 5.2.5-1 in its official repo, there is zero reason to use a PPA here.

Verify the Installation

Once the installation finishes, confirm the binary is present and the correct version is installed:

grub-customizer --version

Expected output:

grub-customizer 5.2.5

Double-check with dpkg:

dpkg -l | grep grub-customizer

Expected output:

ii  grub-customizer  5.2.5-1  amd64  GUI to configure GRUB2 and BURG

The ii prefix means the package is installed and in a healthy state.

Step 3: Back Up Your Current GRUB Configuration

This step takes 15 seconds and can save your system if something goes wrong. Before you change anything in Grub Customizer, create a backup of the current grub.cfg.

sudo cp /boot/grub/grub.cfg /boot/grub/grub.cfg.bak

To restore the backup at any point, run:

sudo cp /boot/grub/grub.cfg.bak /boot/grub/grub.cfg

If you are running Debian 13 inside a virtual machine (VirtualBox, VMware, or KVM), take a snapshot before proceeding. This gives you a one-click rollback option if a configuration change causes a boot failure.

Keep in mind that update-grub can always regenerate grub.cfg from scratch using the scripts in /etc/grub.d/. But having a backup of the working config means you do not have to boot from a live USB just to recover.

Step 4: Launch GRUB Customizer

You can launch Grub Customizer two ways.

Option 1: From the application menu

Search for “GRUB Customizer” in your desktop environment’s app launcher (Activities in GNOME, Kickoff in KDE, or Whisker Menu in XFCE). Click the icon to open it.

Option 2: From the terminal

grub-customizer

Either way, pkexec will intercept the launch and ask for your sudo password via a graphical polkit dialog. This is the expected behavior. Grub Customizer uses polkit for privilege escalation rather than requiring you to run sudo grub-customizer, which is a cleaner and more secure approach.

Once authenticated, the main interface opens with three tabs at the top: List Configuration, General Settings, and Appearance Settings.

Step 5: Configure Grub Customizer on Debian 13

This is where you actually configure Grub Customizer on Debian 13 to match your needs. Each tab controls a different aspect of GRUB behavior.

The List Configuration Tab

This tab shows every bootable entry on your system: installed operating systems, kernel versions, recovery modes, and memory test options.

Key actions you can take here:

  • Reorder entries by dragging them up or down, or using the arrow buttons
  • Rename entries by right-clicking on one and selecting Rename
  • Remove an entry to hide it from the boot menu (this does not delete the kernel or OS)
  • Add a new custom entry manually (Grub Customizer writes this internally to the 40_custom file)

One important note: entries you reorder or rename here stay updatable by future update-grub runs. When a new kernel is installed, update-grub will add the new kernel entry without overwriting your customizations.

The General Settings Tab

This tab controls how GRUB behaves at boot time. Options you can set here:

  • Default entry: Select which OS or kernel boots automatically when the timeout expires
  • Boot timeout: Set how many seconds GRUB waits before auto-booting (e.g., 5 or 10 seconds; set to 0 for instant boot)
  • Kernel parameters: Add or modify flags like quiet, splash, nomodeset, or acpi=off without editing /etc/default/grub manually
  • Reinstall bootloader: A dedicated button that reinstalls GRUB to the MBR, useful after a Windows installation overwrites GRUB

The Appearance Settings Tab

This tab handles the visual side of the GRUB menu:

  • Set a background image (supported formats: PNG, JPG, TGA)
  • Change font and font size for the menu text
  • Customize text colors for normal entries, highlighted entries, and the selected entry
  • Point to a pre-built GRUB theme directory from sites like Gnome-Look.org
  • Adjust the gfxmode resolution to match your display

Step 6: Save Changes and Apply to GRUB

After making your changes across any of the three tabs, nothing is written to disk until you explicitly save.

Click the Save button in the toolbar (or press Ctrl + S).

When you click Save, Grub Customizer runs update-grub in the background. This rewrites /boot/grub/grub.cfg with your new configuration. You will see a progress bar while this runs.

Critical rule: Never edit /boot/grub/grub.cfg directly. This file is auto-generated, and any manual changes get overwritten the next time update-grub runs. Use Grub Customizer or edit the scripts in /etc/grub.d/ instead.

After saving, reboot your system to test the changes:

sudo reboot

Check that the GRUB menu appears as expected. If the default OS, timeout, or appearance did not apply correctly, open Grub Customizer again and review the settings before rebooting a second time.

Troubleshooting Common Issues

Even on a clean Debian 13 setup, you may run into a few bumps. Here are the most common issues and how to fix them.

Issue 1: Grub Customizer Will Not Open or Polkit Error

Symptom: The application closes immediately after the password prompt, or you see a polkit authorization error.

Fix: Ensure policykit-1 and pkexec are installed:

sudo apt install policykit-1

Then try launching Grub Customizer again from the terminal.

Issue 2: Changes Did Not Apply After Clicking Save

Symptom: You saved changes, rebooted, and the GRUB menu looks identical to before.

Fix: Verify that GRUB2 is correctly installed. Confirm which GRUB package you have:

dpkg -l | grep grub-pc
dpkg -l | grep grub-efi

If neither is installed, reinstall the appropriate one (BIOS: grub-pc, UEFI: grub-efi-amd64). Then run update-grub manually:

sudo update-grub

Issue 3: Blank Entry List in the List Configuration Tab

Symptom: Grub Customizer opens, but the List Configuration tab shows no entries.

Fix: This means grub.cfg is either missing or unreadable. Regenerate it:

sudo grub-install /dev/sda
sudo update-grub

Replace /dev/sda with your actual boot disk. Check with lsblk if you are unsure.

Issue 4: GRUB Menu Entries Disappeared After Saving

Symptom: After saving, your system boots directly into one OS without showing the GRUB menu.

Fix: Restore your backup immediately:

sudo cp /boot/grub/grub.cfg.bak /boot/grub/grub.cfg

Then reopen Grub Customizer, re-apply your changes one at a time, and save after each change to isolate what caused the issue.

Issue 5: Package Not Found During apt install

Symptom: Running sudo apt install grub-customizer returns “Unable to locate package grub-customizer.”

Fix: You likely skipped the apt update step, or your /etc/apt/sources.list does not include the main Debian 13 repository. Confirm your sources:

cat /etc/apt/sources.list

You should see a line like:

deb http://deb.debian.org/debian trixie main contrib non-free non-free-firmware

Then run sudo apt update and try installing again.

How to Uninstall Grub Customizer

If you no longer need Grub Customizer, removing it is clean and simple.

Remove the package while keeping config data:

sudo apt remove grub-customizer

Remove the package and purge all associated configuration files:

sudo apt purge grub-customizer

Clean up orphaned dependencies left behind:

sudo apt autoremove

Confirm it is gone:

dpkg -l | grep grub-customizer

No output means the package has been fully removed. Keep in mind that uninstalling Grub Customizer does not revert changes already saved to grub.cfg. Your GRUB menu will continue to reflect the last configuration you saved until you manually run update-grub or reinstall GRUB.

Congratulations! You have successfully installed Grub Customizer. Thanks for using this tutorial for installing the Grub Customizer on Debian 13 “Trixie” system. For additional help or useful information, we recommend you check the official Linux Mint website.

VPS Manage Service Offer
If you don’t have time to do all of this stuff, or if this is not your area of expertise, we offer a service to do “VPS Manage Service Offer”, starting from $10 (Paypal payment). Please contact us to get the best deal!
r00t is a dedicated and highly skilled Linux Systems Administrator with over a decade of progressive experience in designing, deploying, and maintaining enterprise-grade Linux infrastructure. His professional journey began in the telecommunications industry, where early exposure to Unix-based operating systems ignited a deep and enduring passion for open-source technologies and server administration.​ Throughout his career, r00t has demonstrated exceptional proficiency in managing large-scale Linux environments, overseeing more than 300 servers across development, staging, and production platforms while consistently achieving 99.9% system uptime. He holds advanced competencies in Red Hat Enterprise Linux (RHEL), Debian, and Ubuntu distributions, complemented by hands-on expertise in automation tools such as Ansible, Terraform, Bash scripting, and Python.

Related Posts