Perfezionare manualmente il boot loader Grub

Attenzione: Articolo tecnico scritto nel 2010! Segui a tuo rischio.

Cos’è grub

Grub è il Boot loader di molte distribuzioni GNU/Linux: un programma che parte all’accensione del PC per far scegliere da quale partizione o con quali altre opzioni avviare il PC.

Immagine di Grub

Puoi rimuovere tutti i menù inutilizzati e rinominare gli altri.

Piccola precauzione

Per ovvi motivi è bene copiare il testo del file /boot/grub/grub.cfg da qualche altra parte. Puoi farlo lanciando da terminale:
sudo cp /boot/grub/grub.cfg /boot/grub/grub.cfg.bak
Così se capita qualcosa, da Ubuntu Live possiamo mettere tutto come prima.

E’ poi importante non copiare e incollare indiscriminatamente il contenuto di qualsiasi guida direttamente nei file di sistema come quelli di Grub: I dati cambiano da computer a computer.

Semplifichiamolo

Per rinominare o rimuovere i menù inutili puoi modificare /boot/grub/grub.cfg in questo modo:

  • Applicazioni → Accessori→ Terminale
    gksudo gedit /boot/grub/grub.cfg

A questo punto si aprirà il file di configurazione di Grub: cerchiamo con CTRL+F la parola “menuentry” per evidenziare nel file gli elementi d’avvio.

Immagine del listato di grub offerta dal Reyboz Blog

Il primo menuentry che si evidenzierà, rappresenta Ubuntu, e si riconosce da:

menuentry 'Ubuntu, con Linux 2.6.32-25-generic' --class ubuntu --class gnu-linux --class gnu --class os {recordfail
insmod ext2
set root='(hd0,5)'
search --no-floppy --fs-uuid --set c48efbff-0799-443a-bf46-8da16c687fe7
linux    /boot/vmlinuz-2.6.32-25-generic root=UUID=c48efbff-0799-443a-bf46-8da16c687fe7 ro  vga=791 quiet  quiet splash
initrd    /boot/initrd.img-2.6.32-25-generic
}

Modifichiamo quindi solamente il titolo a nostro piacimento e lasciamo intatto tutto il resto in modo che risulti:

menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os {recordfail
insmod ext2
set root='(hd0,5)'
search --no-floppy --fs-uuid --set c48efbff-0799-443a-bf46-8da16c687fe7
linux    /boot/vmlinuz-2.6.32-25-generic root=UUID=c48efbff-0799-443a-bf46-8da16c687fe7 ro  vga=791 quiet  quiet splash
initrd    /boot/initrd.img-2.6.32-25-generic
}

Osserviamo invece l’ultimo menuentry, esso rappresenta la nostra seconda partizione, nel caso di alcuni, ad esempio Windows XP.

menuentry "Microsoft Windows XP Home Edition (on /dev/sda1)" {
insmod ntfs
set root='(hd0,1)'
search --no-floppy --fs-uuid --set 661ccc411ccc0e4d
drivemap -s (hd0) ${root}
chainloader +1
}

Modifichiamo a nostro piacimento anche questo il titolo, in modo che risulti più semplice:

menuentry "Windows XP" {
insmod ntfs
set root='(hd0,1)'
search --no-floppy --fs-uuid --set 661ccc411ccc0e4d
drivemap -s (hd0) ${root}
chainloader +1
}

Invece, per nascondere le modalità ripristino basta aggirarli vendendoli come commenti, mutantoli da così:

menuentry 'Ubuntu, con Linux 2.6.32-24-generic (modalità ripristino)' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd0,5)'
search --no-floppy --fs-uuid --set c48efbff-0799-443a-bf46-8da16c687fe7
echo    'Caricamento Linux 2.6.32-24-generic...'
linux    /boot/vmlinuz-2.6.32-24-generic root=UUID=c48efbff-0799-443a-bf46-8da16c687fe7 ro single  vga=791 quiet
echo    'Caricamento ramdisk iniziale...'
initrd    /boot/initrd.img-2.6.32-24-generic
}

A così:

# menuentry 'Ubuntu, con Linux 2.6.32-24-generic (modalità ripristino)' --class ubuntu --class gnu-linux --class gnu --class os {
# recordfail
# insmod ext2
# set root='(hd0,5)'
# search --no-floppy --fs-uuid --set c48efbff-0799-443a-bf46-8da16c687fe7
# echo    'Caricamento Linux 2.6.32-24-generic...'
# linux    /boot/vmlinuz-2.6.32-24-generic root=UUID=c48efbff-0799-443a-bf46-8da16c687fe7 ro single  vga=791 quiet
# echo    'Caricamento ramdisk iniziale...'
# initrd    /boot/initrd.img-2.6.32-24-generic
# }

Stessa cosa per i vari memorytest, che li facciamo diventare da così:

menuentry "Memory test (memtest86+)" {
insmod ext2
set root='(hd0,5)'
search --no-floppy --fs-uuid --set c48efbff-0799-443a-bf46-8da16c687fe7
linux16    /boot/memtest86+.bin
}

A così:

# menuentry "Memory test (memtest86+)" {
# insmod ext2
# set root='(hd0,5)'
# search --no-floppy --fs-uuid --set c48efbff-0799-443a-bf46-8da16c687fe7
# linux16    /boot/memtest86+.bin
# }

Riavvio di ubuntu offerto dal Reyboz Blog

Infine salvando il file e riavviando il computer, vedrete il frutto delle vostre fatiche con una schermata pulita e molto più  apprezzabile che includerà soltanto:

-Ubuntu

-(vostro sistema secondario)

3 commenti su “Perfezionare manualmente il boot loader Grub”

  1. Ciao volevo sapere io ho installato Ubuntu 14.04 LTS per conoscerlo un pò. Ho letto su Internet tempo fa, però purtroppo non ricordo più il nome del sito dove trattava un avvio più sicuro del sistema operativo in questione, che ci stava la possibilità di avviarlo senza ramdisk a patto però che si ricompilasse il kernel. Ho cercato di nuovo questa guida ma purtroppo niente da fare. Volevo sapere se magari eri in grado di darmi suggerimenti anche a link magari. Grazie

    1. (Metto le mani avanti: Questo è un articolo un po’ vecchiotto!)

      Sarei ben lieto di aiutarti ma avrei bisogno che tu mi venissi incontro chiarendo quali sarebbero le tue preoccupazioni sulla questione “avvio più sicuro” :) Ciao!

      1. Più che preoccupazioni è semplice curiosità di fare quest’altra prova tutto qui. Ripeto lessi tempo fa su internet una guida di appassionato di linux ubuntu, che proponeva l’avvio del sistema operativo “un pò più sicuro” rispetto ai canoni standard, a detta sua, cercando di farlo senza “ramdisk” ricompilando il kernel linux del sistema operativo ubuntu a patto però di avere una buona, se non addirittura dettagliata, conoscenza del hardware. Il problema è che non ricordo più i passaggi e in più non ricordo il nome del sito e della guida in quanto era scaricabile pure in PDF. Non riesco a trovare più guide dettagliate che mi spieghino in modo esaustivo il processo o i processi.

I commenti sono chiusi.