giovedì 22 novembre 2007

Ripristinare Grub cancellato da installazione Windows

Maria Susana Diaz | 15:22 |
Se si installa windows DOPO aver installato Linux, Windows si appropriera' del master boot record e non sara' piu' possibile avviare linux.
Porto ad esempio la struttura del disco del mio portatile (unico disco fisso):
hda1 -> windows ntfs (C:\ s.o.)
hda2 -> windows ntfs (D:\ dati)
hda3 -> linux ext3 (/)
hda4 -> linux swap

Per ripristinare l'avvio di linux si devono seguire questi passi:

1) avviare con una distribuzione live (magari avete già in mano il Cd di Canonical con Ubuntu 7.10 Gutsy Gibbon. Tra l'altro è cambiata la copertina. Non sono più i bambini ma ora sono cresciuti e sono diventati giovani. E' un segnale della maturità acquisita da Ubuntu. Un messaggio veramente forte (per Microsoft?). Complimenti.
Se il processore è a 64 bit utilizzare invece un live-cd per processori a 64 bit come Kubuntu desktop amd64.
2) andare a shell e diventare superuser (su)
3) montare la partizione di linux
mount /dev/hda3 /mnt/hda3
4) montare /dev in hda3 per far vedere le periferiche al chroot
mount -o bind /dev /mnt/hda3/dev

 
 
http://static.blogo.it/ossblog/supergrub.png
5) chroot-arsi in mnt/hda3 facendo diventare il disco linux "perduto" la nostra root
chroot /mnt/hda3
Questo è il comando che necessita di un live-cd progettato "ad hoc" per i processori a 64 bit: puo' non essere possibile effettuare il comando "chroot" con un Knoppix a 32 bit se il processore è a 64 bit.

6) eseguire questa serie di comandi

cd /boot/grub
grub
root (hd0,2)
setup (hd0)
exit
dove "cd /boot/grub" mi fa' entrare nella directory dove stanno i files di configurazione di grub, con "grub" entro nella shell del programma, indico con "root (hd0,2)" il disco dove sta' (per grub) la directory di boot, tenete presente che grub conta i dischi e la partizioni partendo da 0 e non da 1, quindi hda1 sara' (hd0,0), hdb1 sara' (hd1,0) etc etc, con "setup (hd0)" installo grub nel suo mbr e poi "exit" esco a shell di linux
7) a questo punto si puo' uscire dal chroot e da shell con una serie di "exit", chiudere la knoppix e riavviare
fonte: wiki
Se vuoi approffondire il tema la Guida a Grub è il posto consigliato. Ottimo tutorial consigliato dallo staff di Debianizzati.
Anche il wiki italiano di Ubuntu ci offre come al solito quest'ottima recensione:


Introduzione

Questo how-to 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 Live CD:
Primo Metodo
Il primo metodo è una procedura molto semplice che, però, prevede l'utilizzo del terminale. Inoltre, fino ad ora, pare abbia sempre funzionato.
  1. Avviare il Live Cd
  2. Aprire un terminale da Applicazioni -> Accessori -> Terminale e avviare grub con privilegi di amministrazione:
    sudo grub
    Il passo successivo serve per determinare la propria partizione di boot. Se si è già a conoscenza di questo dato, è possibile saltare il passo.
  3. Digitare
    find /boot/grub/stage1
    Verrà data una risposta del tipo hdX o (hdX,Y)
  4. Digitare:
    root (hdX,Y)
  5. Digitare:
    setup (hdX,Y)
    Questo è il passaggio chiave. In alternativa è possibile digitare:
    setup (hdX)
    nel caso si voglia riscrivere GRUB nel MBR. Nel primo caso invece GRUB verrà riscritto nella partizione contenente Linux.
  6. Digitare:
    quit
  7. Riavviare il sistema e rimuovere il Live CD.
