PCpercaso.com: GRUB 2 e Ubuntu - Semplici configurazioni, colori e sfondiGRUB 2 è la nuova generazione del bootloader GNU GRUB (GRand Unified Bootloader). Il nuovo bootloader (o boot loader), che nasce dalla riscrittura di GRUB adesso rinominato GRUB Legacy, presenta una nuova struttura dei file di configurazione, degli script ed un nuovo modo di operare.

In Ubuntu, GRUB 2 è diventato il boot loader di default a partire dalla versione 9.10. Esso, pertanto, viene installato con la distribuzione ed automaticamente configurato. In questo breve articolo, ben lungi dall'essere una guida a GRUB 2, vedremo come configurare le opzioni più comuni del menu di GRUB 2 in Ubuntu. La versione di GNU GRUB utilizzata è la 1.98 installata con la distribuzione Ubuntu 10.04 Lucid.

Per ottenere specifiche configurazioni di GRUB 2 occorre necessariamente un'attenta conoscenza del nuovo boot loader. Fortunatamente, in rete è disponibile parecchia documentazione su GRUB 2 anche se principalmente in inglese; alla fine dell'articolo troverete alcuni tra le fonti (ufficiali e non) su GRUB 2 ed il suo impiego in Ubuntu.

Con GRUB 2 viene introdotta una nuova struttura di file e directory utilizzati per le configurazioni:

  • /boot/grub/grub.cfg è il file principale della configurazione del menu GRUB 2 e può essere considerato come l'equivalente del "/boot/grub/menu.lst" del precedente GRUB Legacy; a differenza di quest'ultimo, grub.cfg non va editato manualmente ma, come vedemo più avanti, si utilizzerà il comando update-grub per aggiornare automaticamente il file a seguito delle modifiche applicate nel file /etc/default/grub e negli script di configurazione della directory /etc/grub.d.
  • /etc/default/grub è il file di configurazione modificabile che contiene un insieme di opzioni per personalizzare il menu di GRUB 2 ad eccezione delle direttive di boot;
  • la directory /etc/grub.d contiene i file degli script le cui istruzioni saranno "incorporate" nel file principale di configurazione 'grub.cfg' a seguito del comando "update-grub" secondo un ordine di sequenza definito dal numero che precede il nome dello script; gli script presenti nella cartella sono: 00_header, 05_debian_theme, 10_linux, 20_memtest86+, 30_os-prober, 40_custom.

Dopo questa sintetica ma necessaria premessa per orientarsi nella struttura dei file di configurazione di GRUB 2, vediamo alcune delle più comuni opzioni di configurazioni facilmente applicabili modificando il file /etc/default/grub.

Per sicurezza facciamo una copia di del file originale (suggerisco di usare sempre questa buona regola prima di modificare ogni altro file di configurazione):

sudo cp /etc/default/grub /etc/default/grub.bak

quindi, apriamo il file 'grub' per la modifica:

sudo gedit /etc/default/grub

GRUB_DEFAULT  - specifica la voce predefinita selezionata nel menu GRUB; il valore di default, posto a 0, indica che verrà selezionata la prima voce; per specificare una particolare voce del menu basterà assegnare il numero di ordine corrispondente a partire da 0. Con l'opzione GRUB_DEFAULT=saved sarà selezionata l'ultima voce di menu utilizzata nel precedente boot.

GRUB_TIMEOUT - assegna il tempo di attesa in secondi prima del boot automatico. Con il valore "-1" si disabilita il timeout e GRUB rimane in attesa della pressione del tasto 'Invio' per effettuare il boot dalla voce di menu selezionata.

GRUB_DISABLE_LINUX_RECOVERY="true" - disabilita la visualizzazione le voci di menu riguardanti i modi di ripristino (Recovery Mode Options) per i kernel Linux installati; questa opzione è già presente nel file "grub" ma commentata quindi, se propio la si vuole abilitare (ammesso che sia una scelta utile ), basterà eliminare il simbolo di commento "#".

GRUB_DISABLE_OS_PROBER=true - disabilita la visualizzazione delle voci di menu riguardanti altri sistemi operativi (ad es. Windows) individuati nelle partizioni del sistema.

Terminate le modifiche salviamo il file, usciamo dall'editor ed applichiamo la nuova configurazione con

sudo update-grub

 

Opzione Memory test

Per disabilitare le voci di menu Memory test (memtest86+) sarà sufficiente eliminare l'attributo di file eseguibile allo script '20_memtest86+':

sudo chmod -x 20_memtest86+

ed aggiornare il file di configurazione grub.cfg

sudo update-grub

Immagine di sfondo e colori del menu GRUB 2

Il file /etc/grub.d/05_debian_theme è lo script dedicato alla configurazione dell'aspetto grafico del menu: immagine di sfondo (splah image), colori del testo, colore della selezione e temi.

La cartella predefinita utilizzata da GRUB 2 per le immagini di sfondo è la /usr/share/images/desktop-base. Le immagini dovranno essere di tipo PNG, TGA oppure JPG (8-bit).

Scegliamo la nostra immagine in modo che lo sfondo renda ben visibile le voci del menu, eventualmente la riduciamo di dimensione, la salviamo in PNG e la copiamo nella directory di default '/usr/share/images/desktop-base'.

Prima di procedere facciamo la solita copia di sicurezza dello script che andremo a modificare:

sudo cp /etc/grub.d/05_debian_theme /etc/grub.d/05_debian_theme.bak

Quinidi, apriamo per la modifica lo script '05_debian_theme':

sudo gedit /etc/grub.d/05_debian_theme

individuiamo la linea

WALLPAPER="/usr/share/images/desktop-base/moreblue-orbit-grub.png"

e sostituiamo il nome del file di default con la nostra immagine di sfondo, ad esempio "my_image.png" (nell'esempio ho commentato la linea originale):

if test -e ${f} ; then
source ${f}
else
#WALLPAPER="/usr/share/images/desktop-base/moreblue-orbit-grub.png"
WALLPAPER="/usr/share/images/desktop-base/my_image.png"
COLOR_NORMAL="white/black"
COLOR_HIGHLIGHT="red/yellow"

fi

Le due istruzioni successive - COLOR_NORMAL e COLOR_HIGHLIGHT - permettono di assegnare i colori del testo e della selezione delle voci di menu. In presenza di una immagine di sfondo potrà risultare utilie modificare i colori in modo da far risaltare meglio il testo.
Per ciascuna variabile chiave sono specificati due colori: il primo si riferisce al colore del testo ed il secondo al colore di sfondo. Se è stata assegnata una immagine di sfondo, settando il secondo colore in "black" lo sfondo del testo oppure della selezione sarà trasparente.
Tornando al nostro esempio, in cui vogliamo utilizzare l'immagine di sfondo, ho attribuito al testo del menu il colore bianco su sfondo trasparente e alla selezione il colore rosso su sfondo giallo.

PCpercaso.com: update-grubSalviamo lo script, usciamo dall'editor ed "incorporiamo" le modifica nel file di configurazione grub.cfg con il solito comando: sudo update-grub.

Se l'immagine è stata configurata correttamente otterremo un messaggio del tipo: Found background image: my_image.png.


Ed ecco il risultato finale della personalizzazione del menu. 

PCpercaso.com :: GNU GRUB 1.98 menu