SDB:Riparare l'MBR dopo l'installazione di Windows


Provato su openSUSE Articoli consigliati Articoli correlati
Icon-checked.png

Icon-manual.png Icon-help.png

Situazione

Dopo aver installato Windows di fianco a Linux, GRUB è stato sostituito dal bootloader di Windows. Come riottenere GRUB nell'MBR?

Procedura

Devi assicurarti di essere in grado di avviare openSUSE. Puoi farlo utilizzando il Sistema di salvataggio (versione inglese: Rescue System) del DVD di installazione o utilizzando un CD con Plop Boot Manager o Super Grub Disk per esempio. Puoi avviare una qualsiasi ISO su chiavetta USB tramite UNetbootin. Quindi puoi riparare il Master Boot Record con pochi comandi:

apri un terminale e digita (nella Modalità di ripristino non è necessario sudo):

sudo /usr/sbin/grub

Quindi esegui i seguenti comandi:

 grub> find /boot/grub/stage2 (ti mostrerà il percorso dell'installazione corrente di grub, è necessario per il passaggio successivo)
 grub> root (hdx,y)
 grub> setup (hdx)
 grub> quit

Attenzione: x rappresenta il numero del disco e y il numero della partizione in cui è installato GRUB stage2. La numerazione inizia da 0. Per esempio se il primo comando dà come risultato (hd0,5) dovresti eseguire root (hd0,5) seguito da setup (hd0). Dopo aver riavviato dovrebbe riapparire il menu di GRUB.

Questa soluzione è stata suggerita sul forum dall'utente please_try_again.

Procedura per openSUSE 12.2 (con GRUB2)

Icon-warning.png
Attenzione! Molto probabilmente, se hai "perso" il boot loader GRUB2 in seguito ad una (re)installazione di Windows e avevi seguito in precedenza quanto detto nella guida per configurare il bootloader in caso di un altro sistema operativo installato (Windows, in particolare) per recuperare GRUB2 ti basterà riassegnare il flag di boot alla corretta partizione primaria (estesa, eventualmente), come descritto in quell'articolo, invece di seguire la procedura qui esposta.

A partire da openSUSE 12.2 il boot loader predefinito è GRUB2, mentre la vecchia versione (ovvero GRUB Legacy) viene ancora installata, ma non è più la scelta predefinita.
Per recuperare GRUB2 un metodo rapido che puoi seguire consiste nel fare uso del CD Live di openSUSE 12.2, KDE oppure GNOME, inserito il CD avviare una sessione desktop live. Eventualmente si può provare anche utilizzando il Sistema di salvataggio (versione inglese: Rescue System) del DVD di installazione di openSUSE 12.2.

È importante che la versione di openSUSE nel CD Live sia la stessa di quella installata sul disco rigido, di modo che la versione di GRUB2 fornita dalle due distribuzioni (quella live e quella sul disco rigido) non siano troppo diverse.

A questo punto apri un terminale e diventa root:

su -

identifica la partizione in cui è installata openSUSE 12.2 (o superiore)

# fdisk -l

monta la partizione corrispondente alla root "/" di openSUSE, per esempio /dev/sda2:

# mount /dev/sda2 /mnt

in openSUSE 12.2 (la versione corrente al momento di scrivere) GRUB2 usa la directory /boot/grub2, per copiarvi le immagini del boot loader, tuttavia per sicurezza conviene specificarla come argomento del seguente comando, che installa effettivamente le immagini del boot loader nella directory di avvio e boot loader nel dispositivo corrispondente alla partizione identificata qui sopra:

# grub2-install --boot-directory=/mnt/boot/grub2 /dev/sda

in cui /dev/sda indica che la parte di "boot.img" relativa al boot loader verrà installata nel settore di avvio principale (MBR) del disco rigido.

Ora è possibile riavviare il sistema.
Riavviando il sistema dal disco rigido dovrebbe comparire il menu di GRUB2.
Una volta avviata una sessione in openSUSE, potresti voler aggiornare la configurazione del boot loader da YaST > Boot Loader, semplicemente facendo clic sul tasto "OK" in quella finestra o da terminale con:

# grub2-mkconfig -o /boot/grub2/grub.cfg
In alternativa

Puoi tentare una procedura automatica, usando la distribuzione Live (su CD o chiavetta USB) SystemRescueCD, la cui immagine iso è disponibile a questo indirizzo.
Una volta avviato il CD o la chiavetta USB, nel menu di avvio seleziona l'opzione "Boot an existing Linux system installed on the disk" (oppure "Boot existing Linux OS installed on the disk (64bit kernel)", nel caso di un sistema con architettura a 64 bit. In questo caso la voce sarà probabilmente disponibile sotto "Standard 64 bit kernel (rescue 64) with more choice...").
Verrà (sperabilmente) avviata la prima installazione di GNU/Linux rilevata sul sistema (vedi qui per maggiori informazioni, in inglese), ovvero openSUSE 12.2 nel caso in cui sia l'unico sistema Linux installato.
In ogni caso una volta che il sistema Linux sia stato avviato e in esecuzione, fai riferimento alla guida del boot loader per aggiornare la configurazione per il gestore degli avvii di quel sistema. Per openSUSE 12.2 o altra distribuzione che usa GRUB2 vedi quanto detto poco più sopra riguardo l'uso di grub2-mkconfig (potrebbe essere update-grub in alcune altre distribuzioni GNU/Linux diverse da openSUSE).

Vedi anche