Change GRUB Background in Kali Linux: Theme, Wallpaper, Fixes
You added GRUB_BACKGROUND to /etc/default/grub, ran update-grub, rebooted — and the boot screen looks exactly the same. Nothing is wrong with you, and nothing is wrong with your image. Here is the part nearly every tutorial skips: Kali Linux quietly overrides your setting from a file most users never open. A drop-in config at /etc/default/grub.d/kali-themes.cfg forces the official GRUB theme, and when a theme is active, its own background wins over your GRUB_BACKGROUND line every single time — silently, with no warning printed. That is why "change grub background" guides written for Ubuntu fail on Kali. This post shows the three ways to change the GRUB background image on Kali that actually work — the two-minute swap, the durable override that survives updates, and the full custom theme — plus every reason a GRUB background ends up not working, in one table. Everything below comes off our own Kali machine (current rolling, August 2026) — the file paths and override behavior are read straight from that disk, not from another tutorial.
Jake lost an evening to this exact wall. He wanted his shop’s Kali laptop to boot with the shop logo — a small thing, but the kind of small thing that makes a machine feel like yours. He found a guide, added GRUB_BACKGROUND="/home/jake/logo.png", ran update-grub like it said, watched the command print a reassuring wall of "found linux image" lines, and rebooted into… the same blue Kali dragon as always. He tried a different guide. Same result. He converted the image to another format, moved it to another folder, ran the command with more sudo than necessary — same dragon. The guides weren’t wrong; they were written for a system that doesn’t ship a theme override. Nobody had told him a second config file was sitting one directory deeper, outvoting him on every boot. His notebook line from that night: "The setting worked. Something else just worked harder."
Ethan: "A GRUB theme is a stage set, and GRUB_BACKGROUND is a poster. You can tape the most beautiful poster you like to the back wall — if the stage set is standing in front of it, the audience sees the set. Kali bolts the set to the floor in a file you’ve never opened. So you have two honest choices: repaint the set, or unbolt it. Taping up more posters is the one thing that will never work."
How GRUB decides what to draw (and where Kali tips the vote)
When update-grub builds the boot menu, it reads /etc/default/grub — and then every file in /etc/default/grub.d/, in alphabetical order, with later files overriding earlier settings. On Kali, that folder contains kali-themes.cfg, and its one meaningful line is the whole story:
GRUB_THEME="/boot/grub/themes/kali/theme.txt"
That theme file declares its own background — desktop-image: "grub-16x9.png", resolved inside the theme’s folder — along with the fonts, the highlight colors, and the selection arrows. GRUB’s rule is simple and absolute: if a theme is set, the theme’s background is used and GRUB_BACKGROUND is ignored. No error, no warning. Debian adds one more layer worth knowing: the actual dragon image is wired through the alternatives system — /etc/alternatives/desktop-grub points at /usr/share/grub/themes/kali/grub-16x9.png — which is how Kali swaps boot art between releases without touching the theme file. You don’t need to touch that layer; you just need to know it exists so the paths below make sense. With the mechanism clear, the three methods are obvious: repaint the set, unbolt the set, or build your own set.
Method 1 — swap the theme’s image (two minutes, recommended)
Keep everything Kali’s theme does well — the readable menu, the highlight styling — and change only the picture behind it. This is the version most people actually want:
- Pick your image and size it to your screen’s shape — 1920×1080 for almost any modern laptop. PNG is the safe choice; JPG works too.
- Back up the original, so the revert is one command:
sudo cp /boot/grub/themes/kali/grub-16x9.png /boot/grub/themes/kali/grub-16x9.png.bak - Copy your image over it, converting the name, not the picture:
sudo cp ~/Pictures/mywallpaper.png /boot/grub/themes/kali/grub-16x9.png - If you sometimes boot on a 4:3 display (some VMs do), repeat for
grub-4x3.png. - Run
sudo update-grub, then reboot. Your image is now the boot screen, inside Kali’s normal theme.
One honest caveat, so it never surprises you: the file you just replaced belongs to Kali’s theme package, so a future update of kali-themes can restore the dragon. It happens rarely — theme packages change a handful of times a year, usually around release time, like the 2026.3 cycle we’re tracking now — and the fix is rerunning step 3. If you want a version updates can never touch, that’s Method 2.
Method 2 — the durable override: your own grub.d file
Since later files in /etc/default/grub.d/ outvote earlier ones, you can win the election the same way Kali does — politely, from your own file, without editing anything a package owns. Turn the theme off, set your background, and no update can ever revert you:
- Put your image somewhere permanent and root-readable —
/boot/grub/itself is ideal:sudo cp ~/Pictures/mywallpaper.png /boot/grub/mybackground.png - Create a config that sorts after
kali-themes.cfg:sudo nano /etc/default/grub.d/99-mybackground.cfg - Give it exactly two lines:
GRUB_THEME=""GRUB_BACKGROUND="/boot/grub/mybackground.png" - Save, run
sudo update-grub, and confirm it noticed: the output should include a line about the background image being found. - Reboot. Your wallpaper, plain menu text over it, permanently.
The trade-off is honest: with the theme off you lose Kali’s styled menu — the highlight bar and arrows are replaced by GRUB’s plain text menu over your image, and you can tune the text colors with GRUB_COLOR_NORMAL if the defaults clash with your picture. Why 99- in the name? Alphabetical order is the whole override mechanism, and 99 sorts last. And why not just edit kali-themes.cfg directly? Because that file belongs to the package: an update can rewrite it, and your edit dies with it. Your own file survives everything short of you deleting it — the same "don’t edit what the system owns" discipline that keeps every customization on this machine safe.
Method 3 — install or build a full GRUB theme
If you want more than a wallpaper — custom fonts, icons per menu entry, progress bars — you want a whole theme. A GRUB theme is just a folder containing a theme.txt plus its images and fonts; communities publish hundreds of free ones. The honest safety rule: download themes from pages where you can see the files (source repositories, not random zip mirrors), because anything you place in /boot/grub runs with the highest trust your machine has. Install is three moves: copy the theme folder to /boot/grub/themes/yourtheme/, point a 99- override file’s GRUB_THEME at /boot/grub/themes/yourtheme/theme.txt, run sudo update-grub. Building your own is the same thing in reverse — copy Kali’s theme folder as a starting point, rename it, and edit its theme.txt: the desktop-image line is your background, and the rest of the file is readably self-descriptive. Fair warning from experience: theme-building is the kind of "ten-minute job" that eats a happy Saturday. There are worse fates.
Image requirements that save you a reboot loop
| Property | What works | What bites |
|---|---|---|
| Format | PNG (safest), JPG, TGA | WebP, HEIC, AVIF — GRUB predates them all; convert first |
| Size / ratio | Match your screen — 1920×1080 for 16:9 | Wrong ratio gets stretched or letterboxed at boot resolution |
| Color depth | Standard 8-bit RGB export from any editor | Exotic 16-bit or indexed exports can render black or refuse to load |
| Location | Under /boot/grub/, root-readable | Home-folder paths can fail on encrypted or separate-partition setups — at boot time, /home may not exist yet |
That last row deserves one more sentence, because it is the second-most-common silent failure after the theme override: GRUB draws its screen before Linux is running, so it can only read files from partitions its own tiny drivers can reach. An image in /boot/grub/ is always reachable. An image in an encrypted home folder is not, and GRUB will just skip it — silently, again. Boot-time software communicates almost entirely through disappointment.
GRUB background not working? Every cause, one table
| Symptom | Cause | Fix |
|---|---|---|
| GRUB_BACKGROUND set, nothing changes | The Kali theme override — this post’s headline cause | Method 1 or Method 2 above |
| Changed the image, still the old one | Forgot sudo update-grub, or edited /boot/grub/grub.cfg directly (it gets regenerated) | Make changes in /etc/default/grub[.d], then always run update-grub |
| Background is black | Unreadable path at boot, or an exotic image export | Move the file under /boot/grub/, re-export as plain PNG |
| Never see GRUB at all | Single-OS installs may hide the menu, or timeout is too short to notice | Hold Shift (BIOS) or tap Esc (UEFI) at boot; or raise GRUB_TIMEOUT |
| Dual boot goes straight to Windows | Firmware boot order puts Windows Boot Manager first — GRUB never runs | Reorder in UEFI settings; your background was fine all along |
| Image looks stretched or tiny | Boot resolution differs from image size | Set GRUB_GFXMODE=1920x1080 (or your panel’s size) and re-run update-grub |
Ubuntu, Arch, and friends: the same trick, different bolts
The GRUB mechanics in this post are universal — what differs per distro is only whether a theme is pre-bolted. Stock Ubuntu ships no GRUB theme, which is why the plain GRUB_BACKGROUND advice works there and why Ubuntu-flavored guides mislead Kali users. Arch ships nothing at all by design — on Arch you own every line of /etc/default/grub yourself, and the equivalent of update-grub is grub-mkconfig -o /boot/grub/grub.cfg (they’re the same tool; update-grub is just Debian’s wrapper around it). Debian proper sits closest to Kali, desktop-base alternatives and all. The diagnostic that settles any distro in ten seconds: grep -r GRUB_THEME /etc/default/ — if that prints a theme path, you’re in Kali’s situation and Method 2 applies; if it prints nothing, plain GRUB_BACKGROUND will work as the old guides promise.
A note for VM users (and how to revert everything)
Running Kali in VirtualBox? Everything above works identically inside the VM — just know that VM consoles often boot at 4:3-ish resolutions, so Method 1’s step about grub-4x3.png stops being optional, and a mismatched image is the usual reason a VM boot screen looks squashed. Also fair to say out loud: you’ll see the VM’s boot screen for about two seconds per boot, so weigh the ten minutes against the audience. Customization on a VM is practice for the machine that matters — which is a fine reason too; it’s how most of us learned, alongside making Kali’s fonts yours.
Reverting is as honest as the install. Method 1: sudo mv /boot/grub/themes/kali/grub-16x9.png.bak /boot/grub/themes/kali/grub-16x9.png, then update-grub. Method 2: sudo rm /etc/default/grub.d/99-mybackground.cfg, then update-grub — the Kali theme immediately wins the vote again, dragon and all. Method 3: point your override back or delete it. Nothing in this post touches the boot logic — kernels, partitions, os-prober entries all stay untouched — which is why a wallpaper change can’t leave you with an unbootable machine, only, at worst, an ugly one.
FAQ — GRUB backgrounds on Kali, answered straight
How do I change the GRUB background image in Kali Linux?
Fastest way: back up and replace /boot/grub/themes/kali/grub-16x9.png with your own PNG, run sudo update-grub, reboot. Durable way: a 99- override file that empties GRUB_THEME and sets GRUB_BACKGROUND — both spelled out above.
Why is my GRUB background not working after update-grub?
On Kali, almost always the theme override: /etc/default/grub.d/kali-themes.cfg sets GRUB_THEME, and an active theme’s background silently beats GRUB_BACKGROUND. The failure-mode table above covers the rarer causes — unreadable path, exotic image format, edited grub.cfg directly.
How do I change the GRUB theme, not just the wallpaper?
Copy a theme folder into /boot/grub/themes/, point GRUB_THEME at its theme.txt from your own 99- override file, run sudo update-grub. Only install themes from sources where you can read the files.
Where is Kali’s default GRUB background stored?
The theme lives at /boot/grub/themes/kali/, its background is grub-16x9.png (with a grub-4x3.png sibling), and Debian’s alternatives system links /etc/alternatives/desktop-grub to the master copy under /usr/share/grub/themes/kali/.
Can changing the GRUB background break my system?
No — you’re changing artwork, not boot logic. The worst outcomes are a black background or the old image returning after a theme-package update. Kernels, partitions, and boot entries are untouched by everything in this guide.
What image size and format does GRUB want?
PNG or JPG at your screen’s native ratio — 1920×1080 covers most machines. No WebP, HEIC, or AVIF; GRUB predates them. Plain 8-bit RGB exports from any editor load reliably.
What is the difference between update-grub and grub-mkconfig?
Same tool. update-grub is Debian and Kali’s two-line wrapper that runs grub-mkconfig -o /boot/grub/grub.cfg. Arch users run the long form directly.
Why don’t I see the GRUB menu at all?
Single-OS machines often hide it or flash past it. Hold Shift (BIOS boot) or tap Esc (UEFI) during startup, or set GRUB_TIMEOUT=5 and re-run update-grub so the menu — and your background — actually stays on screen.
I dual boot and my PC goes straight to Windows — why?
Your firmware’s boot order runs Windows Boot Manager before GRUB, so GRUB — background and all — never gets its turn. Reorder the boot entries in UEFI settings; no GRUB configuration can fix a race it isn’t allowed to enter.
Can I edit GRUB’s background from Windows?
Practically, no — the files sit on a Linux partition Windows can’t write safely, and the config must be regenerated by update-grub running in Linux. Boot Kali (even from live USB in a pinch) and make the change there.
Does this work the same in a VirtualBox VM?
Yes, identically — but VM consoles often boot near 4:3, so update grub-4x3.png too in Method 1, or expect letterboxing. A squashed boot screen in a VM is a resolution mismatch, not a broken config.
Will a Kali update bring the dragon back?
If you used Method 1, a kali-themes package update can restore the original image — recopy yours over it. Method 2’s own 99- file is never touched by updates; that permanence is exactly why it exists.
How do I get the default Kali boot screen back?
Undo whichever method you used: restore the .bak image, or delete your 99- override file — then sudo update-grub. The stock theme wins again immediately.
Does changing the background slow down boot?
Immeasurably — GRUB loads one image either way. Boot speed lives elsewhere entirely (services, disks, the timeout you chose). Decorate freely.
Does this apply to Ubuntu or Arch?
The mechanics, yes; the override, no. Stock Ubuntu and Arch ship no GRUB theme, so plain GRUB_BACKGROUND works there directly. The ten-second test on any distro: grep -r GRUB_THEME /etc/default/.
Is there a graphical tool instead of the terminal?
Tools like GRUB Customizer exist in Kali’s repos, and they work — but they rewrite the same files with less transparency, and on a security-focused OS we’d rather you know exactly which two lines changed. The terminal path above is genuinely the shorter one.
Where to go next
- Kali Linux 2026.3: what’s landing in the next release
The release cycle that occasionally repaints your boot screen for you. - Install Kali Linux in VirtualBox, the 10-minute way
Practice canvas for every customization in this post. - Install fonts on Kali Linux (and for GIMP)
The other half of making Kali look like yours.
Revision note. This guide first appeared in January 2020, when replacing the theme image was the whole story; we were here when that was enough. Kali’s move to drop-in grub.d overrides made the old advice silently incomplete, so this rewrite (August 2026) was walked through end to end on our own Kali machine on the current rolling release — the file paths, the override behavior, and the alternatives link are read straight off that box, not from memory. If a future Kali release moves kali-themes.cfg or renames the theme folder, tell us through the contact page and we’ll bring the page back to true. And if you just spent an evening taping posters behind Kali’s stage set: the evening wasn’t wasted — you now know how the theater actually works, which is more than most guides ever teach.