
Sempre più persone tra i miei amici, conoscenti, parenti, vedendomi lavorare sul mio portatile rimangono affascinati da Ubuntu, in quanto notano la semplicità e le potenzialità di questo O.S. ed è capitato di dover installare Ubuntu sul loro PC, ma a causa un (giusto) timore del nuovo, mi hanno chiesto di far convivere Ubuntu con Windows Xp sulla stessa macchina. Naturalmente non è questo l'argomento che voglio affrontare, in quanto è già largamente affrontato sui wiki ufficiali, ma è capitato che, come spesso succede, Windows è cominciato a diventare molto lento, a causa di virus, ecc....e naturalmente, per non perdere molto tempo a capire qual era il problema (visto che di tempo ne ho già poco!), mi è stato chiesto di resettare il computer, formattando l'HD. Per chi fa questa operazione la prima volta ha la bella sorpresa di venere il nostro amato sistema Linux "scomparire", o meglio se ne perdono le tracce. Non c'è da preoccuparsi....Ubuntu è la....e aspetta solo di riprendere il controllo (molto più democratico!!!) della macchina. Capiamo il perchè di questo inconveniente e cerchiamo di risolverlo.
Quando su una macchina su cui risiede l'OS WIndows installiamo Ubuntu, il bootmanager di windows viene sostituito con quello di Linux, Grub. Un bootmanager è un programmino molto importante che permette alla macchina di capire dove è il sistema operativo a cui affidarsi per iniziare a svolgere in totale le sue attività. Il bootmanager di windows non prevede il dual-boot (possibilità di scegliere tra più sistemi operativi sulla stessa macchina) e quindi quando viene installato dopo Ubuntu sovrascrive Grub, facendo perdere le tracce della partizione che contiene il nostro sistema Linux. Risolviamo il problema:
Per prima cosa muniamoci di un Live-CD di Ubuntu. Inseriamo il Live-CD e riavviamo il PC. Avviato Ubuntu in modalità live, da terminale digitiamo
sudo fdisk -l
che ci mostrerà la tabella delle partizioni. Prendiamo nota della partizione che contiene Ubuntu. Esempio:
:~$ sudo fdisk -l
Disco /dev/sda: 80.0 GB, 80026361856 byte
255 heads, 63 sectors/track, 9729 cylinders
Units = cilindri of 16065 * 512 = 8225280 bytes
Disk identifier: 0xd53d826f
Dispositivo Boot Start End Blocks Id System
/dev/sda1 * 1 4438 35648203+ 83 Linux
/dev/sda2 4439 4699 2096482+ 82 Linux swap / Solaris
/dev/sda3 4700 9729 40403475 b W95 FAT32
Disco /dev/sdb: 80.0 GB, 80026361856 byte
255 heads, 63 sectors/track, 9729 cylinders
Units = cilindri of 16065 * 512 = 8225280 bytes
Disk identifier: 0x1c8d1f48
Dispositivo Boot Start End Blocks Id System
/dev/sdb1 * 1 9729 78148161 7 HPFS/NTFS
Nel mio caso si noti come la partizione di Ubuntu sia la /dev/sda1.
Creiamo una cartella che useremo per il ripristino:
sudo mkdir /mnt/ripristino
ora montiamo la partizione in cui risiede Ubuntu nella cartella appena creata, mettendo al posto di xxxx il nome della partizione dove abbiamo installato Ubuntu (nel mio caso sda1)
sudo mount /dev/xxxx /mnt/ripristino
EDIT (17 Giugno 2009):
e poi
sudo mount -o bind /dev /mnt/ripristino/dev
sudo chroot /mnt/ripristino
Ora possiamo installare fisicamente Grub.
ATTENZIONE!!! X è il numero dell'HD, Y è il numero di partizione sui cui vi è Ubuntu, cioè:
se Ubuntu è su sda1
X sarà 0 perchè in sda la "a" sta ad indicare il primo HD (partendo da 0)
Y sarà 0 perchè sda1 è la partizione che contiene Ubuntu; se fosse stato "sda3" per arrivare alla terza partizione dobbiamo contare 0,1,2. --> la nomenclatura di grub sarebbe stata (hd0,2)
cd /boot/grub
grub
così entriamo nel programma di gestione testuale di grub; date poi i seguenti comandi:
root (hdX,Y)
setup (hdX)
quit
Se adesso riavviamo il PC dovremmo vedere avviarsi Grub e quindi dovremmo poter riaccedere a Ubuntu.
Vediamo ora come ripristinare l'avvio di Windows XP, in quanto molto probabilmente non riuscirete più ad avviarlo.
Digitiamo:
sudo fdisk -l
e segnamoci la partizione che contiene Windows. Per esempio, riferendosi alla tabella di prima, la partizione sda3.
Apriamo con l'editor di testo Gedit il file di configurazione di Grub:
sudo gedit /boot/grub/menu.lst
aggiungiamo alla fine del file il seguente testo:
title Windows XP
root (hdX,Y)
makeactive
chainloader +1
ATTENZIONE!!! X è il numero dell'HD su cui vi è Windows, Y è il numero di partizione sui cui c'è Windows, cioè:
se Windows è su sda3
X sarà 0 perchè in sda la "a" sta ad indicare il primo HD (partendo da 0)
Y sarà 2 perchè essendo sda3 la partizione che contiene Windows, per arrivare alla terza partizione dobbiamo contare 0,1,2. --> la riga che ne segue è
"root (hd0,2)".
Se Windows è su sdc2 --> "root (hd2,1)"..........ecc.
Ora riavviando dovremmo poter essere in gardo di scegliere fra Ubuntu e Windows.
Spero di essere stato chiaro. La procedura è corretta, cmq può variare in base a diversi fattori. Contattatemi in caso di difficoltà.