Secondo Metodo
Il metodo seguente è il più semplice dei tre perché non richiede l'utilizzo della riga di comando, in quanto si utilizza l'applet per l'installazione guidata del Live Cd. Tuttavia ha dato problemi ad alcuni utenti nel momento del montaggio delle partizioni.
La soluzione proviene dal forum internazionale di Ubuntu. Il documento originale si trova qui.
  1. Fare il boot con il CD di Ubuntu/Kubuntu
  2. Proseguire nel programma di installazione fino al passo in cui si partiziona il disco
  3. Selezionare il partizionamento manuale
  4. Montare le partizioni presenti sul disco (/, /boot e /swap)
  5. Non formattare
  6. Concludere il partizionamento manuale
  7. Rispondere «» al momento di salvare i cambiamenti
  8. Verrà dato un errore del tipo «il sistema non può concludere l'installazione...»
  9. Ignorare l'errore e premere «Continue» fino a tornare alla schermata di installazione di Ubuntu
  10. Andare al passo in cui si installa GRUB e procedere con l'installazione
  11. Riavviare il computer dal disco fisso
Terzo Metodo
E' il metodo più laborioso, ma, se eseguito correttamente, dà la certezza di successo. Per proseguire è necessario:
  1. Conoscere la configurazione delle proprie partizioni. È sufficiente consultare il file /etc/fstab per avere tutte le informazioni necessarie. Per ottenere queste informazioni, in un terminale digitare:
    cat /etc/fstab
    oppure
    fdisk -l /dev/hda
  2. Conoscere il funzionamento del kernel, nel caso si utilizzi un kernel diverso da quello della propria distribuzione o compilato personalmente.
  3. Conoscere la versione del proprio kernel. Questa guida si basa sulla versione 2.6.10-5-386. Per conoscere la versione del proprio kernel, in un terminale digitare:
    uname -r
Preparazione dell'ambiente di lavoro

  1. Inserire il Live CD nel lettore CD e riavviare il computer
  2. Attendere il completamento dell'avvio del sistema operativo dal CD
  3. Una volta avviato il sistema, aprire un terminale da Applicazioni -> Accessori -> Terminale
  4. E' ora necessario diventare l'utente root. Dal terminale digitare:
    sudo passwd root
    inserire una password, quindi digitare:
    su
    e inserire la password precedente.
  5. Ora è necessario montare le partizioni contenenti i file del bootloader. E' necessario accedere sia alla cartella /sbin/ che a /boot/. Se nel file /etc/fstab c'è una anche la voce /boot/ allora bisogna montare anche quella. Creare un punto di montaggio:
    mkdir /mnt/work
    Se è necessario montare anche /boot/, digitare:
    mkdir /mnt/work/boot
  6. Controllare il proprio file /etc/fstab per identificare le partizioni / e /boot/. Probabilmente saranno qualcosa come /dev/hda3 e /dev/hda4. Per il resto di questa guida saranno utilizzati /dev/hda3 e /dev/hda4, adattare quindi i comandi presentati alla propria situazione
  7. Eseguire i seguenti comandi per caricare il filesystem e alcune informazioni che possono servire a GRUB:
    mount /dev/hda4 /mnt/work
    mount -o bind /dev /mnt/work/dev
    mount -o bind /proc /mnt/work/proc
    cp /proc/mounts /mnt/work/etc/mtab
  8. Digitare:
    chroot /mnt/work/ /bin/bash
    per entrare nell'ambiente di lavoro.
Da questo punto in poi si sta lavorando direttamente sulla propria installazione, qualsiasi modifica interesserà la propria installazione di Ubuntu. Muoversi con cautela!

 

Ripristinare GRUB automaticamente

