Ricerca personalizzata

giovedì 22 novembre 2007

Ripristinare Grub cancellato da installazione Windows

http://static.blogo.it/ossblog/supergrub.png

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


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


2 commenti:

mrsource ha detto...

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?

Hugo ha detto...

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.

Vota il post

Google News Italia

I miei preferiti

Social Bookmark Script

Social Bookmarking
Add to: Mr. Wong Add to: Webnews Add to: Icio Add to: Oneview Add to: Linkarena Add to: Favoriten Add to: Seekxl Add to: Kledy.de Add to: Social Bookmarking Tool Add to: BoniTrust Add to: Power Oldie Add to: Bookmarks.cc Add to: Favit Add to: Newskick Add to: Newsider Add to: Linksilo Add to: Readster Add to: Folkd Add to: Yigg Add to: Digg Add to: Del.icio.us Add to: Reddit Add to: Jumptags Add to: Upchuckr Add to: Simpy Add to: StumbleUpon Add to: Slashdot Add to: Netscape Add to: Furl Add to: Yahoo Add to: Spurl Add to: Google Add to: Blinklist Add to: Blogmarks Add to: Diigo Add to: Technorati Add to: Newsvine Add to: Blinkbits Add to: Ma.Gnolia Add to: Smarking Add to: Netvouz Information

Treni in tempo reale - Orari ferrovie italiane