Don’t panic! (GRUB Error 21)
Ieri sera ho avuto la brillante idea di reinstallare Ubuntu Feisty Fawn sul mio hard disk esterno. Infatti oltre ad averlo su una partizione dell’hard disk interno, ho una installazione di testing su quello esterno ad uso e consumo del cazzeggio e smanettamento. Questo fatto però mi ha portato, dopo aver fatto l’upgrade da 6.10 a 7.04, ad avere un sistema con qualche leggero problemino (in particolare con la scheda video che non veniva riconosciuta dalla nuova utility di gestione driver proprietari). Inoltre avevo un sacco di schifezze in giro e quindi ho pensato che fare piazza pulita fosse la soluzione migliore e più veloce. Niente di più sbagliato.
Innanzitutto mi sono trovato davanti alla nuova installazione di Feisty (che non avevo mai visto dato che avevo sempre fatto l’upgrade) con Gparted sostituito da Ubiquity. Ecco, sinceramente io preferivo Gparted; Ubiquity sinceramente mi è sembrato più lento e meno intuitivo (unico punto a favore il fatto che il mount point sia subito associato alla partizione, anche se ciò rende più lenta la cosa). Comunque sia il problema è sorto dal fatto che non ho potuto specificare dove scrivere il bootloader, mentre ( a quanto mi ricordo) nella 6.06 c’era questa possibilità. Finita l’installazione riavvio e mi trovo il GRUB funzionante che mi indica sia il SO sul disco esterno che quelli sul disco interno ( e funzionanti, mentre in precedenza non era così, evidentemente per un problema di nomenclatura sda hda).
Il problema è sorto quando, tolto il cavo USB del disco esterno, ho riavviato il computer.
GRUB loading......
Error 21
e GRUB bloccato. Senza poter far nulla. Panico. Quasi, fortunatamente attaccando il cavo avevo ancora 3 sistemi operativi a cui accedere
. Il problema era chiaramente il cambio dell’MRB. Avviato Ubuntu ho provveduto quindi a documentarmi ed in breve (si fa per dire) ho risolto il problema. E vi racconto come.
Nel caso in cui stiate avviando da un CD-live (non tutti hanno altri 2 ubuntu funzionanti sulla stessa macchina
) dovete montare la partizione contenente il vostro boot digitando il comando:
$ sudo mount -t ext3 /dev/sdaX /boot
nel mio caso era sda7 che corrisponde alla partizione (hd0,6) visto che grub ha una numerazione delle partizioni che parte da 0. Nella maggior parte dei casi sarà invece sda2 con (hd0,1) visto che generalmente si ha Windows sulla prima partizione e Linux sulla seconda. In ogni caso dipende da come avete partizionato il disco. Vi consiglio di scrivervi sempre le impostazioni delle partizioni dato che possono tornare utili in casi come questo!
Una volta fatta questa operazione si lancia il grub install:
$ sudo grub-install /dev/sdaX #sdaX è lo stesso di prima
e si lancia il grub esenguendo i seguenti comandi
$ sudo grub
> root (hd0,x) #in questo caso x sarà, come detto in precedenza, X-1
> setup (hd0)
Usciamo da grub con > quit e riavviamo tranquillamente. L’MRB dovrebbe essere a posto!
La fonte, a cui devo un sentito ringraziamento! (qui è spiegato anche come risolvere Error 15)
18 Maggio 2007 alle 9:15 am
Sapevo che a qualcun’altro (oltre a me) sarebbe servito, son contento che sia ripartito tutto, buon divertimento col cerbiatto!
18 Maggio 2007 alle 9:19 am
Sicuro! E’ sempre così quando capita un problema, meglio scriverselo così può essere utile a qualcun’altro!
4 Giugno 2007 alle 7:29 pm
Ciao ragazzi,
sul mio pc con due hard disk interni avevo installato due sistemi operativi diversi(XP e mandriva Linux).
Ho avuto anche io la brillante idea di togliere l’HD con linux installato creando l’errore Grub error21.
La cosa peggiore è che non riesco ad avviare ne windows ne altri sistemi operativi live!!!! potete aiutarmi?????
5 Giugno 2007 alle 7:56 am
In che senso “ne altri so live”??? Se ti visualizza l’errore Grub 21 è perchè sta cercando il grub nell’hd che hai tolto. Ora non so se il cd di installazione della mandriva funziona come live cd… se si basta che dal BIOS metti come primo dispositivo di boot il lettore CD e lasci il disco di installazione dentro quando riavvii. Dopodichè segui quanto scritto nel post.
Se invece non è un live cd devi procurartene uno (Ubuntu o Fedora 7) e seguire quanto sopra. In alternativa puoi riattaccare l’hard disk ed effettuare la procedura da li.
14 Giugno 2007 alle 8:24 am
Salve ragazzi! Anche io ho avuto l’idea di installarmi Ubuntu 6.10 (da live CD) sul mio HD USB, mentre sul mio HD interno ho WinXP.
TUtto contento dell’installazione riuscita, stacco il cavo USB del mio HD ed ecco lo stesso problema col GRUB….error21!!! A parte la buona dose di adrenalina che mi ha percorso tutto il corpo in un battibaleno ed il brivido lungo la schiena degno di una tarantola impazzita, riesco a riacquisire lucidità e ricollego i cavi USB, mi riparte il GRUB e coscientizzo che adesso dipendo dal dispositivo esterno senza il quale non posso più far ripartire WinXP “stand-alone”.
Non sono un esperto di GRUB (pensavo che fosse il bootloader che partiva solamente quando l’HD USB era connesso, mentre invece viene ricercato anche quando il disco USB è disconnesso se ho ben capito).
Ho pensato quindi a qualcosa riguardante il MBR (master boot record), ma prima di toccarlo ho preferito fare una passeggiata su blog vari ed eccomi quì.
Prima di procedere seguendo i vostri preziosi suggerimenti vorrei capire meglio la questione delle partizioni da usare nei comandi da prompt. I miei HD sono partizionati come segue :
- hd0 /dev/hda con so WINXP
—hd(0,0) hda1 (s.o. WIN c:\)
—hd(0,4) hda5 (NTFS Data Disk d:\)
- hd1 /dev/sda con so UBUNTU
—hd(1,0) sda1 (swap linux)
—hd(1,1) sda2 (UBUNTU)
—hd(1,2) NTFS
La partizione Hda1 è una partizione con flag “boot” attivo mentre in quella “sda2″ tale flag è disattivato.
Quindi io dovrei scrivere come segue:
$ sudo mount -t ext3 /dev/sda2 /boot
$ sudo grub-install /dev/sda2
$ sudo grub
> root (hd1,1)
> setup (hd1)
> quit
Vi torna ??
In tale modo senza collegare l’HD USB mi parte automaticamente WIN XP??
Grazie mille,
AndydnA :)))
14 Giugno 2007 alle 7:46 pm
Quello che hai scritto dovrebbe essere corretto (per rimontare il grub che avevi in sda2). Temo però di non aver capito una cosa. hd1 sarebbe l’hard disk esterno? Perchè in tal caso se stacchi l’usb NON ti dovrebbe ripartire automaticamente windows. Questo in quanto tu stai andando a riscrivere nell’MBR di cercare il grub nell’hd esterno. E quindi non lo troverai. Temo che dovrai in tal caso usare il disco di ripristino di xp. E cambiare dall’uno all’altro tramite bios (indicando su quale hd cercare per primo il SO).
Sinceramente non credo sia possibile installare il grub in una partizione win.
15 Giugno 2007 alle 8:12 am
Grazie mikyjpeg per la risposta! Allora hd1 è l’HD esterno USB ove è montato UBUNTU, mentre hd0 è quello interno ove cè WinXP.
Da come ho capito sono iguaiato, nel senso che l’operazione che mi hai consigliato di fare funziona SOLO SE sull’HD interno ho installato un S.O. Ubuntu (o altri linux) ma non WinXP ove, correggimi se sbaglio, non è possibile installare il GRUB.
Quello che è strano è che se anche io forzo da BIOS a cercare come HD primo hd0 (quello WinXP per internderci) il bootstrap cerca sempre il GRUB (ed ovviamente non lo trova xké hd1 è scollegato) generando l’ERROR 21.
Allora io mi chiedo:
“Chi è che dice al BIOS di andare a cercare il GRUB su hd1 quando questo è completamente scollegato ed io ho impostato hd0 come FIRST BOOT DEVICE? Per esempio la scritta ‘GRUB Loading….ERROR 21!’ chi la scrive??”.
Ci deve essere qualcosa scritto da qualche parte su hd0 (nell’ MBR per caso ?!?!) che effettua il “GRUB Loading”. Non trovandolo su hd0 e non avendo altri dispositivi ove cercare perché scollegati (rispettando la sequenza di boot impostata), genera ERROR 21.
Questo non risolve certo, ma cerco di chiarirmi le idee prima di stabilire una strategia di azione.
Che ne pensi?
Grazie infinite,
AndyndA
15 Giugno 2007 alle 12:12 pm
Precisamente. Ogni sistema operativo deve essere “lanciato”. Nell’MBR (i primi 512 byte dell’hd) sono contenute le indicazioni necessarie per lanciare il SO. Questo a grandi linee. Leggi qui oppure qui per maggiori dettagli. Per ripristinare l’MBR windows prova qui. Il problema dei bootloader di windows è che, a differenza di lilo e grub, non ti permettono di lanciare altri SO. Infatti avendo linux uno utilizza grub per avviare l’uno o l’altro.
Fammi sapere come risolvi!
19 Giugno 2007 alle 1:32 pm
Ciao a tutti, se seguendo le istruzioni scritte il problema persiste cosa posso fare?
Grazie
19 Giugno 2007 alle 8:42 pm
Vuol dire che non hai selezionato la partizione giusta. Prova dal cd live a montare le partizioni in modo da trovare quella corretta. Una volta selezionata la partizione giusta, (in cui si trova la cartella contenente il grub vero e proprio /boot/grub ) DEVI poter vedere quanto contenuto nel file /boot/grub/menu.lst (dove sono scritti i SO caricabili)
Casomai allora potresti incorrere in altri errori, come il 15.
29 Giugno 2007 alle 7:57 am
Altro link interessante per l’istallazione su HD USB
30 Agosto 2007 alle 1:07 am
Caro Miky….
ti scrivo sperando che tu legga questo commento e che mi possa rispondere!
Inutile dire, che anche io sono caduto nell’errore 21.
Ti spiego:
sul mio pc avevo 3 HD:
1 IDE in cui tenevo i dati (hb1)
1 Sata con partizione Windows (sda1) + partizione per i dati Windows (sda2)
1 Sata con partizione Kubuntu (sdb1) + partizione per la home
Ho scritto avevo, perché il primo dei 3 ha deciso di abbandonarmi! E, non mi chiedere perché (evidentemente ho fatto casino nell’installazione), GRUB era proprio lì! Dopo qualche ora di peripezia, con Super Grub disk, dovrei essere riuscito a mettere GRUB nella MDB dell’hard disk di Kubuntu…ma, ovviamente, quando seleziono Kubuntu, mi dà l’errore 21. Suppongo, se ho capito bene, perché cerchi in qualche modo l’hb1!
Ho provato la tua procedura, sostituendo ai tuoi sdaX e (hd0,X) i miei sdb1 e (hd1,0), ma il problema persiste.
Eppure, durante la procedura, mi ha scritto proprio
sda1 (h0,0)
sdb1 (h1,0)
Evidentemente però ho sbagliato qualcosa.
Cosa dovrei fare?
Se ti può “aiutare ad aiutarmi”, vedo però adesso che nel file menu.lst che è in grub, ai parametri della voce di kubuntu c’è scritto hd(2,0). E se ho ben capito, questi dovrebbero invece coincidere con i valori che ho messo io in setup, giusto?? Devo cambiarli nella procedura…modificare il file menu.lst o cos’altro? Grazie
30 Agosto 2007 alle 1:18 am
Aggiungo un altro dettaglio per la cronaca: se riattacco l’hb1 (che appunto…è andato, ma non così tanto da non essere riconosciuto), dall’errore 21, si passa all’errore 17. Comunque…questo hard disk va tolto…quindi pensiamo all’errore 21!
31 Agosto 2007 alle 2:43 pm
Allora, l’error 21 riguarda l’MBR e quindi non dovrebbe neppure farti entrare in grub percui non ho ben capito come fai a selezionare kubuntu. Il 17 invece indica un errore sul file menu.lst che si può sistemare anche manualmente.
Da quel che mi pare di capire il primo hd lo togli proprio fisicamente.
A quel punto quindi dovresti installare grub sul primo hd. Nel caso tu lo voglia installare sul secondo credo che bisogna cambiare anche le impostazioni di boot dato che generalmente si cerca l’mbr sul primo disco.
Quindi dovresti fare install-grub /dev/sda1
e poi dentro grub dare root(hd0,0) e setup(hd0).
Se invece vuoi entrare riattaccando l’hb1 un volta in grub devi modificare lo script di avvio (tasto “e” mi pare) e provare a cambiare la partizione descritta in root(hdx,y).
15 Novembre 2007 alle 8:40 pm
A nessunoe è per caso venuto in mente che si possa essere “fottuta” l’ elettronica di uno dei dischi???????
Speriamo che il negozio me lo cambi . . .ma non potro mai recuperare i dati . . . xkè bisognerebbe sostituire la meccanica fottuta con una funzionante . . .e qnd smontare un altro disco . .. aaaaaaaaaaaaa
scusate lo sfogo . . . ma ho perso una giornata intera a cercare di capire ke kazzo era successo!!!!
col bios in inglese poi ero convinto di non capire qualcosa . . . invece proprio non me lo vedeva il secondo HD !!!!!!!!!!
grrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
15 Novembre 2007 alle 8:44 pm
scusate, ma se x caso sapete come avviare wondows lasciando sbattere il grub o qualsivoglia boot loader (x esempio avviando windows da un floppy o simili) potreste dirmelo??
e possibilmente spiegare passo x passo tutto??
so di kiedere un po’ troppo . . .ma sono disperato!!!!
poi devo rigraziare davvero tanto l’autore dell’ articolo . . .e anche tutti coloro che si sono adoperati x rispndere ai commenti/domanda . .
non è da tutti mettersi al servizio degli altri . .
davvero grazie
manu.
16 Novembre 2007 alle 2:58 pm
NON ERA L’HARD DISK!!!!
stupendo
era il cavo . . . molto vecchio . . .e strausato!!! l’ho cambiato cn quello nero fornito cn l’asus . . .
tutto risolto . .
ciao a tutti
17 Novembre 2007 alle 12:53 am
Meglio per te! Non avevo fatto ancora in tempo a risponderti
22 Novembre 2007 alle 8:06 pm
Ciao ho installato ubuntu sul mio HD esterno…ma anke io mi sono imbattutto nell-errore 21….x; ho un problema….allora lo so ke quello ke sto x kiederti e’ da stupidi ma io sn ankora un un tantino inesperto…allora…queste cose….
$ sudo mount -t ext3 /dev/sda2 /boot
$ sudo grub-install /dev/sda2
$ sudo grub
> root (hd1,1)
> setup (hd1)
> quit
dove le devo scrivere?
vi prego help! sto impazzendoXD
23 Novembre 2007 alle 9:00 am
Devi scriverli nella shell del sistema live che monti per risolvere il problema. Tutto ciò infatti prevede che un sistema operativo venga caricato altrimenti non si può fare nulla. E la cosa più facile è metter su il cd-live di ubuntu piuttosto che qualsiasi altro (possibilmente quello della tua distribuzione).
23 Novembre 2007 alle 7:25 pm
allora io ora posso far partire solo il cd live….e nn mi parte piu’ nulla XP allora questa shell dove la trovo? ti prego aiutamiXD
23 Novembre 2007 alle 10:28 pm
Appunto. E’ quello che succede se hai l’error 21
Cmq. Una volta fatto partire il cd live devi aprire il terminale (o shell). Lo trovi nei menù in alto. E’ l’icona con uno schermetto nero. Aprendolo ti si aprirà per l’appunto una finestrella nera simile al prompt di Dos.
Certo che se non si ha un po’ di manualità con il terminale è un po’ difficile, però se segui quanto sopra (più quanto scritto nei commenti) dovresti farcela.
Magari prima prova a leggere qualche guida introduttiva per usare il terminale.
23 Novembre 2007 alle 11:02 pm
mmmm quando inserisco
$ sudo grub-install /dev/sdaX
mi dice @comando non valido….
23 Novembre 2007 alle 11:05 pm
Ma hai scritto sdaX o il tuo numero di partizione?
23 Novembre 2007 alle 11:08 pm
nono sn inesperto ma nn scemo xP
23 Novembre 2007 alle 11:23 pm
anzi ora mi dice…..
Could not find device for /boot: Not found or not a block device.
24 Novembre 2007 alle 3:31 pm
Non volevo prenderti in giro. Non ci crederai ma è uno degli errori più comuni per i neofiti della shell!
cosa ti restituisce? prova a fare
Ad ogni modo l’errore che ti restituisce sembra strano.
Questo errore ti viene restituito dopo quale comando? Il “mount” o il “grub-install”? Sei sicuro di aver montato correttamente il tuo disco? Ovvero, il primo comando (mount …
ls /boot/
e scrivi un po’ cosa ti risulta. (Ls da l’elenco dei file presenti in una cartella)
25 Novembre 2007 alle 1:24 pm
Il problema è risolto ma ora ne ho un’altro…se è attaccato lHD esterni il mio pc nn parte! si blocca alla schermata iniziale e se lo stacco ri ridà l’errore….
26 Novembre 2007 alle 2:42 pm
In che senso non parte? supera il caricamento del bios e si ferma? Hai cambiato le impostazioni del bios per leggere l’hd esterno?
29 Novembre 2007 alle 2:57 pm
allora facciamo una cosa…ora ti dico come stanno impostati gli HD e così mi dici le operzioni da eseguire al terminaleXD
allora ….
sul mio HD interno ho installato XP….
su Gparted me lo chiama così
dev/hda1
e affiaco sotto la voce flags c’è scritto : boot
invece invece l’HD esterno dove c’è installato ubuntu ha le seguenti partizioni:
dev/sda1 che ha Filesistem ext3 e sotto flags c’è scritto boot
dev/sda2 che ha filesystem extended
e indine dev7sda5 che ha come filesystem linux-swap
beh…ti prego aiutami stouscendo pazzoXD
2 Dicembre 2007 alle 12:00 pm
I comandi per installare il grub sulla partizione di boot sono i seguenti:
$ sudo mount -t ext3 /dev/sda1 /boot
$ sudo grub-install /dev/sda1
$ sudo grub
> root (hd0,0)
> setup (hd0)
>quit
Questi comandi ti installeranno il grub sul hd che hai selezionato come master nel BIOS.
4 Dicembre 2007 alle 4:24 pm
tutto ok fino a
> setup (hd0)
dice: cannot mount selected partition
9 Dicembre 2007 alle 10:48 am
Scusa il ritardo nella risposta ma è stata una settimana un po’ frenetica. Credo di aver capito qual’è il tuo problema. Dipende da quale hd carichi per primo. Infatti nel caso di hd esterni sembra (a quanto ho potuto constatare) che grub non legga entrambi i dischi ma si limiti a vedere o quelli esterni o quelli interni. Di conseguenza il grub lo dovresti installare nel hd0 dell’hd esterno mentre su quello interno dovresti reinstallare il boot loader di windows (tramite il cd di installazione).
In questo modo all’avvio dell’hd interno partirebbe win mentre all’avvio di quello esterno (abilitato da bios) dovrebbe partire il grub.
Questo purtroppo non te lo so confermare non trattandosi del mio caso (io infatti ho una partizione linux anche su quelli interni).
Quanto all’errore precedente non saprei che dirti…se non di provare a cambiare quello 0 (anche se mi pare strano).
17 Dicembre 2007 alle 12:56 pm
Si può benissimo mettere ubuntu su una penna o su un HD esterno lasciando windows sul disco fisso. Il trucco è creare una piccola partizione ext3 nel vostro HD fisso (bastano 8MB) installate su quella GRUB evitate così l’errore 21. e mettete di default che parta windows. Ovviamente le opzioni del menù di grub che puntano a dischi o penne usb non funzioneranno se prima non collegate quei dispositivi ma non vi daranno alcun fastidio se fate partire la macchina senza.
18 Dicembre 2007 alle 1:05 pm
Grazie mille per la preziosa informazione!
20 Dicembre 2007 alle 4:24 pm
Niente panico ragazzi. Io sono un altro geniaccio che volendo portarsi a passeggio il proprio HD esterno con ubuntu installato sopra si è imbattuto nell’errore 21 del GRUB.Ricapitoliamo così posso aiutare anche voi come ho risolto io:
Windows XP sul HD interno (c
Ubuntu 7.10 sul mio HD esterno
a questo punto il problema è far ripartire il boot con XP evitando di cercare il GRUB sul HD esterno.
1°)SCOLLEGATE L’HD ESTERNO
2°)INSERITE CD INSTALLAZIONE DI WIN XP (con avvio da cd)
3°)ESEGUIRE BOOT DA DISCO
4°)SELEZIONARE R (Ripristino Configurazione con Console di Ripristino) non nuova installazione, mi raccomando
5°)Vi troverete davanti un prompt di comandi, in genere C:\WINDOWS>
6°)Scrivere FIXMBR e premere invio
7°)Ignorate gli avvertimenti vari, state tranquilli e scrivete “s” e premere invio.
Vi restituira come risposta che il boot è su hd0/partition0. Il gioco è fatto.
Ma ora mi chiedo…qualcuno sa come avviare il mio ubuntu dall’HD esterno su qualsiasi machina che monta un Os Win?
20 Dicembre 2007 alle 4:37 pm
La risposta purtroppo è: non si può. L’unica macchina su cui puoi farlo andare è la tua. Questo perchè come tutti i sistemi operativi è configurata (in fase di installazione) per la tua macchina, con il tuo processore, la tua memoria etc etc. Mettendola su un’altro pc non partirebbe. E’ la differenza che passa tra un’installazione completa ed una live, la quale si deve portare sempre dietro driver per qualsiasi hardware e si deve autoconfigurare ad ogni avvio.
Grazie per le regole per rimontare windows, non avevo pensato di metterle
20 Dicembre 2007 alle 4:50 pm
Per chi fosse interessato ecco un link ad un articolo che spiega come creare distribuzioni live.
20 Dicembre 2007 alle 5:03 pm
Grazie a te miky,
anche se un paio di idee ce le avrei…nel senso che le ultime distribuzioni, quelle in dvd, contengono sia la versione live che quella standard e mi pare he siano in grado di riconfigurarsi ad ogni cambiamento: sono riuscito ad avviare ubuntu 7.10 dopo aver cambiato la scheda video e la scheda audio e dopo averci aggiunto una scheda di rete…infatti era da li che era nata la mia fissa di intsallare ubuntu su HD esterno…l’unica difficoltà mi rimaneva il GRUB per il boot, dovendo tenere Win per varie ragioni…
20 Dicembre 2007 alle 5:15 pm
Mah, non saprei. Credo comunque che un cambio di scheda madre sia ben più complesso, considerando infatti che la gestione di schede video in linux è ben diversa da quella windows che avrebbe costretto molto probabilmente ad una nuova installazione. Linux, non disponendo spesso di driver corretti per le schede video, tende infatti ad “adattarsi”. Basta infatti modificare xorg per far girare una nuova scheda video. Per quanto riguarda la macchina la cosa la vedo più complessa anche se non ho certezze a riguardo. Il fatto cmq che contengano sia la live che la standard non è indicativo in quanto è cmq la live che parte. La standard è quella che viene installata sul pc
3 Gennaio 2008 alle 8:22 pm
Ciao, anchio sono incappato nell’errore 21….la mia situazione è simile alla tua, ho 3 HD:
il primo interno, con windows xp (hda1)
il secondo interno, con 3 partizioni, una per Ubuntu 7.10(hdb1), quella swap (hdb2) e una per i dati (hdb3).
il disco esterno, dove ho installato Xubuntu 7.10 (con l’intenzione di usarlo su un altro pc, piu vecchio, ma alla questione dell’adattamento ci penserò dopo), con tre partizioni: una per Xubuntu (sda1), una swap (sda2), e una per altri dati (sda3)
io avevo grub funzionante sul 2 disco, ma da quando ho installato ubuntu sul disco esterno, grub parte da li, e se non è attaccato, ecco l’errore 21. Ho seguito la tua guida ma non ci sono riuscito….vorrei riuscire a ripristinare il grub vecchio, magari aggiungendoci il nuovo ubuntu.
Grazie per questa utile guida
3 Gennaio 2008 alle 9:14 pm
Direi che è esattamente la mia situazione. Mi dici cosa provi a fare e cosa dà errore? Avvii dal disco esterno o da live cd?
4 Gennaio 2008 alle 10:46 am
allora, tengo il disco esterno attaccato (grub è più lento), e posso avviare da xp, ubuntu vecchio e ubuntu nuovo. In alternativa la live di xubuntu cel’ho…
Da che ubuntu devo eseguire le operazioni??
grazie di tutto
4 Gennaio 2008 alle 11:02 am
Prova a lanciare i comandi dall’ubuntu installato sul disco esterno (visto che poi carichi su /boot la partizione che hai su quello interno). Sinceramente non so se il passaggio a gutsy abbia cambiato qualcosa, ma non credo.
4 Gennaio 2008 alle 11:46 am
l’ho fatto…ma non va. Ecco quello che ho fatto:
matteo@matteo-acer:~$ sudo mount -t ext3 /dev/hdb1 /boot
[sudo] password for matteo:
matteo@matteo-acer:~$ sudo grub-install /dev/hdb1
Searching for GRUB installation directory … found: /boot/grub
Installation finished. No error reported.
This is the contents of the device map /boot/grub/device.map.
Check if this is correct or not. If any of the lines is incorrect,
fix it and re-run the script `grub-install’.
(fd0) /dev/fd0
(hd0) /dev/hda
(hd1) /dev/hdb
(hd2) /dev/sda
matteo@matteo-acer:~$ sudo grub
Probing devices to guess BIOS drives. This may take a long time.
[ Minimal BASH-like line editing is supported. For
the first word, TAB lists possible command
completions. Anywhere else TAB lists the possible
completions of a device/filename. ]
grub> root (hd1,0)
grub> setup (hd1)
Checking if “/boot/grub/stage1″ exists… yes
Checking if “/boot/grub/stage2″ exists… yes
Checking if “/boot/grub/e2fs_stage1_5″ exists… yes
Running “embed /boot/grub/e2fs_stage1_5 (hd1)”… 17 sectors are embedded.
succeeded
Running “install /boot/grub/stage1 (hd1) (hd1)1+17 p (hd1,0)/boot/grub/stage2
/boot/grub/menu.lst”… succeeded
Done.
grub> quit
4 Gennaio 2008 alle 2:00 pm
La procedura sembra corretta però mi sorge il dubbio che tu stia installando sull’hd sbagliato. Questo perchè l’ordine degli hd (hda,hdb,sda) è diverso a seconda che tu faccia partire l’hd interno o l’hd esterno. Prova a dare un
ls /boot dopo che hai montato il device. Dovresti trovarti i file del sistema operativo sul tuo hd fisso. Se così non è smonta (sudo umount /boot) e prova a montare un’altro disco.
Cmq ho riprovato la procedura con gutsy. Funziona perfettamente quindi gli errori dovrebbero imputarsi a configurazioni errate.
4 Gennaio 2008 alle 2:19 pm
scusami ma non ho capito l’ultimo pezzo…da dove devo fare ls /boot ?
se lo faccio dall’ubuntu vecchio mi esce
abi-2.6.22-14-generic memtest86+.bin
config-2.6.22-14-generic System.map-2.6.22-14-generic
initrd.img-2.6.22-14-generic vmlinuz-2.6.22-14-generic
initrd.img-2.6.22-14-generic.bak
4 Gennaio 2008 alle 7:16 pm
in che senso da dove? da dove stai tentando di caricare il grub.
ls /boot
dice solo di scriverti cosa c’è dentro la cartella boot.
Se tu dai questo comando dopo che hai dato il comando di mount dovresti vedere quello che contiene l’hd che hai montato. Se ad esempio tu avessi montato l’hd che contiene windows li troveresti cartelle tipo Windows, Document and Settings eccetera. Se invece hai montato uno degli hd che contengono linux ti dovresti trovare la tipica conformazione del root (ovvero cartelle bin sbin etc var usr …). A questo punto dovresti capire se hai montato l’hd giusto (ovvero quello che sta sul tuo fisso) vedendo se il comando ti restituisce file che ti aspetti o meno.
Esempio: se sull’hd esterno carichi un file esterno.txt sotto la posizione di root / e su quello interno fai lo stesso con un file interno.txt, quello che troverai dando questo comando una volta effettuato il montaggio, capirai subito di che hd si tratta.
5 Gennaio 2008 alle 11:32 am
cel’ho fatta!
nella procedura sbagliavo una cosa:
grub> root (hd1,0) giusto
grub> setup (hd1) SBAGLIATO! dovevo mettere hd0 perchè era quello impostato come primo avvio… (se mettevo l’altro hd all’avvio non so come mai ma non partivano comunque…forse perche cosi cambiavo gli ordini (hd0, hd1) e non mi riconosceva più le partizioni.
Grazie di tutto mikyjpeg
8 Gennaio 2008 alle 10:35 am
Bene, felice d’esserti stato di aiuto!
25 Gennaio 2008 alle 9:47 am
Ciao, ho anche io il problema dell’errore 21 ma..
quello che non capisco ( scusate ma non sono per niente pratico ) è che con questa procedura io installo il GRUB sull’HD esterno, cosi da farlo partire quando lo collego e se non lo collego mi parte windows normalmente??
altra cosa io ho installato per errore il GRUB su MBR dell’hd interno del mio portatile, su cui è montato windows vista.. facendo questa procedura il grub si eliminerà dal MBR del disco interno e Vista tornerà ad avviarsi normalmente?? questo perchè è il mio notebook di lavoro ç_ç grazie
26 Gennaio 2008 alle 9:06 am
Allora, in realtà questa procedura permette di installare GRUB sull’hd interno, a monte però della presenza di un sistema linux in una delle partizioni. Nulla vietà però di installarlo su quello esterno come dici tu. Dipende solo da che hd hai messo sul comando “grub install”.
In ogni caso se tu hai installato il grub sul disco interno, questa procedura NON lo cancellerà, al massimo lo sostituisce. Se tu vuoi avere solo vista devi procedere con il disco di ripristino di vista (forse potrebbe andare anche quello di Xp, ma non ho certezze a riguardo). Altrimenti potresti fare come consigliato da Luca, creando una piccola partizione su cui installare grub. Da li dovresti far partire Vista senza problemi.
9 Febbraio 2008 alle 4:19 pm
io ho installato kubuntu sull’hd esterno dove ci sn 3 partizioni una ntfs una ext e una swap(mentre sull hd interno ho 2 partizioni con vista) sl che da quando è finita l’installazione e ho ravviato mi da questo errore 21 e non riesco ad accedere a nessun sistema operativo.
ho provato a seguire i seguenti comandi ma senza successo:
$ sudo mount -t ext3 /dev/sdf2 /boot
$ sudo grub-install /dev/sdf2
$ sudo grub
> root (hd1,1)
> setup (hd1) [HO PROVATO PURE CON hd0]
>quit
non so più cosa fare aiutatemi please!!!!
10 Febbraio 2008 alle 7:18 pm
Ciao ragazzi,
per favore aiutatemi che e- urgente, devo conseganre un lavoro e non riesco piu- ad accedere a windows!
Ho installato Kubuntu su un HD esterno (USB). Tra le altre cose il mio pc non permette il bootup su USB…ad ogni modo quando ho riavviato mi e- uscito l-errore 21 (ventuno) del grub..e il pc si pianta li, non si puo fare nulla tranne che riavviare il pc.
Ora dal Live CD di Kubuntu sono riuscito ad accedere al web ed ho trovato questo articolo.
Anzitutto premetto che ho un hd sul pc con due partizioni (una con Windows e l-altra per i dati) Su Storage Media di Kubuntu la partizione primaria risulta su sda1 mentre quella per i dati su sda5..l-hd usb sul quale ho installato Kubuntu risulta su sdb1
Ho seguito tutta la procedura che vi re-incollo di sequito:
$ sudo mount -t ext3 /dev/sdb1 /boot
$ sudo grub-install /dev/sdb1
$ sudo grub
Quindi da dentro grub:
> root (hd0,0)
ma quando lancio il comando:
> setup (hd0)
mi da questo errore:
Error 17: Cannot mount selected partition
Non riesco a capire dove sbaglio, sda1 dove si trova l-harddisk “primary master” corrisponde a (hd0,0)
Chi mi aiuta
Scusate gli accenti e il punto interrogativo ma non so cosa e- successo alla tastiera!
mfk
10 Febbraio 2008 alle 7:38 pm
Sia per kikko che per mfk vale una considerazione: se sull’hd interno avete solo partizioni windows l’unico modo per far ripartire il pc senza dover forzatamente aver connesso l’hd esterno è ripristinare l’MBR di windows. O, in alternativa, procedere come ha scritto Luca aggiungendo un’ulteriore partizione anche piccola.
x Kikko: dovresti darmi qualche dettaglio in più, tipo la struttura di hd (tipo sdax=disco x)
x mfk: c’è qualche contraddizione in quel che scrivi: se il tuo bios non ti dà la possibilità di caricare da usb non vedo perchè tentare di installare il grub. Tuttavia l’errore che hai è il 17, non il 21, segno che dunque il grub è stato installato (anche se a questo punto non capisco dove visto che non hai partizioni ext3 sull’hd interno). Questo errore te lo dà con l’hd esterno attaccato o no? Ad ogni modo avendo il grub puoi fare delle prove cambiando l’hd e la partizione nelle impostazioni (basta premere “e” al momento in cui ti si avvia il grub).
7 Marzo 2008 alle 2:54 pm
Ciao!
Grazie per la dritta!
Io ho risolto con solo i comandi nel sudo grub:
- sono entrato con la live
- ho aperto una shell
- sudo bash
- mkdir hd
- mount -t ext3 /dev/hda0 hd (non dovrebbe servire)
- grub
> root (hd0,0)
> setup (hd0)
> quit
riavvio il pc e riottengo il menù di grub che avevo perso!
22 Maggio 2008 alle 8:36 am
Che dire, sei un eroe! Sinceramente non ho mai installato ubuntu in un HD esterno (né penso che lo farò mai) ma stamattina sono stato svegliato da un mio amico nel panico con questo esatto problema. Grazie anche da parte sua.
26 Maggio 2008 alle 10:46 pm
[...] Error 21 [...]
3 Giugno 2008 alle 2:00 pm
Salve, scusami l’estrema ignoranza, sto tentando da 4 giorni di installare ubuntu su un disco esterno e mi appare sempre quel messaggio su cui hai chiarito sopra; potresti per favore riscrivermi in modo piu’ chiaro questo tuo concetto?:
“e si lancia il grub esenguendo i seguenti comandi
$ sudo grub
> root (hd0,x) #in questo caso x sarà, come detto in precedenza, X-1
> setup (hd0)”
Scusa se suono cosi’ palloso…
Guglielmo
12 Giugno 2008 alle 4:13 pm
Sinceramente non saprei come renderlo più chiaro… tra la guida sopra ed i commenti a seguire…
): si tratta del numero che indica la tua partizione. Il problema è che grub ha una numerazione differente da quella indicata dalla sigla “sda” in quanto quest’ultima parte da 1 mentre quella di grub parte da zero. Quindi è X-1.
L’unica che può confondere è la X (l’incognita
26 Giugno 2008 alle 10:44 am
Ciao a tutti,
ho installato ubuntu da chiave USB su disco SDHC. Ora mi viene fuori l’errore Grub 21.
Ho seguito la guida qui sopra ma non ho capito un paio di cose, io di linux non ci capisco una fava e vorrei imparare.
Allora:
su sdc1 c’è la chiave usb con il setup di installazione di ubuntu.
su sdd1 c’è una partizione fat32
su sdd2 c’è una partizione chiamata extended
su sdd5 c’è Linux
su sdd6 c’è Linux swap / Solaris
Se ho capito bene il S.O. sta su sdd5.
Quindi il comando che c’è sulla guida, x me dovrebbe essere cosi:
$ sudo mount -t ext3 /dev/sdc1 /boot
$ sudo grub-install /dev/sdd5
$ sudo grub
> root (hd0,4)
> setup (hd0)
Ho come la sensazione di sbagliare qualcosa. Il comando sudo mount cosa fa esattamente ? Io ho capito che carica il boot dalla chiave per poi, con gli altri comandi, installarlo sul disco dove ora risiede il s.o. E’ cosi ?
Comunque lanciando questi comandi non mi funzia, quindi al posto di fare:
$ sudo mount -t ext3 /dev/sdc1 /boot
ho lanciato questo comando:
$ sudo mount -t ext3 /dev/sdd5 /boot
Il problema è che arrivando a questo comando:
> root (hd0,4)
mi da questo errore:
bash: syntax error near unexpected token ‘(’
AIUTO!
26 Giugno 2008 alle 10:57 am
Il comando giusto è infatti il secondo, quello che monta sdd5. Questo perchè monta sulla tua directory /boot quanto presente nella partizione sdd5. Infatti se tu dopo aver dato questo comando entri in /boot dovresti trovarti quello che c’è sulla partizione ssd5.
Il comando root (hd0,4) sembra corretto, l’errore che ti da è alquanto strano, sicuro di non aver digitato qualcosa di errato? anche solo aver scritto qualcosa e poi cancellato (su alcuni sistemi non configurati crea casini). Domanda: sdd3 e sdd4 non esistono?
26 Giugno 2008 alle 6:16 pm
Allora, ci sono riuscito, sbagliavo perchè come mostrato sopra tra il dollaro e il comando sudo sembra esserci uno spazio e invece linux lo voleva attaccato.
Ho fatto tutto come dice la tua spiegazione, ma riavviando mi trovo sempre l’errore 21 del grub.
Ho letto poco più sopra che se sul disco primario non c’è montato linux, ma windows non andrà mai. Bene!
Quindi come faccio a ricaricare il loader di windows ? Il problema è che il pc non ha il lettore cd/dvd. Quindi inserirlo come spiegato più sopra è impossibile.
Per quanto riguarda sdd3 e sdd4 e come se non ci fossero. Ho lanciato fdisk -l e quei due non compaiono.
Per finire vi dico che queste prove le sto facendo su un eeePc 900 con WXP Home montato su sda. Su sdb c’è il secondo disco SSD da 8Gb e sdc è la chiave usb.