Se si ha una partizione /boot/ separata, lanciare il seguente comando:
mount /dev/hda3 /boot/
A questo punto, reinstallare GRUB è facile. Eseguire il seguente comando:
/sbin/grub-install /dev/hda
Se il comando appena usato dovesse fallire, è necessario ripristinare GRUB manualmente.
Ripristinare Grub manualmente
Prima di intraprendere il prossimo passo, è necessario capire come GRUB identifichi le partizioni.
Per GRUB i numeri iniziano con 0, e le lettere sono espresse numericamente, sempre iniziando da 0.
Per esempio, /dev/hda1 è "hd0,0" per GRUB.
Ugualmente, /dev/hdb3/ è "hd1,2".


La linea "root" deve puntare alla posizione della vostra partizione /boot/ se ne avete una. Altrimenti deve puntare alla vostra partizione /.



Quindi digitare:
/sbin/grub

grub> root (hd0,2)

grub> setup (hd0)

grub> quit

Configurare il menù di GRUB


Questo passo non deve essere fatto se si sta cercando di recuperare il MBR. L'installazione di Windows non altera il contenuto del file menu.lst esistente, quindi se tutto funzionava prima, tutto funzionerà anche ora, quindi a questo punto basta riavviare il computer.


Aprire il file /boot/grub/menu.lst, con l'editor di testo preferito.

Il file menu.lst serve per controllare quali sistemi operativi verranno visualizzati da GRUB all'avvio e con che veste grafica.

Un esempio di menu.lst, alleggerito di tutti i commenti inutili, è riportato qui sotto. È basato sull'esempio precedente e assume che Windows sia installato in /dev/hda1.
timeout 5 #Numero di secondi che Grub dovrebbe aspettare prima di avviare un SO

default 0 #Il SO che dovrebbe essere avviato di default
fallback 1 #Il SO che dovrebbe essere avviato se il default fallisce
title  Ubuntu, 2.6.10 #Una voce 32-bit Ubuntu

#Questo (o qualcosa di simile) ci dovrebbe essere nella vostra configurazione

root   (hd0,2)
initrd /initrd.img-2.6.10-5-386
kernel /vmlinuz-2.6.10-5-386 root=/dev/hda4
title  Ubuntu, 2.6.10 #Un'altra voce 32-bit Ubuntu

#Questo è un esempio di voce di avvio senza una partizione /boot separata.
#(è stata inserita solo come un'alternativa all'esempio precedente -- non usatele insieme)

root   (hd0,2)
initrd /boot/initrd.img-2.6.10-5-386
kernel /boot/vmlinuz-2.6.10-5-386

title  Microsoft Windows XP Home #La voce dell'installazione di Windows

root   (hd0,0)
makeactive
chainloader +1
Salvare e chiudere il file, quindi digitare:
/sbin/update-grub
e provate le nuove voci di avvio.
Alternativa
E' disponibile un Live CD 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 questa pagina web.
Una volta scaricato e masterizzato il CD, avviare il computer con tale 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.
Ulteriori Risorse
Guida all'editor di testi nano


Ricerca personalizzata






Se ti è piaciuto l'articolo, iscriviti al feed per tenerti sempre aggiornato sui nuovi contenuti del blog:


Trovato questo articolo interessante? Condividilo sulla tua rete di contatti in Twitter, sulla tua bacheca su Facebook, in Linkedin, Instagram o Pinterest. Diffondere contenuti che trovi rilevanti aiuta questo blog a crescere. Grazie!

LINKEDIN

2 commenti

Tulis commenti
avatar
Carlo
Admin
23 novembre 2007 alle ore 10:54

Se invece, volendo disistallare Linux e rimanere col solo windows (sconsigliatissimo ma capita!),come potrei cancellare Grub e riconsegnare l'MBR nelle mani di Windows?

Rispondi
avatar
26 novembre 2007 alle ore 14:48

Semplice, al disintallare Linux comunque Windows la fa di padrone, voglio dire: viene ripristinata automaticamente la solita schermata che sei abituato a vedere con XP.
Se così con fosse basta reinstallare (non formattare) Windows.
In questo genere di cose si vede la differenza tra uno e l'altro: Ubuntu Linux ti permette di scegliere Windows no.

Rispondi