Lo scopo di questa guida e' quello di semplificare la gestione del GRUB a coloro che necessitano di piu' sistemi operativi sulla stessa macchina. Il GRUB o GRand Unified Bootloader ovvero il programma che si occupa della gestione d'avvio dei sistemi operativi a volte non e' sempre cosi' facile e intuitivo da gestire soprattutto se sul nostro pc vogliamo piu' sistemi operativi magari usando anche hard disk esterni. Dopo tante installazioni e reinstallazioni anche su piu' macchine di sistemi debian e no ho trovato un metodo abbastanza semplice che funziona. In pratica si tratta di installare Ubuntu o la distro che preferite sovrascrivendo l'MBR e lasciando ad essa il compito di gestire l'avvio di tutte le distro che installleremo dopo. Ogni volta che installeremo una nuova distro non faremo altro che accedere alla partizione di questa da utenti di root e copiare la cartella di boot nella root di Ubuntu (o in quella della distro che avete installato per prima) rinominando tale cartella in modo da distinguerla da quella di Ubuntu (chiamandola ad esempio boot2) ed andremo ad editare il file menu.lst di Ubuntu aggiungendo la voce della nuova distro creata dando come root la partizione di ubuntu e come percorso per il kernel e il wmlinuz la cartella /boot2 che abbiamo precedentemente copiato nella root. Naturalmente dopo Ubuntu dovremo fare attenzione ad ogni nuova distro installata affinche' il grub non vada a sovrascrivere l'MBR ma invece installeremo il grub nella stessa partizione di root della nuova distribuzione. Nel caso vogliamo una o piu' distribuzioni in un harddisk esterno semplicemente cambieremo l'ordine di mappatura alle relative voci... Il tutto puo' sembrare a prima vista difficile, in realta' dopo gli esempi che seguono si percepira' la semplicita' e l'efficacia della stessa.
Esempio 1:
Nel mio pc ho 2 OS Windows e Ubuntu quest'ultimo sovrascrivendo l'MBR mi permette di avviare entrambi i sistemi operativi l'uno (Windows) usando in chainloader l'altro Ubuntu dando il collegamento alla relativa cartella di boot in questo modo title Ubuntu 9.04, kernel 2.6.28-13-generic uuid 40b95e6c-31a8-405c-9844-0847c644b411 kernel /boot/vmlinuz-2.6.28-13-generic root=UUID=40b95e6c-31a8-405c-9844-0847c644b411 ro quiet splash initrd /boot/initrd.img-2.6.28-13-generic quiet ............................... ................................
title Windows Vista (loader) root (hd0,0) chainloader +1 savedefault makeactive
Bene ora la mia intenzione e' quella di installare PclinuxOS in un altra partizione cosa faccio?
Lancio la live d' avvio delll'installazione e quando pclinux mi chiede dove installare il grub semplicemente indico la partizione di ext3 che ho dato a pclinux stesso(se a pclinux ho dato / ext3 in hd0,3 il suo grub lo installo in hd0,3) di sicuro al riavvio avro' ancora il menu d'avvio di Ubuntu senza la voce di Pclinux quindi avvio normalmente Ubuntu vado in risorse (se gia' non c'e' l'icona della partizione nuova sulla Scrivania) e clicco sul disco che contiene la partizione del sistema operativo appena installato in modo che venga montata e che compaia quindi sul desktop poi entro in tale partizione e col tasto destro copio la sua cartella di boot e la incollo sul desktop rinominandola boot2. A questo punto apro un terminale e mi loggo come root sudo -s grub find /boot/grub/stage1 e ci segnamo il PRIMO risultato perche' ci servira' piu' avanti (dobbiamo usare il grub di Ubuntu quindi ci interessa sapere dov'e') nel mio caso (hd0,1) ******** e copio incollo la cartella boot2 nella root di Ubuntu in questo modo cp -r /home/nomeutente/Scrivania/boot2 / (dove / finale e' la root di ubuntu) Il lavoro maggiore e' fatto, procedo editando il file menu.lst di Ubuntu per aggiungere la voce di pclinuxos sudo -s gedit /boot/grub/menu.lst e aggiungo dando come percorso /boot2
title PClinuxOS kernel (hd0,x)/boot2/boot/vmlinuz BOOT_IMAGE=linux root=UUID=4fe3acdd-c4c0-4216-affe-d07e7d00ed76 acpi=on resume=UUID=fb11dd60-fac6-4ae6-ae07-577e0add50e4 splash=silent vga=791 initrd (hd0,x)/boot2/boot/initrd.img NB tutto quello che segue da /boot2 in poi lo copiate dalla prima voce del file menu.lst di pclinuxos
nel mio caso poiche' grub di ubuntu e' in hd0,1 ****** vedi sopra
title PClinuxOS kernel (hd0,1)/boot2/boot/vmlinuz BOOT_IMAGE=linux root=UUID=4fe3acdd-c4c0-4216-affe-d07e7d00ed76 acpi=on resume=UUID=fb11dd60-fac6-4ae6-ae07-577e0add50e4 splash=silent vga=791 initrd (hd0,1)/boot2/boot/initrd.img Quindi salviamo e chiudiamo il mio nuovo menu.lst di ubuntu e' il seguente
title Ubuntu 9.04, kernel 2.6.28-13-generic uuid 40b95e6c-31a8-405c-9844-0847c644b411 kernel /boot/vmlinuz-2.6.28-13-generic root=UUID=40b95e6c-31a8-405c-9844-0847c644b411 ro quiet splash initrd /boot/initrd.img-2.6.28-13-generic quiet .................... ................. ................. title PClinuxOS kernel (hd0,1)/boot2/boot/vmlinuz BOOT_IMAGE=linux root=UUID=4fe3acdd-c4c0-4216-affe-d07e7d00ed76 acpi=on resume=UUID=fb11dd60-fac6-4ae6-ae07-577e0add50e4 splash=silent vga=791 initrd (hd0,1)/boot2/boot/initrd.img
title Windows Vista (loader) root (hd0,0) chainloader +1 savedefault makeactive
Al riavvio il pc mi mostrera' un menu con la aggiunta la nuova voce di PClinuxOS che si avviera' di certo perche' sapra' esattamente (in /boot2) dove trovare i file di boot
ESEMPIO 2
ALLO stesso PC abbiamo attacato un HD esterno usb e su una partizione di questo o sull'intero disco vogliamo installare la distro Hymera in modo che sia avviabile dallo stesso grub di Ubuntu che contiene gia' gli altri 3 OS installati sul primo disco Cosa facciamo? (Ricordiamoci sempre di installare il grub di Hymera nella stessa partizione ext4 di root di che abbiamo dato a Hymera stessa) copiamo la cartella di boot di Hymera sul desktop la rinominiamo in boot3 e la copiamo nella root di Ubuntu Cosi' come abbiamo fatto prima andiamo ad aggiungere la prima voce del menu.lst di hymera nel menu.lst di ubuntu modificata in modo che la root sia quella di ubuntu e il percorso del kernel quello del /boot3... La differenza stavolta sta nel fatto che la nuova distro e' su un altro disco quindi dobbiamo cambiare nella voce la mappatura Quindi entriamo in ubuntu, terminale sudo -s gedit /boot/grub/menu.lst ed aggiungiamo la seguente
title Hymera linux 3D map (hd0) (hd1) map (hd1) (hd0) root (hd0,1) kernel /boot3/vmlinuz-2.6.29.3-hymera-686 root=/dev/sdf1 quiet video=uvesafb:1024x768-32 splash=silent,fadein,fadeout,theme:hymera noresume CONSOLE=/dev/tty1 console=tty1 rootflags=data=writeback barrier=off initrd /boot3/initrd.img-2.6.29.3-hymera-686
In modo che alla fine il nostro menu.lst di Ubuntu sia
title Ubuntu 9.04, kernel 2.6.28-13-generic uuid 40b95e6c-31a8-405c-9844-0847c644b411 kernel /boot/vmlinuz-2.6.28-13-generic root=UUID=40b95e6c-31a8-405c-9844-0847c644b411 ro quiet splash initrd /boot/initrd.img-2.6.28-13-generic quiet
title Ubuntu 9.04, kernel 2.6.28-13-generic (recovery mode) uuid 40b95e6c-31a8-405c-9844-0847c644b411 kernel /boot/vmlinuz-2.6.28-13-generic root=UUID=40b95e6c-31a8-405c-9844-0847c644b411 ro single initrd /boot/initrd.img-2.6.28-13-generic
title PClinuxOS KDE remix kernel (hd0,1)/boot2/vmlinuz BOOT_IMAGE=linux root=UUID=4fe3acdd-c4c0-4216-affe-d07e7d00ed76 acpi=on resume=UUID=fb11dd60-fac6-4ae6-ae07-577e0add50e4 splash=silent vga=791 initrd (hd0,1)/boot2/initrd.img
title Hymera linux 3D map (hd0) (hd1) map (hd1) (hd0) root (hd0,1) kernel /boot3/vmlinuz-2.6.29.3-hymera-686 root=/dev/sdf1 quiet video=uvesafb:1024x768-32 splash=silent,fadein,fadeout,theme:hymera noresume CONSOLE=/dev/tty1 console=tty1 rootflags=data=writeback barrier=off initrd /boot3/initrd.img-2.6.29.3-hymera-686
title Ubuntu 9.04, memtest86+ uuid 40b95e6c-31a8-405c-9844-0847c644b411 kernel /boot/memtest86+.bin quiet
title Other operating systems: root
title Windows Vista (loader) root (hd0,0) chainloader +1 savedefault makeactive
salviamo e chiudiamo Ora il nostro buon Ubuntu sara' in grado di avviare ben 4 sistemi operativi di cui uno che risiede su un disco esterno. Le possibilita' sono infinite ma con questo metodo testato da me tantissime volte su piu' pc e con sistemi debian e no spero davvero di riuscire a risolvere i problemi di gestione del grub
Consigli finali : Non create piu' di 4 partizioni primarie Usate una sola partizione di swap per disco per ogni sistema linux Il sistema operativo che usate piu' spesso mettetelo sul disco interno.