17 commenti:
salve, avrei un problema con ubuntu 8.10. in pratica in boot non mi vede Windows xp. Ho provato i suoi passaggi ed ho inserito windows nella lista del boot ma nn parte. Mi da errore 11
Postami il risultato del comando
sudo fdisk -l
e vedrò di darti delle indicazioni precise.
Salve ;)
Utilizzo ubuntu 9.04 e sono alle primissime armi ;)
Ho seguito la guida passo passo, ma quando scrivo:
sudo grub-install /dev/sda (Ubuntu risiede in /dev/sda3)
mi viene fuori l'errore:
sudo: unable to resolve host ubuntu
/dev/sda: Not found or not a block device.
Come posso fare? Grazie ;)
Devo dire che che anche io ho riscontrato questo errore con ubuntu 9.04. Segui questa pagina che a breve pubblicherò la procedura corretta. Ciao
@Antonio
Ho aggiornato la procedura; prova in questa maniera e se hai ancora problemi non esitare a contattarmi. Ciao
Ciao quando scrivo il primo comando per vedere dove è installato linux mi da più di una voce con scritto linux mentre da te era una soltanto. come faccio a capire quale è quella giusta??
@giacob
Prova a montare singolarmente tutte le partizioni dove c'è scritto linux.
Poi digita il comando:
nautilus /mnt/ripristino
e dai un occhiata tra le cartelle che vi sono. Se trovi la tua home, allora è quella giusta. E' un metodo poco ingegneristico, ma dovrebbe funzionare! Ciao...
con questo cd non mi fa montare la partizione, sto provando a cercare un cd più recente. Dicevi comunque che devo cercare la cartella home nella partizione per capire quale è quella corretta? grazie intanto..
ciao ho provato col nuovo cd e mi da un errore quando digito SETUP(HD0) e se riavvio non parte come prima. è il cd che è sbagliato? è la versione 9.04 grazie ancora
No, non è il cd sbagliato. Questa procedura l'ho scritta proprio per Ubuntu 9.04. Un errore simile mi è già capitato, ed era dovuto al fatto che l'istallazione di ubuntu era stata effettuata in modo "automatico", cioè si era lasciato decidere al programma di partizionamento di ubuntu (quello che compare nell'installazione) come suddividere il disco per poter affiancare uvbuntu a windows xp. Questo programma infatti mi aveva creato una partizione estesa in cui includeva le due partizioni di ubuntu (root e swap). Per non perdere la testa ho risolto reinstallando ubuntu e creandomi da solo le partizioni,ma si potrebbe tentare con una live chiamata "Super Grub Disk" ( http://www.supergrubdisk.org/index.php?pid=7 ) che puoi installare su una penna usb e che ti dovrebbe facilmente risolvere il problema, senza che ci impelaghiamo in procedure tecniche. Se invece ti interessa risolvere il problema tecnicamente dovresti darmi i dettagli della tua tabella di partizione, postandomi almeno:
sudo fdisk -l
e spero di poterti aiutare. Ciao
Scusa Anyon, ho un problema col boot.. seguivo il tuo post ma non sono riuscito. Dove posso chiederti aiuto!? inviarti il mio fdisk?
Grazie
@ lore
Qual è precisamente il problema? Postami tutto qui. Ciao
ok. ho installato ubuntu 9.10 ma nel boot non mi da la possibilità di avviare con windows xp..
situazione: 1 hd sata con partizione e xp sulla prima partizione.
2 hd sata ubuntu sulla prima partizione..
ho provato anche a inserire la modifica ed anche ad inserirla dentro grub.cfg
continuo a non vedere windows, che non è stato toccato dall'installazione di ubuntu.
Ti inserisco i copia incolla di ..
fulvio@fulvio-desktop:~$ sudo fdisk -l
[sudo] password for fulvio:
Disco /dev/sda: 200.0 GB, 200049647616 byte
255 testine, 63 settori/tracce, 24321 cilindri
Unità = cilindri di 16065 * 512 = 8225280 byte
Identificativo disco: 0xa511a511
Dispositivo Boot Start End Blocks Id System
/dev/sda1 * 1 11465 92092581 7 HPFS/NTFS
/dev/sda2 11466 24321 103265820 f W95 Esteso (LBA)
/dev/sda5 11466 24321 103265788+ 7 HPFS/NTFS
Disco /dev/sdb: 200.0 GB, 200049647616 byte
255 testine, 63 settori/tracce, 24321 cilindri
Unità = cilindri di 16065 * 512 = 8225280 byte
Identificativo disco: 0xa4baa4ba
Dispositivo Boot Start End Blocks Id System
/dev/sdb1 * 1 7644 61400398+ 83 Linux
/dev/sdb2 7645 24321 133958002+ f W95 Esteso (LBA)
/dev/sdb5 7645 24320 133949938+ 7 HPFS/NTFS
/dev/sdb6 24321 24321 8001 82 Linux swap / Solaris
mentre mount
fulvio@fulvio-desktop:~$ mount
/dev/sdb1 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw)
none on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type tmpfs (rw,mode=0755)
none on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
none on /dev/shm type tmpfs (rw,nosuid,nodev)
none on /var/run type tmpfs (rw,nosuid,mode=0755)
none on /var/lock type tmpfs (rw,noexec,nosuid,nodev)
none on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
gvfs-fuse-daemon on /home/fulvio/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=fulvio)
fulvio@fulvio-desktop:~$ ^C
fulvio@fulvio-desktop:~$
@lore
Naturalmente hai già provato ad aggiungere in fondo a "menu.lst" (sudo gedit /boot/grub/menu.lst)
le seguenti righe:
title Windows XP
root (hd0,0)
makeactive
chainloader +1
si provato.. ieri con la complicità di qualcuno, che in remoto ha rafficato.. forse son riuscito a far uscire il menu'.. forse.. (però sto grub2 (1.97) vedo che ne sta facendo di casini..)
Adesso ho un errore di win.. ntdlr mancante.. quindi debbo intervenire sull'altro fronte e poi vediamo se tutto è ok! ;-) grazie x ora.. appena ho un attimo agisco s u winz
GRAZIEEEEE!!!!!!!!
pensavo di aver perso il PINGUINO e tutte le fantastiche applicazioni installate!
GRAZIEEEEE!!!!!!!!
pensavo di aver perso il PINGUINO e tutte le fantastiche applicazioni installate!
Posta un commento