View Full Version : [Kubuntu 8.04] Problemi di GRUB
Come da titolo, dopo aver installato su una partizione di un hdd, l'ultima versione di kubuntu (8.04), non riesco più ad avviare nessun sistema operativo in quanto al boot ricevo l'errore 21 del GRUB.
Sul mio pc ho 3 hard disk: 2 da 160 GB in raid-0 (impostato da bios sul southbridge ICH7R) e uno da 500GB.
Il sistema raid contiene un'unica partizione che non comprende l'intero spazio disponibile mentre l'hard disk da 500GB è suddiviso in 3 partizioni: la prima, più grande, è NTFS e contiene un archivio di dati che utilizzo sotto windows; la seconda è un'ext3 e contiene il linux; mentre l'ultima più piccola è una partizione di swap per linux.
Da quel che ho letto in giro, credo che al GRUB manchi l'indicazione della partizione da avviare, ho letto possibili soluzioni ma non ho conluso nulla: il mio pc ora è del tutto inutilizzabile, riesco solo a far partire il live di kubuntu per poter eventualmente far qualcosa.
Dal live, questo è quello che mi compare nella gestione hard disk:
http://img79.imageshack.us/img79/7586/schermata1rk4.th.png (http://img79.imageshack.us/my.php?image=schermata1rk4.png)
Sapete spiegarmi in modo semplice come far rifunzionare il boot? e oltretutto riesco a far partire il windows che sta su 2 hdd in raid? (da notare che linux mi legge i 2 hdd separatamente e rileva il partizionamento solo del primo dei due)
grazie :help:
aggiornamento: ho scaricato un programmino chiamato "Super Grub Disk". Nonostante l'estetica un pò spartana, devo dire che pare piuttosto potente come utility e sono riuscito a ristabilire il boot di windows. Devo provare a vedere se riesco a impostare il dualboot con il linux. :stordita:
Devi editare grub al volo per poter caricare kubuntu e una volta entrato in kubuntu devi editare anche il file /boot/grub/menu.ls per rendere le modifiche permanenti.
Per editare Grub al volo:
Durante la schermata di scelta del S.O di grub schiaccia il tasto "e" un paio di volte per editare la riga di grub.
Devi sostituire (hd0,1) con (hd1,1) o il contrario.
Poi schiaccia il tasto "b" un paio di volte per fare il boot.
Come detto prima una volta entrato in kubuntu nella cartella /boot/grub edita anche il file menu.ls allo stesso modi che hai editato grub per rendere le modifiche permanenti.
innanzi tutto grazie per la risposta, mi è stata molto utile per capire alcune cose :D Ho fatto due passi avanti e uno indietro...
preciso che per far partire windows ho fatto un casino immenso, ma in definitiva credo di aver bypassato il grub caricando direttamente con l'ntldr e oscurando di conseguenza linux. Poi per cercare di avviare linux, ho risostituito il bootloader con il grub.
modificando "al volo" il grub, sono riuscito a far partire kubuntu e ho modificato menu.lst per rendere le modifiche permanenti. In pratica c'era un errore venuto fuori non so come: (hd3,1) al posto di (hd1,1). Ora è sistemato e kubuntu mi funziona a meraviglia.
Nel menu.lst sto ora tentando di aggiungere anche le informazioni per far partire windows e ho quindi scritto:
title Windows XP
root (hd0,0)
makeactive
chainloader +1
in diversi siti ho letto che nel mio caso root è equivalente a rootnoverify e che makeactive non è fondamentale. In ogni caso, selezionando l'opzione Windows dal grub, mi succede che o non parte windows e si blocca su schermata nera vuota con cursore lampeggiante, oppure mi ricarica il menu grub portandomi al punto di partenza in un ciclo infinito.
Di linux so poco o nulla, posso azzardare l'ipotesi che magari tentando di avviare windows, il grub passi il loader all'mbr del primo hdd (quello di win) il quale a sua volta è lo stesso grub riportandomi quindi al menu? (forse ho scritto un pò confusionatamente... :p )
In tal caso dovrei eseguire fixmbr dalla console di ripristino di windows xp?
title Windows XP
root (hd0,0)
makeactive
chainloader +1
mi sembra di aver capito ke il disco è hd1, quindi la riga root è sbagliata.
prova a sostituire con questo:
title Winzozz
map (hd1) (hd0)
map (hd0) (hd1)
rootnoverify (hd1,0)
chainloader +1
mi sembra di aver capito ke il disco è hd1, quindi la riga root è sbagliata.
prova a sostituire con questo:
mmmh
windows è sul primo hard disk (in realtà è un raid) (hd0,0)...
(hd1,0) è l'archivio dei miei dati (prima partizione, su un altro hdd)
(hd1,1) è kubuntu (seconda partizione)
(hd1,2) è di swap (terza partizione)
ho pochi dubbi, anche andando per esclusione so per certo che windows e kubuntu sono su due hdd diversi e se kubuntu ho verificato che è presente su (hd1,1), windows deve per forza essere su (hd0,x); avendo una sola partizione su (hd0,x), suppongo che windows sia su (hd0,0).
Questo comunque l'ho verificato accuratamente con "super grub disk" che mi da la lista di tutte le partizioni.
edit:
rileggendo quello che mi hai scritto mi viene un dubbio... ma i comandi map invertono i nomi agli hdd? perchè copiando spudoratamente quel codice ora ottengono un esito leggermente diverso.
Windows continua a non partire ma stavolta mi indica anche il motivo: NTLDR mancante -_-"
Odiatissimo errore che in genere correggevo da console di ripristino con fixmbr e bootcfg eventualmente. Ora però... il grub mi parte quando carico il boot dall'hdd di windows, se vado a riscrivere l'mbr come piace a windows, mi scompare il grub (=di nuovo kubuntu sparisce) ?
mmmh
windows è sul primo hard disk (in realtà è un raid) (hd0,0)...
(hd1,0) è l'archivio dei miei dati (prima partizione, su un altro hdd)
(hd1,1) è kubuntu (seconda partizione)
(hd1,2) è di swap (terza partizione)
ho pochi dubbi, anche andando per esclusione so per certo che windows e kubuntu sono su due hdd diversi e se kubuntu ho verificato che è presente su (hd1,1), windows deve per forza essere su (hd0,x); avendo una sola partizione su (hd0,x), suppongo che windows sia su (hd0,0).
Questo comunque l'ho verificato accuratamente con "super grub disk" che mi da la lista di tutte le partizioni.
a scusa avevo capito male....allora dovrebbe bastare questo credo:
title Winzozz
rootnoverify (hd0,0)
chainloader +1
ps. ma se avvii dal disco di windows direttamente suppongo parta senza problemi!?
a scusa avevo capito male....allora dovrebbe bastare questo credo:
title Winzozz
rootnoverify (hd0,0)
chainloader +1
ps. ma se avvii dal disco di windows direttamente suppongo parta senza problemi!?
ho aggiunto un edit al post prima.
Ho appunto provato a mettere le righe che mi hai indicato, in fin dei conti quei map cosa fanno? invertono (hd0) con (hd1) ? se poi faccio root(1,0) dovrei ottenere la stessa cosa o no? comunque ora ottengo ntldr mancante...
alla tua ultima domanda... beh... se avvio il disco di windows mi parte il grub :rolleyes: in pratica il grub è installato sul disco di windows.
edit: propongo una spiegazione... il disco di boot da bios è il disco di windows. Sul disco di windows è installato il grub. Il comando chainloader +1 cosa fa? indica di passare il controllo al bootloader di (hd0,0)? ma il bootloader di (hd0,0) è il grub stesso!!! quindi mi fa entrare in un ciclico ritorno al menu.
ho aggiunto un edit al post prima.
Ho appunto provato a mettere le righe che mi hai indicato, in fin dei conti quei map cosa fanno? invertono (hd0) con (hd1) ? se poi faccio root(1,0) dovrei ottenere la stessa cosa o no? comunque ora ottengo ntldr mancante...
alla tua ultima domanda... beh... se avvio il disco di windows mi parte il grub :rolleyes: in pratica il grub è installato sul disco di windows.
pensavo fosse sul disco di linux....vabbè oggi non ne azzecco una.
cmq il map serve a fargli credere di stare su una partizione invece ke in un'altra, xkè win si offende a seconda di dove lo metti.
edit: installa il grub sul disco di linux e fai il fixmbr su quello di windows.
edit2: il bootloader di hd0,0 non è grub ma dovrebbe essere quello di windows, il chainloader passa l'avvio appunto a lui.
pensavo fosse sul disco di linux....vabbè oggi non ne azzecco una.
cmq il map serve a fargli credere di stare su una partizione invece ke in un'altra, xkè win si offende a seconda di dove lo metti.
edit: installa il grub sul disco di linux e fai il fixmbr su quello di windows.
edit2: il bootloader di hd0,0 non è grub ma dovrebbe essere quello di windows, il chainloader passa l'avvio appunto a lui.
ho fatto così e ora pare funzioni tutto bene :D
strano che quando sono andato a installare il grub, mi rilevasse il linux su (hd3,1) che guardacaso è il valore errato che c'era prima nel menu.lst. Beh l'ho installato in (hd3,1) anche perchè solo lì me lo faceva fare :fagiano:
poi ho avviato la console di ripristino di xp e qui panico immenso perchè non mi riconosceva nemmeno l'hdd (nonostante avessi come al solito indicato i driver esatti del raid).
Alla fine ho dovuto fare bootfix, fixmbr e bootcfg per farlo andare e nel grub, essendo ora il raid impostato come (hd1), ho dovuto usare i map per invertire i ruoli (windows schizzinoso).
beh che dire... una giornata è passata solo dietro a sta cosa, almeno è finita bene :stordita:
grazie a entrambi per l'aiuto :)
travis90
11-07-2008, 11:22
Salve ragazzi!
Anche io ho avuto problemoni col GRUM e non sono riuscito per niente a risolverli!!
Una volta messo ubuntu 8.04 sul 2° HD (mentre ho XP sul 1°), il grub mi dava in primo momento Errore 17, poi 21 ecc.... Ho seguito le guide ufficiali di Ubuntu, anche Super Grub Disk, ma niente!
Neanche la console di ripristino di XP con FIXMBR e FIXBOOT mi ha ripristinato l'MBR!
Ho potuto solo istallare XP su un terzo HD per rimettere l'MBR di XP a posto e far funzionare tutto!
Mentre per avviare linux devo entrare nel bios e spostare l'ordine degli HD nel boot!
Infine installando UBUNTU solo con un HD (senza dual boot, staccando l'hd di XP) parte (il grub)!
Avete qualche altra soluzione?
Per il momento ho lasciato l'idea di usare il GRUB, visto che poi dovrei formattare tutto...
Vorrei sapere se potrei avere un dual boot sfruttando il file boot.ini di XP!
In rete ho trovato qualcosa, ma riguarda il bootloader LILO... non GRUB!
Aiutatemi, per favore!
[QUOTE]Vorrei sapere se potrei avere un dual boot sfruttando il file boot.ini di XP![/QUOTE
Se è questa la domanda prova a chiedere alla sezione del forum dedicata al MS windows. Io per esempio non avendo win xp nel mio computer non ho neanche boot.ini.
Se la domada è come togliere Grub:
Oltre con fixmbr dal cd windows xp, puoi togliere grub anche usando freedos, con il commando fdisk /mbr. Freedos lo trovi in varie iso sia da solo che integrato con altro software tipo rescuecd.
Gollum63
11-07-2008, 21:08
@ travis90
x una corretta procedura di installazione in dualboot bisogna seguire alcune regole ben precise.
1- nel caso di utilizzo di 2 HD, windows deve essere installato nel 1° disco in una partizione primaria e prima di installare qualsiasi distro linux
2- una volta installato win si può installare linux nel 2° disco si può utilizzare anche qui una partizione primaria x root mentre le altre, vedi /home, si possono utilizzare partizioni logiche.
3- durante l'installazione di linux vi verrà chiesto dove installare il bootloader GRUB, lo dovrete installare nel MBR del 1° disco ovvero quello di win.
Seguendo queste semplici regole a meno di casi particolari, è sicura al 90% l'installazione in dualboot.
Ora se hai ancora problemi mi servirebbero dei dati.
Entra in ubuntu apri un terminale e digita
sudo fdisk -l
poi digiti
sudo grub e si aprirà la consolle di GRUB ora digita
find /boot/grub/stage1 infine digita
find /boot/grub/device.map
e mi copi/incolli qui tutti gli output dei comandi che ti ho descritto
per uscire dalla consolle di GRUB digita
quit
travis90
12-07-2008, 07:02
Sono riuscito a far funzionare il dual boot del grub!
Ho messo l'HD di XP al secondo posto, e l'hd vuoto dove ho installare linux al 1°! Ho installato ubuntu, e quindi poi il grub nella posizione di default (hd0), e quindi nell'hd di linux!
Ho avuto anche due benefici:
1) adesso mi parte il dual boot senza errori di grub!
2) se stacco l'hd con linux e faccio partire il pc (solo con l'hd di XP, XP parte col proprio boot.ini, cioè senza grub! Quindi XP non è soggetto all'hd col grub!
:sofico:
Può darsi che abbia scovato un nuovo procedimento per installare Linux con XP!
Niente di nuovo è cosi che funziona GRUB, basta capire il suo funzionamento, cioè non "gradisce" cambio nella sequenza di boot degli hard disk.
Per un buon funzionamento del dual boot le regole sono poche ma vanno rispettate se non si vuole perdere tempo.
1. Il linux va installato per ultimo.
2. Una volta installato linux (e grub) niente cambi di sequenza del boot degli hard disk.
Non togliere hard disk che si trovano prima di quello su cui è installato linux.
Nel tuo caso tu hai tolto proprio il disco rigido su cui hai installato linux.
Se per caso linux era installato sul 3° hard disk e tu toglievi il primo o il secondo mandavi in crisi GRUB e addio dual boot. Mentre togliendo un ipotetico 4° disco non succede nulla.
travis90
12-07-2008, 12:20
Ma se tolgo un hd e grub crasha, quando lo rimetto mi funzionerà tutto come prima? O crasha e basta?
Ma se tolgo un hd e grub crasha, quando lo rimetto mi funzionerà tutto come prima? O crasha e basta?
Se lo rimetti tutto a posto.
Non è che grub crasha. Grub non lavora da solo ma si avvale del file menu.ls che si trova nella installazione linux. In più Grub tiene tracia di tutti gli hard disk e li numera a partire dallo 0. Se togli un hard disk prima di quello su cui ha installato linux la numerazione attribuita a ciascun hard disk cambia e questo manda in crisi GRUB. Se lo rimetti a posto grub funziona come prima.
Se cancelli la installazione di lunx cancelli anche il file menu.ls quindi grub non può fare neanche il boot in windwos (qualora ci fosse un dual boot). In questo caso o togli grub dall'MBR dell'hard disk o cambi disco di boot (ammesso che xp è installato su altro disco). Se linux e xp sono installati sullo stesso disco, togliendo linux devi togliere anche grub. In questo caso finche non togli grub niente boot al windows.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.