GRUB2: Come aggiungere un altro sistema operativo GNU/Linux nel menù di avvio
Con
grub2 si deve perdere
l'abitudine di configurare il file /boot/grub/grub.cfg, perchè questo
viene completamente riscritto ogni volta che si da il comando #
update-grub. Si devono quindi modificare i vari files di configurazione
di Grub2 e poi aggiornare Grub2 con il comando già
indicato: # update-grub. Questi appunti
descrivono come far partire all'avvio un altro sistema operativo
Gnu/Linux, installato in un'altra partizione.
-----------------------------------------------
Preambolo:
supponiamo di aver installato, oltre a Debian, la distribuzione
GnewSense (2.3-deltah) nella partizione /dev/sda4 dello stesso hard
disk dove è installata Debian che contiene i files di configurazione di
Grub2, installato nell'MBR.
------------------------------------------------ Raccolta informazioni:
Per cercare di capire come dire a Grub2 che deve avviare anche un
sistema operativo GNU/Linux che si trova in /dev/sda4, esaminiamo come
viene descritto il sistema Debian attualmente avviabile (possiamo
leggere il file /boot/grub/grub.cfg):
menuentry "Debian GNU/Linux, con Linux 2.6.32-trunk-686" {
insmod ext2
set root=(hd0,1)
search --no-floppy --fs-uuid --set 6baa95e4-2c03-4830-808b-1db59c241923
echo Loading Linux 2.6.32-trunk-686 ...
linux
/boot/vmlinuz-2.6.32-trunk-686
root=UUID=6baa95e4-2c03-4830-808b-1db59c241923 ro vga=0x315 quiet
echo Loading initial ramdisk ...
initrd /boot/initrd.img-2.6.32-trunk-686
ci serve esaminare le righe:
"menuentry"
"set root"
"linux"
"initrd"
sono tutte informazioni abbastanza familiari:
"menuentry": Descriviamo, come vogliamo, il sistema operativo che vogliamo avviare.
"set root": dobbiamo indicare la partizione dove abbiamo installato il sistema operativo, nel nostro esempio /dev/sda4.
"linux": indichiamo il kernel che dobbiamo avviare e dov'è root (utilizzando UUID, che sostituisce /dev/sda4)
"initrd": indichiamo dov'è l'immagine del kernel
Tutto abbastanza semplice da conoscere. Cè solo da cercare la partizione UUID, che troveremo dando il comando:
marco@hp6720s:~|$ ls -lah /dev/disk/by-uuid
totale 0
drwxr-xr-x 2 root root 120 6 feb 20:15 .
drwxr-xr-x 5 root root 100 6 feb 20:15 ..
lrwxrwxrwx 1 root root 10 6 feb 20:20 00681e2f-e4f9-462b-b058-f2df6d31478f -> ../../sda4
lrwxrwxrwx 1 root root 10 6 feb 20:15 0a45fc15-c4bf-418e-9b97-cee35f886a59 -> ../../sda5
lrwxrwxrwx 1 root root 10 6 feb 20:15 6baa95e4-2c03-4830-808b-1db59c241923 -> ../../sda1
lrwxrwxrwx 1 root root 10 6 feb 20:20 a28f4021-d80e-4c31-abf9-d6faba508d98 -> ../../sda3
marco@hp6720s:~|$
Abbiamo così raccolto tutte le informazioni iniziali che ci servono.
---------------------------------------------------------------------------------------
Apriamo ora un terminale root e iniziamo le operazioni:
per prima cosa creiamo un file in /etc/grub.d e lo chiamiamo 30-multiboot
# touch /etc/grub.d/30-multiboot
editiamo il file creato
# emacs /etc/grub.d/30-multiboot (sostituire emacs con l'editor preferito)
e inseriamo le seguenti righe:
cat << _EOF
menuentry "GnewSense kernel 2.6.24-24" {
set root=(hd0,4)
linux /boot/vmlinuz-2.6.24-24-generic root=UUID=00681e2f-e4f9-462b-b058-f2df6d31478f vga=788
initrd /boot/initrd.img-2.6.24-24-generic
}
_EOF
che poi sono il riassunto delle informazioni che abbiamo raccolto,
opzionalmente possiamo inserire altre informazioni come per esempio la
risoluzione vga (788, 791, .... ecc.)
salviamo e usciamo.
Rendiamo il file eseguibile:
# chmod +x /etc/grub.d/30-multiboot
e in ultimo aggiorniamo il file /boot/grub/grub.cfg con il comando:
# update-grub
--------------------------------------------------------------------------
Al successivo riavvio, troveremo nel menu di Grub2 la riga
GnewSense kernel 2.6.24-24
per far partire il sistema operativo.