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.









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…
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.
Il commento di uno è stato cancellato in quanto non si è identificato. Non facciamo i bambini, nickname o nome e cognome potete anche tirarli fuori.
Interessante. Ho già XP e Jaunty ma vorrei avere anche un Win7 per prove varie. Appena ho una mezza giornata ci provo
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
Ciao Geppo, purtroppo non so aiutarti sulla questione boot.ini perché non l'ho mai usata
Perfetta guida, ma devi correggere il comando
grub-install
in
grub-install /dev/sdYX
EDIT
…/dev/sdaX se si installa nel MBR
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
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é.
Grazie per la guida, Oskar: utile anche per chi vuole scegliere quale menu di grub usare tra due installazioni Linux.
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.
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
Grazie Oscar,
Sempre all'avanguardia
by
ciscco
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
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
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!
geniale!!! grazie mille
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
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
Guarda la parte del post dove parlo del pacchetto os-prober, è quella la soluzione.
Io ho risolto consultando la documentazione ufficiale!
https://help.ubuntu.com/community/Grub2#Reinstall...
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??
In quel caso non è più un problema di linux o grub, è proprio di windows. Prova con la modalità provvisoria.
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