Ripristinare GRUB2 su Ubuntu con un Live CD dopo l’installazione di Windows

Un mese fa ho cambiato l’harddisk del mio portatile (SATA 250GB 7200rpm). Ritrovandomi senza dvd di ripristino di Windows Vista e senza partizione di ripristino, facendo l’installazione sul disco nuovo ho messo direttamente Ubuntu e basta. Per lavoro ora ho bisogno di Windows in quando il software che uso gira solo sul sistema operativo Microsoft, quindi ho partizionato il disco e ho installato Windows 7 per provarlo. Devo dire – oggettivamente – che è una scheggia, davvero veloce anche con millemila applicazioni aperte, ma questo discorso non c’entra con quello che voglio trattare in questo post.

Dopo l’installazione di Windows mi sono ritrovato senza GRUB2, il bootloader di default di Ubuntu “Karmic Koala” 9.10 e quindi non riuscivo più ad accedere al mio sistema preferito. Sulla Rete ci sono molte guide riguardo GRUB, ma pochissime trattano GRUB2. Come ripristinarlo?

ATTENZIONE! Nei passi seguenti si lavorerà come root sul nostro sistema, quindi prudenza.

Recupera un Live CD. Io ho usato quello di Ubuntu “Jaunty Jackalope” 9.04 64bit.
Una volta avviato apri un terminale. Per comodità diventa superuser, e d’ora in poi attenzione.
Devi identificare su quale partizione hai la directory /boot di Linux. Nel mio caso è /dev/sda3. Per vedere le partizioni usa

sudo fdisk -l /dev/sda

Ora monta la partizione, monta la directory /dev in modo da farla vedere al tuo sistema e accedi:

mount /dev/sda3 /mnt
mount -o bind /dev /mnt/dev
chroot /mnt

Ora aggiorna ricreo il file grub.cfg di GRUB2 e lo installo di nuovo nel MBR:

update-grub
grub-install /dev/sda

Teoricamente a questo punto avrà installato nuovamente GRUB2 dopo aver trovato i kernel installati e anche la partizione con Windows. Smonta la partizione e chiudi il terminale:

exit
umount /mnt/dev
umount /mnt
exit
exit

Ora riavvia. Potrebbe presentarsi il caso in cui la partizione con Windows non venga rilevata e che sia quindi impossibile avviarla. Per aggirare questo fastidio entriamo nel nostro sistema Ubuntu abituale, installiamo il pacchetto os-prober, usiamolo e ripetiamo le operazioni di prima. Via di terminale:

sudo apt-get install os-prober
sudo os-prober
sudo update-grub

Ora dovresti aver visto che anche la partizione con Windows è stata individuata. Riavvia il sistema e prova.

Se riscontri imprecisioni nella guida o vuoi confermare che tutto funziona lascia pure un commento.

EDIT 26.10.2009: Trovi altri metodi qui (guida trovato attraverso un poco educato commento di un utente a questo articolo).
EDIT 09.11.2009: Grazie a ste che nei commenti ha trovato l’imprecisione su grub-install, ora corretta.

