venerdì 22 gennaio 2010

Rimuovere una voce dal menu di Grub 2

In uno dei post precedenti avevamo visto come aggiungere una nuova voce al menu di Grub 2, oggi invece tratteremo lo stesso argomento, ma con l'obiettivo di rimuovere alcune voci dallo stesso menu. In questo caso l'esigenza è quella di avere un menu il meno affollato possibile e soprattutto più facile da gestire per i nostri familiari, i quali non sono poi così avvezzi all'informatica come lo siamo noi ;-)
Avrete notato che di default Grub presenta delle voci di cui difficilmente un utente comune sentirà la mancanza; una di queste è quella relativa a memtest e a meno che non ne abbiate veramente bisogno (ma in tal caso sarà facile riabilitarla) non ha molto senso che appaia nella lista dei sistemi operativi da avviare, anche perché se vostra moglie dovesse lanciarla per errore (passando l'intero pomeriggio ad aspettare che si avvii il pc) - statene pure certi - se la prenderà con voi ;-)
Ma noi non vogliamo che questo accada (d'altronde in famiglia non siamo dei BOFH), quindi da bravi ragazzi andremo a rendere il nuovo menu di Grub 2 semplice e pulito.

Dicevamo che memtest non è indispensabile, quindi provvediamo subito a revocare i permessi di esecuzione dello script che genera la relativa voce in Grub:

$ sudo chmod -x /etc/grub.d/20_memtest86+ [invio]
password [invio]

In questo modo dal prossimo riavvio non vedrete più quelle fastidiose voci relative ai test di memoria, che come dicevamo, potrete sempre riabilitare eseguendo gli stessi comandi, ma sostituendo -x con +x per riassegnare i permessi di esecuzione al file 20_memtest86+.

Un'altra voce poco utilizzata nel menu di Grub è quella relativa al recovery mode e in questo caso c'è da dire che se avete aggiornato per diverse volte il kernel senza aver mai rimosso le vecchie versioni, potreste trovarvi con decine di voci di menu, in quanto viene generata una istanza normale e una recovery mode per ogni versione del kernel presente nel sistema. Quindi per evitare che questo avvenga dobbiamo istruire Grub attraverso la modifica del file /etc/default/grub:

$ sudo gedit /etc/default/grub [invio]

alla fine del file in questione troveremo la seguente riga:

#GRUB_DISABLE_LINUX_RECOVERY=true

che deve essere decommentata togliendo il simbolo cancelletto iniziale in questo modo:

GRUB_DISABLE_LINUX_RECOVERY=true

Fatto ciò, salvate e uscite. Inutile dire che nel caso la linea in questione non fosse presente, sarà sufficiente aggiungerla manualmente.

Una volta apportate tutte le modifiche desiderate non dimenticate di eseguire l'update, necessario a rendere effettivi i cambiamenti:

$ sudo update-grub [invio]

Infine diciamo che per rimuovere molte delle voci inutilizzate, potremmo anche aprire Gestore pacchetti (Synaptic) ed effettuare una ricerca con la parola chiave linux-image che in questo modo ci presenterà una lista di tutti i kernel installati e installabili nel sistema; a questo punto non ci resta che disinstallare le vecchie versioni per farle automagicamente scomparire anche dal menu di Grub.

Adesso i vostri cari non avranno più motivo per prendersela con voi e i vostri kernel ;-)

Aggiornamento: Rimuovere le doppie entry di Windows 7/Vista in Grub 2