Questa guida contiene tre diverse soluzioni per ripristinare GRUB a causa di:
- Sistemi in dual-boot in cui Windows è stato installato dopo Ubuntu.
- Problemi di Windows che hanno obbligato a una sua reinstallazione.
- Tecniche di recupero di Windows che comportino il "ripristino" del MBR.
-
Errori nell'installazione di GRUB.
Tutti e tre i metodi qui descritti richiedono l'utilizzo del CD Live.
Primo metodo
Il primo metodo è una procedura molto semplice e prevede l'utilizzo del terminale. Questa procedura dovrebbe funzionare a patto che la struttura delle partizioni del disco contenente GRUB non sia stata modificata tramite programmi come gparted, Norton Partition Magic: in tal caso è necessario controllare il file /etc/fstab.
- Avviare il CD Live
Per sistemi installati su file system ext4 è necessario avviare un Live Cd di Ubuntu 9.04 o superiore.
-
Digitare il seguente comando in una finestra di terminale:
sudo grub
Determinare la partizione di boot in cui è stato installato Ubuntu digitando:
find /boot/grub/stage1
Verrà data una risposta del tipo hdX o (hdX,Y), dove X e Y indicano rispettivamente il disco e la partizione su cui è installato GRUB. Per esempio, se GRUB è installato nella partizione /dev/sda3, il comando precedente darà come risposta (hd0,2). Nei seguenti comandi verrà usato come esempio (hd0,2): adattare quindi i comandi alla risposta ricevuta dal comando precedente.
Digitare:
root (hd0,2)
per indicare a GRUB la partizione da cui leggere il file menu.lst.
Questo è il passaggio chiave. Digitare:
setup (hd0)
per installare GRUB nel MBR del primo disco fisso (di solito il disco che parte al boot).
Infine digitare:
quit
- Riavviare il sistema e rimuovere il CD Live.
Secondo metodo
Questo metodo viene eseguito direttamente dal sistema operativo lanciato, per esempio, con il CD Live di Supergrub o con un altro strumento.
In un terminale digitare:
sudo fdisk -l
per scoprire il disco su cui è installato GRUB. Un esempio di output potrebbe essere il seguente:
Dispositivo Boot Start End Blocks Id System
/dev/sda1 * 63 153597464 76798701 7 HPFS/NTFS
/dev/sda2 153597465 419842709 133122622+ 7 HPFS/NTFS
/dev/sda3 419842710 487219319 33688305 83 Linux
/dev/sda4 487219320 488392064 586372+ 5 Esteso
/dev/sda5 487219383 488392064 586341 82 Linux swap / Solaris
Per installare GRUB digitare:
sudo grub-install /dev/sda
Se il comando precedente non dovesse andare a buon fine, digitare:
sudo grub-install (hd0)
Infine, per aggiornare il menù di GRUB, digitare:
sudo update-grub
In questo modo viene installato GRUB sul disco posto sul canale primario master.
Se la procedura appena utilizzata non dovesse funzionare, seguire il primo metodo.
Terzo metodo
È il metodo più laborioso, ma nel caso il pacchetto GRUB non sia installato o sia necessario reinstallarlo a causa di qualche file danneggiato, se eseguito correttamente, dà la certezza di successo. Procedere come segue:
- Inserire il CD Live nel lettore CD, riavviare il computer e attendere il caricamento del sistema operativo dal CD.
- Una volta avviato il sistema, aprire un terminale.
È ora necessario diventare l'utente root. Dal terminale digitare:
sudo -s
Individuare la partizione in cui è installato Ubuntu con uno dei seguenti comandi, come descritti nei metodi precedenti:
find /boot/grub/stage1
oppure
sudo fdisk -l
Creare i punti di mount necessari:
mkdir /mnt/work
Eseguire i seguenti comandi per caricare il file system e alcune informazioni che possono servire a GRUB. In questo esempio viene usato sda4:
mount /dev/sda4 /mnt/work
mount -o bind /dev /mnt/work/dev
mount -o bind /proc /mnt/work/proc
cp /proc/mounts /mnt/work/etc/mtab
Digitare quindi:
chroot /mnt/work/ /bin/bash
grep -v rootfs /proc/mounts > /etc/mtab
Da questo punto in poi si sta lavorando direttamente sulla versione installata di Ubuntu, muoversi con cautela. Seguire quindi una delle due strade indicate di seguito: il ripristino automatico o il ripristino manuale.
All'interno dell'ambiente chroot è inoltre possibile effettuare qualsiasi operazione da riga di comando come: aggiornare il sistema o installare/rimuovere applicazioni e kernel con gli strumenti come apt, dpkg, ecc...
Ripristinare GRUB automaticamente
Se si ha una partizione /boot separata, è possibile visualizzare quale sia il device con punto di mount /boot.
Dal terminare digitare:
cat /etc/fstab
per vedere il device che viene montato come /boot.
Ipotizzando che il device sia /dev/sda3, digitare il seguente comando:
mount /dev/sda3
A questo punto, installare, reinstallare o ripristinare GRUB è facile. È comunque consigliato reinstallare GRUB. Dal terminale, digitare:
sudo apt-get install --reinstall grub
Per completare l'installazione sul MBR, digitare:
grub-install /dev/sda oppure
grub-install (hd0)
update-grub
Se la procedura appena utilizzata non dovesse funzionare, è necessario ripristinare GRUB manualmente.
Ripristinare GRUB manualmente
Eseguire i passi del primo metodo all'interno dell'ambiente chroot.
Al termine, digitare:
exit
per uscire dall'ambiente chroot e riavviare il computer.
Alternativa
È disponibile un CD Live in grado di riparare automaticamente GRUB dopo l'installazione di Windows, ed è molto facile da utilizzare. Per scaricare il CD di «Super Grub Disk», consultare: http://www.supergrubdisk.org/.
Una volta scaricato e masterizzato il CD, avviare il computer con il CD inserito e scegliere: Italian -> Linux -> Fix Linux Boot (GRUB). Al termine dell'operazione si riceverà il messaggio: SGD has done it!!!. In questo modo GRUB verrà ripristinato e sarà di nuovo possibile avviare sia Linux che Windows.
- Avviare il CD Live