Personalizzare GRUB – Il Bootloader di Linux
Quando accendiamo il nostro computer, tutto inizia da lì: un breve istante in cui l’hardware prende vita, il BIOS o l’UEFI fa i suoi controlli, e poi… qualcosa si incarica di caricare il sistema operativo.
Su Linux, quel “qualcosa” è GRUB, acronimo di GNU GRand Unified Bootloader.
E anche se lo vediamo solo per pochi secondi — o magari mai, se parte direttamente — GRUB è uno dei componenti più cruciali del nostro sistema. E soprattutto, è uno dei più personalizzabili.
In questo articolo vedremo cos’è GRUB, come funziona, dove si configura, e come possiamo personalizzarlo graficamente e funzionalmente.
E sì, arriveremo anche al famigerato GRUB Customizer, lo strumento amato e odiato dalla community Linux.
🧠 Cos’è GRUB e come funziona
GRUB è un bootloader, ovvero il programma che si occupa di caricare il sistema operativo scelto, subito dopo l’avvio del BIOS o dell’UEFI.
È in pratica il “pontiere” che collega il firmware del computer al kernel del sistema operativo.
La versione moderna — quella che tutti usiamo oggi — si chiama GRUB2.
È un sistema estremamente modulare e configurabile, capace di gestire più sistemi operativi e più kernel, e perfino di avviare immagini ISO direttamente dal menu.
Quando accendiamo il PC, GRUB entra in gioco in più fasi:
- Stage iniziale (boot sector) — una piccola porzione di codice si trova nel Master Boot Record (MBR) o nell’EFI System Partition.
Il suo compito è semplicemente avviare il resto di GRUB. - Caricamento del menu — qui GRUB mostra il classico menu di avvio: le varie voci per Linux, Windows, recovery mode, ecc.
- Caricamento del kernel — quando scegliamo una voce, GRUB carica in memoria il kernel Linux (o di un altro OS) insieme ai parametri di avvio e ai moduli necessari.
Insomma, è lui che decide chi parte, come parte e con quali opzioni.
🗂️ Dove si configura GRUB
Uno dei punti forti di GRUB è la sua struttura modulare: le impostazioni sono distribuite in vari file, ognuno con un ruolo preciso.
Vediamoli nel dettaglio.
/etc/default/grub
Questo è il file principale di configurazione.
Qui troviamo le opzioni di comportamento globale: il timeout, il sistema operativo predefinito, la risoluzione del menu, l’immagine di sfondo, e i parametri da passare al kernel.
/etc/grub.d/
Questa directory contiene una serie di script numerati che generano il menu di GRUB in modo dinamico.
Ogni script ha un compito: aggiungere le voci di Linux, di Windows, delle modalità avanzate, e così via.
Se vogliamo aggiungere voci personalizzate, possiamo modificare o creare uno script qui — in particolare nel file:
/etc/grub.d/40_custom
dove possiamo scrivere menuentry personalizzati, ad esempio per avviare un ISO o un sistema su un’altra partizione.
/boot/grub/grub.cfg
Questo è il file finale del menu che GRUB legge effettivamente all’avvio.
⚠️ Non va mai modificato a mano, perché viene generato automaticamente dai file precedenti.
Su sistemi Debian/Ubuntu il comando per rigenerarlo è:
sudo update-grub
Mentre su Arch Linux (e derivate):
sudo grub-mkconfig -o /boot/grub/grub.cfg
/boot/grub/themes/
Qui risiedono i temi grafici di GRUB, completi di immagini, font e file di configurazione.
/boot/
In questa directory possiamo anche conservare immagini o file ISO da avviare direttamente tramite GRUB.
Una funzionalità molto utile se vogliamo, ad esempio, fare il boot da un’ISO di installazione o una live senza doverla masterizzare o scrivere su USB.
📝 Modificare le impostazioni di base
Per modificare il comportamento di GRUB, apriamo il file principale di configurazione:
sudo nano /etc/default/grub
Ecco le voci principali che ci interessa conoscere:
GRUB_TIMEOUT
Indica in quanti secondi GRUB attende prima di avviare il sistema predefinito.
Possiamo ridurlo o impostarlo a0
per saltare direttamente il menu.GRUB_DEFAULT
Imposta quale voce deve essere avviata di default.0
corrisponde alla prima voce,1
alla seconda, e così via.GRUB_CMDLINE_LINUX_DEFAULT
Qui possiamo aggiungere o rimuovere parametri del kernel.
Ad esempio, togliendoquiet
esplash
possiamo vedere tutti i messaggi di avvio del kernel, utilissimi per diagnosticare problemi.GRUB_BACKGROUND="/boot/grub/sfondo.png"
Imposta un’immagine di sfondo personalizzata per il menu.GRUB_GFXMODE=1920x1080
Imposta la risoluzione del menu.
Ogni volta che modifichiamo qualcosa, è obbligatorio rigenerare il file di configurazione:
sudo update-grub
(Oppure, come detto, su Arch Linux:)
sudo grub-mkconfig -o /boot/grub/grub.cfg
🖼️ Cambiare solo lo sfondo
Una delle modifiche più semplici (e più visibili) è cambiare lo sfondo del GRUB.
Basta scegliere un’immagine, preferibilmente:
- con la stessa risoluzione che useremo per il menu,
- e di dimensioni inferiori a 2 MB.
Copiamola in /boot/grub/
e poi modifichiamo il file /etc/default/grub
aggiungendo:
GRUB_BACKGROUND="/boot/grub/sfondo.png"
GRUB_GFXMODE=1920x1080
GRUB_GFXPAYLOAD_LINUX=keep
La direttiva GRUB_GFXPAYLOAD_LINUX=keep
serve a mantenere la stessa risoluzione anche dopo l’avvio del kernel.
Aggiorniamo GRUB come sempre e… al prossimo riavvio vedremo il nostro nuovo sfondo personalizzato.
🎨 Cambiare il tema completo di GRUB
Se vogliamo andare oltre lo sfondo e dare a GRUB un look moderno e coerente con la nostra distro, possiamo usare i temi grafici.
Uno dei migliori punti di riferimento è GNOME-Look.org, nella sezione dedicata a GRUB.
Personalmente, uno dei temi che mi è sempre piaciuto è TELA, sviluppato da vinceluis e disponibile su GitHub : TELA Theme di vinceluis (GitHub)
Il pacchetto contiene più varianti, e include anche uno script di installazione che permette di scegliere:
- il tema (
-t
), - e la risoluzione (
-s
).
Esempio:
sudo ./install.sh -t tela -s 1920x1080
Dopo l’installazione, lo script modifica automaticamente alcune righe del file /etc/default/grub
, impostando:
- il nuovo percorso dello sfondo,
- la risoluzione,
- e soprattutto la direttiva
GRUB_THEME
, che punta alla cartella del tema scelto.
Da lì possiamo anche personalizzare ulteriormente: ad esempio, sostituire lo sfondo del tema con un nostro file background.jpg
nella directory del tema.
Basta rinominarlo e sostituirlo.
Poi, come sempre:
sudo update-grub
⏱️ Gestire il timeout e la voce di default
GRUB ci permette di ottimizzare i tempi di avvio in base alle nostre esigenze.
Ecco alcune opzioni utili:
- Avvio più rapido:
GRUB_TIMEOUT=2
- Avvio immediato (senza mostrare il menu):
GRUB_TIMEOUT=0 GRUB_HIDDEN_TIMEOUT=0
- Impostare una voce specifica come predefinita:
GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 6.8.0"
Per scoprire i nomi esatti delle voci nel menu, possiamo usare:
grep menuentry /boot/grub/grub.cfg
🧪 GRUB Customizer — Amore e odio
E arriviamo al punto “caldo”: GRUB Customizer.
Uno strumento grafico che per anni è stato nei repository di Ubuntu, poi rimosso a causa di bug e scelte di design controverse.
La community in generale sconsiglia il suo utilizzo… ma nella pratica, molti utenti lo trovano comodo e non hanno mai avuto problemi (me incluso 😉).
Installazione
Su Ubuntu o derivate basta aggiungere il repository PPA e installare:
sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt update
sudo apt install grub-customizer
Funzionalità principali
- Elenco di configurazione: possiamo riordinare, rinominare o nascondere le voci del menu.
- Impostazioni generali: scegliere la voce di default, il timeout, o decidere di saltare completamente il menu.
- Aspetto grafico: modificare sfondo, font e colori.
⚠️ Importante: le immagini e i font devono trovarsi in /boot/grub/
, perché al momento dell’avvio, il filesystem della home non è ancora montato.
Una volta applicate le modifiche, clicchiamo su Salva per rigenerare grub.cfg
.
Personalmente trovo GRUB Customizer perfetto per esperimenti rapidi, ma preferisco sempre conoscere (e modificare) i file a mano. È più sicuro e ti fa capire davvero cosa succede “dietro le quinte”.
💡 Conclusioni
GRUB è uno di quei componenti che di solito “funzionano e basta”.
Ma saperlo capire e personalizzare ci dà un controllo totale sull’avvio del sistema, oltre a un tocco estetico tutto nostro.
Abbiamo visto:
- come funziona GRUB e dove si trovano i file principali,
- come modificare timeout, risoluzione e voce predefinita,
- come impostare uno sfondo personalizzato o un tema completo,
- e infine come usare (con attenzione) GRUB Customizer.
È un argomento che unisce curiosità tecnica e personalizzazione visiva — il mix perfetto per chi ama smanettare su Linux.
Perché sì, anche il bootloader può avere stile 😎.
Commento all'articolo