42 Thoughts on “Ripristinare GRUB2 su Ubuntu con un Live CD dopo l’installazione di Windows

  1. Pingback: RSS Week #70: letture per il weekend - Matteo Moro

  2. Pingback: » Ripristinare GRUB2 su Ubuntu dopo l’installazione di Windows

  3. Il comando update-grub non aggiorna il grub, ricrea il file menu.lst.
    http://man.he.net/man8/update-grub
    Se non sono state fatte modifiche alle partizioni non è quindi nemmeno necessario.
    Per altro non ravvedo nessuna differenza con la procedura per grub legacy…

  4. Pingback: Ripristinare GRUB2 su Ubuntu dopo l’installazione di Windows | Fabrizio Savella

  5. Pingback: Ripristinare GRUB2 su Ubuntu dopo l

  6. Per "aggiornare Grub2" intendo proprio ricreare il file menu.lst, grazie per la puntigliosa osservazione. Per quanto riguarda la questione "modifiche alla partizione" le ho fatte in quanto ho installato Windows7 riducendo la partizione che uso per /home.

  7. Il commento di uno è stato cancellato in quanto non si è identificato. Non facciamo i bambini, nickname o nome e cognome potete anche tirarli fuori.

  8. Interessante. Ho già XP e Jaunty ma vorrei avere anche un Win7 per prove varie. Appena ho una mezza giornata ci provo

  9. Geppo on 30 October, 2009 at 11:33 said:

    Ciao Oskar, grazie per la guida, ora vedrò di provarla, il mio problema è simile ma non proprio così; io ho usato finora il boot.ini di windows per la scelta del sistema operativo da lanciare nettendo i primi 512 bytes della partizione in cui era installato il bootloader di Ubuntu in un file e facentdo poi leggere il file al boot.ini di XP. Ora col Koala se uso questa procedura, non parte! i primi 512 bytes sembrano vuoti! tu hai idea di come si possa fare a usare sempre il boot.ini di XP? tu mi chiederai che mi frega di usarlo e usare invece Grub2, però conoscendo Microsoft vorrei evitare che un bel giorno, con qualche aggiornamento, zio Bill vede che il boot loader non è il suo e mi cambia tutto (cosa da non stupirsi con Microsoft)
    Grazie.
    Geppo

  10. Ciao Geppo, purtroppo non so aiutarti sulla questione boot.ini perché non l'ho mai usata

  11. Perfetta guida, ma devi correggere il comando
    grub-install
    in
    grub-install /dev/sdYX

  12. EDIT
    …/dev/sdaX se si installa nel MBR

  13. Grande Oskar, guida perfetta! Un solo problemino, ogni volta che win si aggiorna (vista 64) al riavvio successivo il grub sballa e devo reinstallarlo come da guida… esiste un modo per fixare il problema definitivamente?
    Complimenti
    Pier

  14. Grazie Pier, molto gentile :) Non mi è mai successo quello che descrivi, ora come ora non saprei aiutarti. Anche perché quando avevo Vista in dualboot si era fatto 33 aggiornamenti che non andavano a buon fine, quindi non li applicava, e non ho mai capito il perché.

  15. Grazie per la guida, Oskar: utile anche per chi vuole scegliere quale menu di grub usare tra due installazioni Linux.

  16. grazie per l'utile guida!
    volevo solo precisare che al posto del cd live ho usato Super Grub Disk 1.21 (basato su grub2 beta 1.96). Al boot del pc mi riconosceva la partizione di Ubuntu e così sono potuto entrare normalmente nel os di linux. A quel punto mi è bastato digitare con i privilegi di amministratore: update-grub e poi grub-install /dev/sda
    Al riavvio grub2 si caricava perfettamente.

  17. Francesco on 13 November, 2009 at 11:02 said:

    Grazie Oscar,
    Sempre all'avanguardia
    by
    ciscco

  18. Pingback: Ripristinare GRUB2 su Ubuntu dopo l’installazione di Windows | Risorse Free

  19. Ciao Oscar
    La mia [ una situazione un po- pi fuori standard che non ne vuole sapere di funzionare. Ho 3 HDD sulpc ma quelli incriminati sono i primi 2. Sul primo ho duoe partizioni WIndows (S.o. + Dati) e sul secondo ho creato partizione per root e per /home. Installo e sembra tutto ok. Al riavvio ubuntu 9.10 non risulta e si avvia Windows senza traccia di Grub. Ora la domanda nasce spontanea> come faccio dalla live dove sono adesso a dirgli che ho MBR su /dev/sda ma la root e' /dev/sdb1 ??

    grazie per quello che qualcuno sara' in grado di partorire

    Alessandro

  20. Allora, vado a congetture perché non l'ho mai fatto, quindi non mi ritengo responsabile per eventuali casini eh… Seguendo la mia guida:

    mount /dev/sdb1 /mnt (se la tua partizione / è la prima del secondo disco)
    mount -o bind /dev /mnt/dev
    chroot /mnt
    update-grub
    grub-install /dev/sda

    In questo modo DOVRESTI lavorare sul secondo disco ma installare l'MBR sul primo. Come detto non ne sono sicuro. Se provi questi passi o trovi un'alternativa lo puoi scrivere? Grazie :)

  21. Candito on 27 November, 2009 at 16:19 said:

    Grazie per questa ottima guida!

    Cito solo la mia esperienza: ho reinstallato Windows e, una volta giunto al comando chroot /mnt, ho ricevuto sempre lo stesso errore (tra l'altro diffuso):

    cannot execute /bin/bash: Exec format error

    In un forum hanno dovuto riformattare (logica non linux giusto?) mentre basta usare la live di Karmic (Ubuntu 9.10) e il problema sparirà; con la 9.04 mi succedeva, ho provato con 7.04 (devo averlo letto da qualche parte) ma niente…

    Ad ogni modo ho risolto!

  22. marcello on 2 December, 2009 at 23:19 said:

    geniale!!! grazie mille

  23. Scugnizzo on 17 December, 2009 at 22:38 said:

    Ciao a tutti,
    scusate….ma non riesco a trovare una spiegazione per l’opzione bind dell’istruzione mount (sono stra niubbo).
    Non c’ho capito niente usando il manuale (man)….qualcuno me la spiega in due parole?
    Grazie

  24. tomaso20 on 26 December, 2009 at 12:39 said:

    Sono riuscitoa far partire ubuntu 9.10 ma non compare il menu di grub ovvero quale sistema far partire prima o dopo e non so come fare per far comparire anche windows vista

  25. Guarda la parte del post dove parlo del pacchetto os-prober, è quella la soluzione.

  26. Io ho risolto consultando la documentazione ufficiale!
    https://help.ubuntu.com/community/Grub2#Reinstall

  27. Pingback: Ripristinare GRUB2 su Ubuntu con un Live CD dopo l’installazione di Windows | Il cucchiaio non esiste. - Ing. Mattia Notari

  28. io ho ripristinato grub 2 (per fortuna perchè senza ubuntu non saprei come fare) ma win 7 non ne vuole sapere di avviarsi, parte in modalità provvisoria e poi ad un certo punto mentra stà caricando il sitema, si riavvia "senza motivo" così non riesco ad accedere al desktop…da che può dipendere??

  29. In quel caso non è più un problema di linux o grub, è proprio di windows. Prova con la modalità provvisoria.

  30. Pingback: Notizie dai blog su Ripristinare GRUB dopo l’installazione di Windows

  31. Matteo on 30 March, 2010 at 13:08 said:

    Grazie della guida :) Funziona alla grande. Avevo un quadri-boot (Mac-OSX, Windows Xp, Windows 7 e Ubuntu 9.10) e sono riuscito a far ri-funzionare il tutto! Grazie ancora della guida, è da mettere tra i preferiti :)

  32. Pierluigi on 17 July, 2010 at 10:36 said:

    Grande Cecco,dopo tante peripezie e incazzature con il tuo suggerimento da supergrub sono riuscito a far partire XP-Win7-Ubuntu 10.4 tutto su dev/sda,grazie di cuore.Pierluigi

  33. Emanuele on 12 September, 2010 at 17:35 said:

    Grazie, la procedura ha funzionato perfettamente.

  34. scusa……..ho fatto tutto quello che dice la guida….ma non riesco a montare le partizioni e non so perchè….e poi mi da errore a qualunque altro comando…..ho ubuntu lucid su chiavatta usb, sull’hard disk ho win 7 e ubuntu 10′.4 ..e davvero non so che fare perchè all’avvio mi dice bootmgr is missed..e devo per forza andare sulla chiavetta, !!!!!!!!!!!!!!!

  35. Komak84 on 25 January, 2011 at 19:22 said:

    Ciao senti ti devo fare delle domande visto ke sono veramente a zero come ”cultura” ubuntu.
    Allora mi puoi dire come si fa a diventare super user?
    Come riconosco a ldirectory dove ho il boot di linux quando dgt il comando sudio fdisk-| dev/sda cosa mi dovrebbe venire scritto?
    Cosa vuoi dire con ‘ ora monta la paritizione ‘ ??cosa devo fare??
    Devo dgt il comando mount?
    Grazie ciao scusa queste domande del piffero ma visto che nn son pratico son costretto a chiedere.
    Ho visto ke hai scritto di fare molta attenzione.Che rischi si corrono a fare questo procedimento?
    Spero di ricevere presto risposta perkè ho delle foto molto preziose dentro la cartella home di ubuntu.

  36. Ciao,

    grazie per la guida….

    io ho fatto i vari pasaggi, ma mi vede solo ubuntu e non windows 7…
    ho anche usato prober e poi reimmesso i passaggi precedenti come da te indicato…il prober vede windows 7 nel terminale, ma quando riavvio…grub vede solo ubuntu.

    Come posso fare…?

  37. sghin on 2 October, 2011 at 13:21 said:

    ottimo,sei bravo.Ha funzionato alla grande.
    sghin

  38. Paolofisa on 7 November, 2011 at 10:01 said:

    funziona alla grande. chiarissimo e rapido!!!!

  39. Cicciodila on 16 February, 2012 at 10:42 said:

    Alcune volte i sistemi derivati da debian vengono installati su più partizioni, tra cui /usr /var /tmp. Se vi trovate in questa situazione montatele in mnt nelle rispettive posizioni.
    mount /dev/sdax /mnt/usr
    mount /dev/sday /mnt/var
    mount /dev/sdaz /mnt/tmp
    Ci tenevo a dirlo perchè mi sono trovato anche io in questa situazione

  40. Ottimo suggerimento, in effetti nella guida non avevo previsto la possibile frammentazione di /usr, /var e /tmp, in quanto sono abituato a fare una partizione / e una /home. Grazie! :)

  41. Uovo_99 on 17 August, 2012 at 14:08 said:

    Ciao, ho installato ubuntu (come unico SO) però non riesco a farlo partire . Ho provato facendo tutti questi passi però non va comunque. Mi da sempre un errore del tipo ‘you need to load kernel first’. Ho utilizzato anche un programma (iso) per il restore di grub ma anche quando fa il detect del sistema comunque non riesce a lanciarlo dandomi lo stesso errore. Potete aiutarmi?

  42. Massimiliano Tor on 30 August, 2012 at 12:13 said:

    Grazie la guida funzione alla perfezione,grazie 1000!

Leave a Reply

Post Navigation