Come tentare di recuperare dati da un disco con blocchi danneggiati?

DISCLAIMER:

Innanzitutto è bene precisare che la procedura che segue non è a portata di mano di qualsiasi principiante, oltre alla pazienza necessaria occorrono estrema perizia e conoscenza dei mezzi.
È necessario anche l'uso del terminale.

Come secondo requisito è necessario che il disco non sia rotto meccanicamente o a livello di logica: in quel caso la procedura descritta qui di seguito risulterà del tutto inefficace.
Se invece avete un disco che dopo un crash si rifiuta di essere montato, che il finder propone di inizializzare e sul quale le utilità standard non sortiscono alcun effetto (Diskwarrior e Data Rescue compresi), allora magari c'è una possibilità che quanto segue possa essere di aiuto.

La procedura:

Coma prima cosa è necessario installare un programma che funziona via terminale, che si chiama ddrescue.

✓ Scaricare ed installare ddrescue

La cosa è abbastanza semplice, per farlo però è necessario che abbiate installato sul vostro sistema XCode di Apple, che si trova nei developer tools o da scaricare liberamente.

Andremo adesso a scaricare il sorgente di ddrescue e a compilarlo sul nostro sistema.
Lo si scarica da qui: http://ftp.gnu.org/gnu/ddrescue/.
Scegliete l'ultima versione (al momento in cui scrivo la 1.2), scaricatela e scompattatela sul desktop o dove volete.
Troverete una nuova cartella col nome "ddrescue-1.2" (o analogo).
Posizionatevi col terminale all'interno della cartella e poi digitate i classici comandi per configurare, compilare e installare il binario (viene installato in /usr/local/bin):

$ ./configure
$ make
$ sudo make install

L'ultimo comando è eseguito coi privilegi di super-user, per cui verrà chiesta la password di amministratore, inserirla e a questo punto è finito.

✓ Verificare l'installazione di ddrescue

Se tutto è andato bene al terminale digitate:

$ ddrescue --help

e otterrete i comandi principali del programma.
Se invece viene fuori un errore "-bash: ddrescue command not found" è probabile che bash non abbia il path giusto nel profilo, quindi o digitate per intero con tutto il path il comando o sistemate il profilo della vostra bash inserendo il path giusto.

Un'altra alternativa, che funziona in ogni caso, è quella di posizionarsi nella cartella di ddrescue, e richiamarlo come "./ddrescue", ed è quello che faremo in seguito.

✓ Usare ddrescue

A questo punto si può usare ddrescue sul disco danneggiato (è una riga sola):

$ sudo  ./ddrescue -v  /dev/disk0s5 /Volumes/recoverdisk/discomorto.dmg ~/Desktop/MyVolRescue.log

Il comando esegue una copia blocco per blocco del contenuto del disco, salvandone il contenuto in un disco immagine (discomorto.dmg), isolando (saltando) gli eventuali blocchi danneggiati.
È un'operazione piuttosto lunga, sopratutto in corrispondenza degli errori.

ATTENZIONE:

  1. Sostituite nell'esempio i dati in corsivo con i vostri (disco di destinazione e device)
  2. il NOME del device dovreste riuscire a leggerlo da disk utility (selezionare il volume non montabile e premere sulla "i - Informazioni"), deve essere quello danneggiato ovviamente, sostituitelo a quello nell'esempio (disk0s5).
  3. Il volume dove effettuare il recupero (nell'esempio: recoverdisk) deve avere abbastanza spazio per ospitare il contenuto del disco non funzionante.

Per un Maxtor da 250 ci sono volute circa 24 ore, quindi pazientate.

In corrispondenza dei blocchi difettosi la lettura si farà particolarmente lenta, gli altri invece dovrebbero andare più speditamente, quindi dipende tutto dall'entità del danno.
La cosa positiva di ddrescue è che potete fermare l'operazione e riprendere quando vi pare da dove avete interrotto, il file di log serve proprio a quello: a fare il resume dell'operazione.

✓ Al termine del rescue

Una volta ottenuta la nostra bella immaginina "discomorto.dmg" dobbiamo ancora lavorarci sopra.
Nel 99% dei casi infatti a causa dei blocchi danneggiati sarà impossibile montarla normalmente.

C'è pero' una via di uscita: si può montare l'immagine in modo "virtuale" con hdiutil (comando da terminale fondamentale per la manipolazione delle immagini) e poi farla controllare da DiskWarrior:

$ hdiutil attach -nomount /Volumes/recoverdisk/discomorto.dmg

Dopodiché si può passare diskwarrior sull'immagine e ripararla.
Proveremo DataRescue, se DiskWarrior non ce la fa... E poi incrociate l'incrociabile.


Tempi e risultati dipendono parecchio dall'entità del danno.

Nella prova effettuata si trattava di un danno evidentemente non troppo esteso... è stato necessario passare Diskwarrior almeno 3 volte di seguito perché riparasse il disco, alla fine ce l'ha fatta ed è riuscito a montare l'immagine sul desktop correttamente, e a recuperare quasi tutto.

[ Home | Elenco delle FAQ | Forum | Segnalazioni | Risorse | Feed RSS ]