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)