How to Install & Use Grub Customizer on Ubuntu (24.04)

How to Install and Use Grub Customizer on Ubuntu
Grub Customizer is a GUI editor of the GRUB boot menu that saves you from editing configuration files by hand. This program is not included into Ubuntu main archives anymore; hence, in case of Ubuntu 24.04, it is installed using sudo add-apt-repository ppa:danielrichter2007/grub-customizer followed by sudo apt install grub-customizer. This document describes installation and usage, important configuration options, ways to reverse the process and usage in the absence of a GUI environment in case of headless servers.
What is Grub Customizer, and what does it actually do?
Grub Customizer is a GTK interface for editing GRUB 2 configuration by writing to the same files as manually: /etc/default/grub and scripts inside of /etc/grub.d/. It does not replace GRUB itself or add new functionality to it; instead, it offers GUI with checkboxes and drag-and-drop reorder of the list instead of the text editing.
GRUB 2 generates its menu based on execution of the scripts in /etc/grub.d/ along with the parameters inside /etc/default/grub, and the generated /boot/grub/grub.cfg is automatically recreated by update-grub on each run. Although Grub Customizer provides a menu preview, everything can be done equally well by using a text editor and one command. This application works especially well on multiboot systems for menu estimation.
Concerning reordering and renaming the menu items, Grub Customizer uses a rather intrusive way of modifying the original /etc/grub.d scripts by temporary moving them and creating proxy scripts that filter the output of them. This method will be discussed further.
Why is Grub Customizer not in the Ubuntu repositories anymore?
Grub Customizer was stripped from the Ubuntu universe repository due to issues that may arise from the use of proxy script mechanism by which it leaves the system in an inconsistent state on removal. A package search across every currently supported Ubuntu suite now returns no results.
This is described in detail in the Ubuntu release-upgrader bug report stating that proxy script interpreter is a usual ELF executable with dynamic linking that includes Qt stack; removing grub-customizer may leave the binary in the orphaned state and make it nonfunctional. Moreover, the remaining proxy files after removal may cause additional problems. Hence, the package was discontinued from the main archive.
The developer continued to build his applications by means of an official PPA with available packages for several Ubuntu releases, including Noble, which corresponds to Ubuntu 24.04. This application continues to work and get maintenance being a third-party source. However, users should be cautious about its usage.
How do you install Grub Customizer on Ubuntu 24.04?
Prior to installation, it would be wise to backup GRUB configuration. Three steps of the backup process along with three steps of the installation process are described below.
Backup procedure:
bash
sudo cp /etc/default/grub /etc/default/grub.bak
sudo cp -r /etc/grub.d /etc/grub.d.bak
sudo cp /boot/grub/grub.cfg /boot/grub/grub.cfg.bakReasoning: The /etc/grub.d directory is especially important, since it contains the proxy scripts added by Grub Customizer.
Installation procedure:
bash
sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt update
sudo apt install grub-customizerVerification:
bash
apt-cache policy grub-customizerExpected output: Candidate version with a Source line pointing to ppa.launchpadcontent.net/danielrichter2007/grub-customizer/ubuntu noble/main amd64. If the package is not found (E: Unable to locate package grub-customizer), either the PPA has not been added properly or apt update has not been done. Note that the PPA provides the packages for amd64 only; arm64 systems will not have the candidate.
Execution: Start Grub Customizer from the application launcher or invoke grub-customizer from the user terminal, not sudo. Grub Customizer prompts the user for privileges through PolicyKit when saving the privileged GRUB settings; using sudo is unnecessary and disruptive.
How do you use Grub Customizer to change the GRUB boot menu?
Use the List configuration tab to reorder, rename, hide or remove menu items. Use General settings tab to choose the default item and set the timeout. All changes are saved only when Save is pressed; actual changes are applied only when GRUB configuration is regenerated, which Grub Customizer does automatically.
Most commonly used changes are:
Choosing some non-default boot entry as default, for example, on multiboot systems, moving Windows or setting it as the default via General settings. Reordering leads to creation of proxy scripts; choosing default is less intrusive operation.
Changing the timeout of the boot menu via General settings; the minimum practical value is 5 seconds for multiboot systems.
Setting "previously booted entry" as default via
GRUB_DEFAULT=savedandGRUB_SAVEDEFAULT=true; this makes the last chosen entry to be remembered on the next boot, but with the restriction: this feature is incompatible with/booton LVM or RAID setups.Hiding old kernel versions via hiding the submenu instead of removing the entries.
After saving the changes, reboot the system and check whether the menu is created as intended. Make the changes incrementally to be able to find out any problems.
How do you install a custom GRUB bootloader theme or background?
In Appearance settings of Grub Customizer, the background image, font and colors of the menu can be set. These settings are converted into GRUB_BACKGROUND and similar variables with the full path to the image file as the value.
Some practical advice: try to match the image resolution with GRUB graphics mode to prevent ugly scaling of it. GRUB chooses the resolution automatically unless GRUB_GFXMODE is set; if the proposed resolution is unavailable, GRUB falls back to the default resolution defined in /etc/grub.d/00_header. The GRUB_THEME variable pointing to a full theme directory is not covered by the Appearance tab of Grub Customizer.
How do you change the GRUB boot menu on a headless server?
Grub Customizer is a GTK application and is not designed to be used in headless environments. For the headless VPS or bare metal installations, it is necessary to edit /etc/default/grub and execute sudo update-grub directly. The update-grub command is a wrapper for grub-mkconfig -o /boot/grub/grub.cfg. An example of this workflow is provided below:
bash
sudo nano /etc/default/grub
sudo update-grubImportant parameters:
Setting | What it does | Notes |
|---|---|---|
| Boots the entry at that menu position, counting from 0 | A submenu entry uses two-part notation, so |
| Boots an exact menu entry by name | Position in the menu no longer matters |
| Boots whatever was booted last | Needs |
| Seconds the menu waits before booting the default |
|
| Shows the menu, then counts down |
|
| Re-enables detection of other installed operating systems | Disabled by default, because silent os-prober execution is a potential attack vector |
| Kernel parameters for normal boot | Appended to the linux line in normal mode only |
| Forces text-mode GRUB | Helps when the graphical menu is unreadable |
Testing utilities and commands:
sudo grub-set-default Xsets the default boot entry until it is changed again.sudo grub-reboot Xapplies only for the next boot.Find X using the GRUB configuration:
grep menuentry /boot/grub/grub.cfg
Limitations: direct edit of /boot/grub/grub.cfg is not recommended, since it is regenerated automatically by update-grub, which happens on kernel installs and removals and on some GRUB package updates. For the custom entries not produced by any existing script, /etc/grub.d/40_custom is a good place; the contents of this file below the exec tail line are incorporated into grub.cfg without change.
How do you remove Grub Customizer and undo its changes?
Removal of Grub Customizer does not restore the GRUB configuration automatically. The suggested process is restoring the GRUB configuration, then removing the package and the PPA, in that order.
Restoration:
bash
sudo cp /etc/default/grub.bak /etc/default/grub
sudo rm -rf /etc/grub.d
sudo cp -r /etc/grub.d.bak /etc/grub.d
sudo update-grubRemoval:
bash
sudo apt remove grub-customizer
sudo add-apt-repository --remove ppa:danielrichter2007/grub-customizer
sudo apt updateIf the backups were not made and the proxy scripts were left, search for the files ending with _proxy in /etc/grub.d and a proxifiedScripts directory. The suggested remedy is to remove the proxy scripts, restore the original scripts from proxifiedScripts to /etc/grub.d, remove any leftovers like bin/grubcfg_proxy, and run update-grub. Read its output for errors before you reboot.
Common mistakes
Simple removal of the package does not restore GRUB settings configured via Grub Customizer; the changes stay in the GRUB configuration.
Direct edit of
grub.cfgis not recommended due to its regeneration on update.Inadequate backups, covering only
/etc/default/grub, do not take into account the potentially dangerous proxy scripts in/etc/grub.d.Making several changes and rebooting once leaves you with several suspects if the machine does not come back. Change one thing, reboot, confirm.
Running Grub Customizer using
sudocan interfere with the session; it uses PolicyKit for prompting.There won't be automatic OS detection on multiboot systems if os-prober is disabled; set
GRUB_DISABLE_OS_PROBER=falseand re-runupdate-grubif needed.
FAQ
Is Grub Customizer safe on Ubuntu 24.04?
It works and gets maintenance from the developer via the PPA; however, it is not an official Ubuntu package because of some historical flaws in how it modifies /etc/grub.d. Provided with prudent backups and gradual changes, the risk is low; on the unreachable machines, the manual edit of /etc/default/grub is preferable.
Is there a Grub Customizer alternative that does not use proxy scripts?
Text editor plus sudo update-grub will suffice; the proxy scripts appear only when entries are renamed or reordered.
Why does apt install grub-customizer fail to locate a package?
Either the PPA was not added, apt update was not run, or there is no corresponding series of PPA for your Ubuntu release; use apt-cache policy grub-customizer to check the candidate availability.
Can Grub Customizer be used on a VPS or a dedicated server?
No, since it is graphical; for the headless environments, the edit of /etc/default/grub and sudo update-grub over SSH is suggested, with grub-reboot to test kernels.
How do I check which Ubuntu release I am on before adding the PPA?
lsb_release -a gives you the codename you need. We covered the reliable ways to do this in our guide on checking your Ubuntu version on a server.
Get started with Orbit Servers
Low-latency VPS, bare metal, and colocation across the US, EU, and APAC - provisioned instantly and built for performance-critical workloads.
Get startedRelated products
Written by
Julius