| Ripristinare Grub |
|
|
|
| Linux - Tips&Tricks |
| Scritto da minopausa |
![]() Recentemente mi è capitato di osservare un paio di neofiti che hanno installato sul proprio computer Ubuntu e successivamente hanno preteso di installare, in dual-boot, Windows (XP o Vista fa lo stesso). La procedura sembrerebbe priva di problemi se non fosse per l'ordine con cui questi due sistemi operativi vengono installati: se installiamo sui nostri PC prima Windows e poi una qualsiasi distribuzione GNU/Linux provvista di Grub non avremo problemi di sorta, poiche Grub, in fase di installazione, provvederà a menzionare entrambi i sistemi operativi, mentre se invertiamo l'operazione (e cioè installiamo prima GNU/Linux e poi Windows) succede che l'MBR si sovrascrive con il bootloader di Windows, che farà partire solo Windows e buonanotte. Cercando in rete una soluzione per questo problema mi ha fatto capire quanto sia difficile trovare una soluzione comprensibile ai neofiti e mi sono cimentato in questo articolo scritto in neofitese! Perdonate la mia grossolanità e la presenza di imprecisioni, ma cercherò di usare una terminologia un po' sempliciotta onde far capire ai novizi (veri fruitori di questa guida) di cosa si stà parlando e di come risolvere il problema DA SOLI. Tanto per iniziare cominciamo con il prendere in considerazione come sistema operativo Ubuntu 8.10. Supponiamo che questo sia installato sul'unico hard-disk del nostro PC casalingo. Questa informazione è importantissima e potremo cercarla aprendo un terminale e digitando dentro: sudo cfdisk Vi suggerisco di osservare attentamente, appuntare tutto su di un foglio di carta e poi chiudere il terminale dall'apposita X in alto a dx senza toccare nulla...
Su Windows eravamo abituati alle lettere che venivano usate per etichettare gli hard-disk: C:, D:, etc... Su GNU/Linux la cosa è lievemente differente. Se possediamo due hard-disk (per fare un esempio): il master verrà etichettato come hda, mentre l'altro hard-disk verrà rinominato come hdb. Se dovesse essercene un terzo, questo verrà nominato come hdc e così via. Ora: supponiamo che il primo hard-disk (hda) sia suddiviso in 3 partizioni; queste verranno chiamate hda1, hda2 e hda3. Supponendo che hdb sia suddiviso in 2 partizioni si avrebbe: hdb1 e hdb2. Ora ci chiediamo: su quali di queste partizioni verrà installato Windows? Se sarà installato sulla prima partizione del secondo hard-disk allora dovremo installarlo in hdb1. Se sarà installato sulla seconda partizione del primo hard-disk verrà installato su hda2, etc...
Supponiamo di avere un PC con unico hard-disk suddiviso in 3 partizioni: hda1, hda2 e hda3. Vogliamo installare Windows in hda3, però vogliamo anche scegliere all'avvio quale sistema operativo far partire. Come si fa? è molto semplice: procuriamoci un CDROM della versione di Windows che ci interessa ed il CDROM di installazione di Ubuntu. Installiamo tranquillamente Windows sulla partizione scelta: all'avvio noteremo che partirà Windows automaticamente. Windows non ci permetterà di intervenire sul filesystem di GNU/Linux e quiindi ci servirà il CDROM di installazione di Ubuntu per poter reinstallare correttamente Grub sull'MBR. Riavviamo il PC, inseriamo il CDROM di Ubuntu (consiglio la versione 8.10) e scegliamo di far partire la versione Live di Ubuntu (Prova Ubuntu senza installarlo). Vi ricordo che questa operazione ve la scordate se avete meno di 256 MB di RAM.
Dopo aver avviato Ubuntu in versione Live aprite un terminale (lo trovate in Applicazioni -> Accessori -> Terminale... il testo sarà molto probabilmente in inglese, perciò cercate di sforzarvi un po'...). Da terminale digitate:
cd /media/nomehard-diskdoveceubuntu/boot/grub Qui troveremo il file che ci interessa: menu.lst. Per aprirlo digitiamo: sudo gedit menu.lst A questo punto cerchiamo le seguenti righe: # title Windows 95/98/NT/2000 # root (hd0,0) # makeactive # chainloader +1 Non dobbiamo far altro che decommentarle, ovvero cancellare il # davanti ad ogni riga, modificare il titolo (possiamo cancellare "Windows 95/98/NT/2000" e mettere ad esempio "Windows XP") e soprattutto modificare la riga root (hd0,0). Qui dovremo scrivere il nome dell'hard-disk che contiene Windows e relativa partizione. Dobbiamo tener conto che Grub usa un identificativo diverso per gli hard-disk: mentre GNU/Linux etichetta gli hard-disk con: hda, hdb, hdc, etc... Grub invece etichetta secondo la seguente metodologia: hd0, hd1, hd2, etc... Quindi hda corrisponderà ad hd0, hdb corrisponderà ad hd1 e così via! Siccome Grub usa i numeri al posto delle lettere, come farà ad indicare le partizioni? Semplice: mette una virgola dopo il numero e spara un altro numero. Quindi: se abbiamo Windows installato, per fare un esempio, sulla seconda partizione del secondo hard-disk scriveremo root (hd1,1). Nel nostro caso abbiamo installato Windows sulla terza partizione del primo hard-disk, quindi scriveremo: root (hd0,2). Sempre in questo file potrete modificare la riga:
timeout 3 che indica il tempo (espresso in secondi) necessario a scegliere il vostro sistema operativo all'avvio del PC. Vi suggerisco di modificarlo portandolo almeno a 5 secondi. Una volta fatto questo, salviamo e chiudiamo il file. Sempre da terminale scriviamo le seguenti righe:
sudo grub setup (hd0,2) quit Mi raccomando a modificare la voce setup (hd0,2) laddove ne aveste bisogno. Riavviate ed avete finito: Windows si avvierà come sistema operativo di default e potrete scegliere di cambiare sistema operativo all'avvio del PC premendo il tasto Esc quando vedete una specie di conto alla rovescia (quello è Grub che vi da la possibilità di cambiare sistema operativo).
NOTA: la stessa cosa vale per coloro che hanno gli hard-disk etichettati come sda, sdb,...! Il file menu.lst e i comandi vanno eseguiti come sopra specificato SENZA SCRIVERE sdX al posto di hdX!!! |

















