PartitionRescue MiniHOWTO andreac@interpuntonet.it 20/07/2000 Versione 1.1 Come recuperare una o più partizioni pur senza svenarsi con una società di recupero dati (oppure come farsi venire voglia di eseguire un backup). 1. Introduzione Questo documento spiega come tentare di recuperare una o più partizioni i cui limiti siano stati persi, essendo stato smarrito o danneggiato il primo blocco (accidentalmente o perché qualcuno ci abbia messo le mani ;-)). 1.1 Feedback, commenti, correzioni Questo documento non ha la pretesa di contenere tutti i sistemi e le modalità per il recupero partizioni, ma cerca di descriverne uno la cui elaborazione è derivata dalla dura necessità, procedendo per tentativi. Per consigli, informazioni, miglioramenti e insulti ecc. puoi mandare una mail a Andrea Corallo andreac@interpuntonet.it 1.2 La conditio sine qua non di questo miniHOWTO Seguendo i consigli di una rivista di informatica, CarloS decide di ricavare una terza partizione sul disco fisso del computer di cui condivide con il padre l'utilizzo, così da poter avere un proprio settore di lavoro, a parte, senza rischiare di rovinare dati altrui (in lui convivono lo spirito dell'esploratore e del kamikaze). Utilizza, come raccomandato dalla suddetta rivista, il programma Fips20, per creare lo spazio necessario per la nuova partizione: fin qui tutto a posto, Fips ha fatto un lavoretto pulito. Entra ora in scena M$-DOG Fdisk che, in men che non si dica, rende attiva la nuova partizione creata da Fips e chiede di riavviare: CarloS riavvia, ma il computer si inchioda sull'assurda pretesa che non ci siano partizioni; basta un rapido controllo e... Miracolo! E' VERO!!! 2. Il punto della situazione 2.1 Se avete perso una o più partizioni e siete disperati, abbiamo buone nuove per voi: fisicamente i dati ci sono ancora tutti! Si tratta solo di reimpostare il limiti delle partizioni medesime, per poterli ritrovare. Ahimé, abbiamo anche delle cattive nuove : se il blocco 0 è stato danneggiato da un malfunzionamento hardware c'è la possibilità che anche il resto sia compromesso. In ogni caso, sappiate che la strada per il recupero può non essere semplice (soprattutto su dischi saturi di partizioni e sistemi operativi vari). 2.2 Qualora sappiate la dimensione del vostro hardisk e delle partizioni che vi risiedevano, il loro ordine e il loro tipo, questo limita sensibilmente il numero di tentativi. Nel caso possediate - o, meglio, possedeste - una sola partizione M$-DOG, la strategia più veloce è quella di usare il suo programma Fdisk per reimpostarla: si suppone che occupasse l'intero disco, perciò i suoi limiti dovrebbero essere il primo e l'ultimo cilindro del disco fisso. Analogamente, qualora l'unica partizione presente sul vostro hardisk fosse dedicata a Linux, dovreste operare nello stesso modo ora osservato, ma usando il programma Fdisk di Linux. Nel caso, invece, che le partizioni fossero più di una, rimangono altre due strategie. La prima è quella del metodo per tentativi: se conoscete il numero, l'ordine e l'approssimativa dimensione delle partizioni, potrete cercare di ricostruire il partition table corretto senza farne troppi. La seconda, è fornita da Gpart, un programma che automaticamente fa una scansione del disco e cerca di indovinarne i tipi di partizioni e relativi limiti. 3. Software 3.1 Fdisk M$-DOG Per usare questo fantastico strumento (grazie al quale, cercando di creare una nuova partizione, ho perso tutte quelle presenti sul mio hardisk, n.d.C.) dovrete semplicemente utilizzare un dischetto di riavvio provvisto di Fdisk, o crearlo da sistema funzionante - col comando "format a: /s", copiandovi successivamente Fdisk, che dovrebbe risiedere in c:\windows\command (abbiate l'accortezza di usare una macchina con windows 95 OSR2 o superiore, in grado, cioè, di supportare anche il sistema FAT 32). 3.2 Fdisk Linux Per usare Fdisk di Linux, occorre una distribuzione Linux funzionante: quindi, è consigliabile estrarre dal computer il disco disastrato e collegarlo (aggiungendolo alla catena IDE o SCSI) al computer di un amico utente Linux, oppure usare una distribuzione portatile come Mulinux, che sta su dischetti e comprende già il programma Fdisk . 3.3 Gpart Programma eccezziunale veramente, che ci ha salvato dal marasma; anche questo ha bisogno di una distribuzione funzionante (in questo caso, però, è caldamente consigliato usare un altro hardisk di supporto). Per la sua installazione decomprimete, con il comando "tar -zvxf gpart-***.tar.gz" (*** va sostituito con la versione), il file tar.gz scaricabile dall'indirizzo http://home.pages.de/~michab/gpart/; indi, recatevi nella directory così generata e lanciate pwd, inserite il percorso così ottenuto nel file inst.def (nel valore prefix) e digitate il comando"make && make install": voilà, il gioco è fatto, potete finalmente lavorare col famoso Gpart. Gpart, nel momento in cui scriviamo, supporta tutti i seguenti file system : bssd (FreeBSD), ext2 (Linux), fat (M$ dos win 3.1 9x FAT12/16/32), hpfs (OS/2), hmlvm (Linux LVM physical volumes), lswap (Linux swap (sia per 2.2 che per 2.0)), minix (minix), ntfs (M$ Windoze NT), rfs (reiser f.s.), s86dl (Sun Solaris). 4. All'opera! 4.1 Ricerca per tentativi 4.1.1 Fdisk M$-Dog (Auguri!) Riavviate con il dischetto di avvio inserito e lanciate fdisk. Seguite le istruzioni per creare le "nuove" partizioni con i limiti di quelle perdute, fatele scrivere sul partition table e incrociate le dita. Se avrete avuto successo nella ricostruzione, al riavvio seguente c:\ verrà riconosciuta correttamente e, con essa, le eventuali altre . Se non avete avuto successo, vogliate seguire la procedura illustrata al punto 4.2. Sconsigliamo, comunque, l'utilizzo di questo programma, se si procede al recupero per tentativi, perché rende massacrante un'operazione già difficile (provate l'ebbrezza del quindicesimo riavvio e l'impossibilità di indicare i limiti mediante i cilindri: vedrete!). ATTENZIONE: Mai formattare alcunché: con questa operazione tutti i dati andrebbero persi definitivamente. 4.1.2 Fdisk Linux Anche con questo sistema dovreste avere un'idea della dimensione delle partizioni da recuperare. Supponiamo che conosciate la dimensione (10 Mb), la posizione (a partire dal blocco 1), e il tipo (EXT2) di almeno una; ecco quel che dovreste fare. Dopo aver avviato Linux, lanciate fdisk, digitando "fdisk /dev/xxx" (xxx va sostituito con il device driver, per esempio "/dev/hda", che è il master primario); con il comando "p", visualizzate tutte le partizioni esistenti, qualora ve ne siano ancora, e, con il comando "d", cancellate tutte quelle scorrette. Ora digitate "n" (nuova partizione), "p" (partizione primaria) e indicatene il numero (nel nostro caso 1), il primo cilindro (in questo caso 1 ) e la dimensione in byte Kb e Mb (con +size +sizeK +sizeM), o il cilindro terminale, se lo conoscete. Con "p" controllate il risultato (la partizione appena creata è ext2: per modificarne il tipo usate il comando "t" e selezionate il numero di codice desiderato) e con "w" andate a scriverlo sul disco. Ora si può tentare l'operazione mount, che consigliamo di attuare in sola lettura, ponendo l'opzione "-r" prima del device da montare (cioè: "mount -rt ext2 /dev/xxx /mnt/"; ovviamente, se la vostra partizione non è ext2, dovrete scriverne il tipo al posto della corrispondente voce dell'esempio); se non avete avuto successo, provate a spostare il secondo limite della partizione diminuendolo o incrementandolo di un blocco, senza scoraggiarvi (noi abbiamo fatto più di cento tentativi, senza riuscire, e mica ci siamo scoraggiati!). Se, dopo questa procedura, sarete riusciti a recuperare la prima partizione, quella che parte dal cilindro 1, potrete recuperare le altre; la seconda inizierà dal cilindro dopo l'ultimo di quella recuperata e, se avete idea della sua consistenza, potrete risalire al cilindro terminale con pochi semplici calcoli (dovrete [1] stabilire i Mbyte/cilindro, [2] dividere il numero approssimativo di Mbyte della partizione da ricercare per il risultato della [1], sommare il risultato ottenuto con la [2] al numero di cilindri occupato dalla partizione già ritrovata); altrimenti, non vi resta che il tentativo selvaggio, con pazienza e speranza (in bocca al lupo!). 4.2 Gpart un "tool" magico Se siete abbastanza disperati, perché nessuno dei metodi finora illustrati è servito, ebbene, Gpart è ciò che fa per voi. Una volta installato, la sintassi da usare è questa: "gpart /dev/xxx"; aggiungendo le seguenti opzioni, otterrete: con -f, una scansione completa ma più lenta; con -i, il modo interattivo, che domanda se considerare possibili le partizioni di cui il programma ipotizza l'esistenza; con -W /dev/xxx, la scrittura del risultato della ricerca direttamente nel blocco 0 (opzione da considerarsi solo nella più totale disperazione). Ecco un esempio di scansione completa interattiva: "gpart -fi /dev/xxx"; qualora siate soddisfatti, digitate "gpart -W /dev/xxx /dev/xxx". Se volete tutto insieme allora "gpart -fiW /dev/xxx /dev/xxx". 5. Problemi riscontrati 5.1 Se il primo sistema fallisce provate con Gpart: a noi è capitato di fare un banale errore di ordine delle partizioni, riverberatosi poi su tutti i tentativi fatti; con questo programma siamo riusciti a recuperare le partizioni nella loro corretta successione e, con esse, i nostri dati. Se anche Gpart fallisce, be', rassegnatevi: avrete subito senza dubbio un grave danno, tuttavia avrete la certezza di avere fatto il possibile per ovviarvi. Non vi resterebbe davvero altra strada che la società di recupero dati, ma è una strada lunga, tortuosa e dolorosa per le vostre finanze (senza contare che, se detta società vi conferma la perdita irreparabile di ogni dato, la dovete pagare lo stesso - e questo non è bello!). 5.2 Se non riuscite a installare Gpart controllate di avere indicato correttamente la directory come spiegato nel punto 3.3, altrimenti accertatevi di avere il GCC e il comando "make" installati (e in una versione non vergognosamente obsoleta). 6. Consigli Se, per caso, voleste fare le cose in grande, potreste fare una copia del device danneggiato in un file da salvare su un altro hardisk, per poi smanettarci come device loop. Verificate di avere lo spazio per contenerlo e provate. Per la copia da device a file dovrebbe essere sufficiente "cat /dev/xxx > file.img". Dovrete trattare il file come un device, con un comando come "gpart file.img". N.B.: Questo sistema è rimasto in fase progettuale, perché non avevamo un hardisk abbastanza capiente per metterlo in pratica: se voi che leggete siate in grado di utilizzarlo, vogliate, per piacere, comunicarcene i risultati. 7. Ringraziamenti 6.1 Ringraziamenti La versione originale di questo documento è stata scritta Andrea Corallo e CarloS andreac@interpuntonet.it <mailto:andreac@interpuntonet.it> L'ultima versione di questo documento è reperibile a questo indirizzo la nostra home page <http://web.interpuntonet.it/andreac/> Andrea ringrazia: La sua futura ragazza (ancora molto virtuale :-(( Tutto il gentilissimo GLUG di Genova per i preziosissimi consigli. Il T.A.T.E. e tutto il suo prezioso team di supporto. E ovviamente un ringraziamento specialissimo per il leggendario CarloS (un grande nel settore) - si rimanda inoltre a un futuro HOWTO su come ringraziare CarloS. CarloS ringrazia: Andrea Corallo, che, sfidando l'ignoto con grande sprezzo del pericolo e delle difficoltà (i famosi cento e rotti tentativi), lo ha aiutato a recuperare i preziosi dati; ancora Andrea Corallo, per la sua preziosa amicizia e per la pazienza, nel guidare in Linux un allievo tutt'altro che brillante; Corrado Bandini, amico fraterno, e la famiglia Pizzorno al gran completo, con affetto; ringrazia inoltre: il Dott. Alberto Bollo; i Dott. Gianluigi Cravino e Franco Torre, i Sigg. Giovanni Stalla e Luigi Turtoro e famiglie (tutti suoi cugini); i Sigg. Paolo Ghersevi, Ferdinando "Fred" Mogliotti, Massimo Puglisi, Evelina Vespanti e famiglie, per il fatto che sono ottimi amici. 8. Ludibrio Andrea fervidamente ricorda qui: la Prof.ssa Dott.ssa letterata nonché magistra elegantiarum Mrs. Onorato (per tutti i bei momenti). CarloS menziona con commossa partecipazione: Balle d'oro e la sua cara mamma (per tutti i bei momenti); i giovani- bene delle medie e del liceo, i boi-scaut e i giovani laions (idem).