Modificare il menu di GRUB

| | 13 Comments

Questo misterioso boot loader!

Come già sappiamo, GRUB è un multiboot boot loader che viene installato per gestire l’avvio del nostro PC. Con questo software possiamo quindi gestire l’avvio di uno o più sistemi operativi e nel caso di linux, anche l’avvio del sistema operativo basato su diverse versioni del kernel.

Una delle noie che riscontriamo noi abitudinari utilizzatori di Ubuntu, è che ogni qual volta che aggiorniamo il kernel, compare una voce in più nel menu di avvio.

Modifica menu GRUB Ubuntu versioni precedenti alla 9.10

Prima della versione 9.10 di Ubuntu, per modificare il menu o per selezionare il boot predefinito (se volessimo per esempio avviare windows senza dover scattare dalla sedia per selezionare l’ultima voce in basso) bastava modificare il file

/boot/grub/menu.lst

Con la modifica di questo file è semplice modificare il menu ed è ancor più semplice posizionare la voce relativa a Windows come prima scelta (quindi scelta predefinita), infatti basta copiare e incollare la sezione che indica l’avvio di windows e metterla prima della voce relativa ad Ubuntu.

Modifica menu GRUB Ubuntu versione 9.10

Nella nuova versione di Ubuntu, ci troviamo di fronte invece anche ad una nuova versione di GRUB, il quale funziona in maniera un pò diversa dalla sua precedente versione.

  • Modifica selezione predefinita

Per modificare la scelta predefinita del menu, in questo caso non dobbiamo modificare nessun file e usare il “trucchetto” di spostare una voce prima di un’altra. Bisogna modificare il file /etc/default/grub

sudo gedit /etc/default/grub


Qui troviamo tra le prime righe del file le due opzioni che ci servono di più:

GRUB_DEFAULT=6   –> Posizione del menu usata come default
GRUB_TIMEOUT=10 –> Time out in secondi presente all’avvio del pc

Nel mio caso, il GRUB_DEFAULT è il 6, essendo windows in coda alle voci del menu, è in sesta posizione.

  • Eliminazione voci dal menu

Una cosa che mi è subito saltata all’occhio è stata: “Ma quando aggiornerò il kernel di Ubuntu e si aggiungeranno altre due voci al menu (una relativa alla versione del kernel e l’altra relativa alla versione del kernel in recovery mode), il mio windows, resterà in sesta posizione o finirà in ottava? Ovviamente ottava.

Quindi il GRUB_DEFAULT non serve a tanto, sempre che noi, una volta aggiornato il kernel, non vogliamo tenerci tutta la storia degli aggiornamenti che il nostro kernel ha subito.

Potremmo quindi eliminare le voci relative al kernel più vecchio in modo da avere sempre 6 voci nel menu di avvio.

Eseguire i seguenti comandi con cui togliamo il kernel che non ci serve più e reimpostiamo il menu di GRUB.

Nel seguente esempio vogliamo eliminare il kernel versione 2.6.31-17-generic

cd /boot
sudo mkdir oldkernels
sudo mv *2.6.31-17* oldkernels
sudo update-grub

Dovremmo avere un output come il seguente:

Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.31-19-generic
Found initrd image: /boot/initrd.img-2.6.31-19-generic
Found linux image: /boot/vmlinuz-2.6.31-18-generic
Found initrd image: /boot/initrd.img-2.6.31-18-generic
Found memtest86+ image: /boot/memtest86+.bin
Found Windows 7 (loader) on /dev/sda1
done

Tags: , , , , , , , ,

Category: Ubuntu

About the Author ()