Recupero dati da Hard Disk guasto (ddrescue + DMDE)

by marcomg on

Introduzione

È capitato a tutti, è inutile ammetterlo. I dispositivi di archiviazione si guastano e voi non avevate il backup. E ora che si fa?

La rete è piena di discussioni e di richieste di aiuto al riguardo, spesso si trovano suggerimenti poco utili, ma molto più spesso si trovano una marea di suggerimenti completamente inutili come fornito dal più simpatico ed intelligente utente che sbeffeggiava il malcapitato dicendo “Ma è ovvio! Devi ripristinare dal backup”.

In realtà un fondo di verità c’è. Se si facessero sempre le cose fatte bene si avrebbe sempre una copia di backup. Personalmente ho sempre esasperato il prossimo ripetendo come un mantra “devi fare il backup”. Ed ho sempre fatto così e me la sono praticamente sempre cavata (anche quando ho ripristinato il backup sul disco aggiornato per distrazione, ma avevo un secondo backup di emergenza e quindi ho comunque potuto ripristinare dal backup!).

Il punto è che se ci si trova in questa situazione è perché le cose non si sono fatte bene. Per esempio io per 8 mesi mi sono affidato ad un disco esterno della WD Digital My Passport. Avevo accumulato foto di un paio di viaggi a cui tenevo e parecchie simulazioni di progetti.

Vuoi la fretta, vuoi che non avevo intenzione di ricominciare la solfa di prendere in continuazione il disco secondario per sincronizzarlo, vuoi che non volevo spendere un altro centinaio di euro per un secondo hard disk inutile (illuso). Non ho fatto il backup per 8 mesi.

Cosa è successo? Ironia della sorte mi ero deciso di acquistare un secondo hard disk, questa volta un WD Elements della stessa capienza del precedente: 4TB. Spedizione in 3 giorni.

Nel frattempo lavoro come al solito, recupero un file dall’hard disk (come al solito), finisco di lavorare e lo ripongo nel cassetto.

La mattina successiva riprendo il disco, lo inserisco nel portatile e sorpresa delle sorprese non viene riconosciuto. Anzi dopo un po’ il PC va completamente in crash (le magie di Windows 10 ah per chi se lo stesse chiedendo, sì stavo utilizzando Windows 10).

Provo a riavviare e il PC rimane inchiodato alla schermata di BOOT. È lentissimo ad avviarsi e non risponde. Dopo un po’ mi viene in mente di togliere l’hard drive e magia delle magie ricomincia a funzionare. Lo rimetto, si ri-impalla.

Bene. Bisogna indagare di più. Riavvio con Debian e collego il disco. Almeno non si impalla, ma il montaggio automatico non avviene.

Provo a montare manualmente e… impossibile leggere il superblocco. Bene il disco è guasto.

Clonazione

In questi casi è fondamentale per prima cosa clonare il disco. Prima di pensare a qualsiasi operazione il disco va clonato senza se e senza ma.

Il problema è, e dove trovo 4 TB disponibili per fare spazio all’immagine del disco? Per fortuna il giorno dopo mi doveva arrivare il nuovo disco. Riflettendo perché ho preso un disco da 4TB? Mi sarebbe bastato un disco da solo 1TB, le solite manie di grandezza! Infatti non prendete mai dischi troppo più capienti di quelli che vi servono, sono più difficili da gestire in questi casi.

Comunque dicevo: è importante effettuare la clonazione perché quando ci sono questi problemi il disco è guasto e potrebbe morire del tutto da un momento all’altro. Inoltre durante il recovery spesso si possono fare errori e quindi non basta aver clonato il disco, tutte le procedure di ripristino vanno effettuate su una copia dell’immagine clonate (avete capito sì, si fanno sul backup!).

In questo frangente ci è di fondamentale aiuto ddrescue. DDrescue funziona come dd, cioè va a copiare i blocchi dei dischi, però nel caso ci siano problemi non fallisce, salta il blocco danneggiato e poi ci torna in seguito (spesso riuscendo a leggerlo). Inoltre permette anche di effettuare le operazioni in giorni differenti perché salva su un file di log tutte le operazioni e grazie al log è in grado di riprendere da dove era stato interrotto.

Per installare ddrescue basta lanciare

apt-get install ddrescue

A questo punto per utilizzare ddrescue basta dare

ddrescue -v /dev/sdx1 /home/tuoutente/sdx1.img /home/tuoutente/sdx1.log

Dove i parametri forniti sono in ordine: il dispositivo incriminato, il percorso dove creare il file di immagine (che deve avere spazio libero pari alla capienza del disco) e il file di log. Quest’ultimo è di vitale importanza perché permette di riprendere l’operazione di recupero da dove si era interrotta anche a distanza di giorni.

A volte può essere utile lanciare ddrescue con l’operazione -r (reverse) procede all’indietro (cioè dalla fine all’inizio del disco). Potreste anche doverlo interrompere più volte andando nelle direzioni opposte se il recupero sta diventando troppo lento.

Comunque dovrete portare pazienza. A me la clonazione del disco di cui vi ho accennato sopra ha impiegato 12 giorni circa.

Occhio alle fake-news e “rimedi della nonna”

Una piccola nota importante! Non azzardatevi a inserire il disco nel freezer! Sembrerà assurdo quanto sto dicendo, ma “sull’internet” girano strani consigli su possibili benefici di questa operazione e quando si è disperati la logica non funziona come dovrebbe. Come al solito le fake-news si basano su un fondo di verità. Non indagheremo in questa sede le fantasiose e plausibili teorie alla base di questo suggerimento, ma sappiate che in questo caso farete solo danni. I problemi che avrete sono molteplici: il disco raffreddato si riempirà di acqua per via della condensa a causa dell’umidità. Voi direte, beh posso metterlo in un sacchetto di plastica per evitare ciò. Assolutamente no! In primis perché dell’umidità è comunque presente, inoltre causate uno shock termico alla struttura meccanica che è progettata per funzionare a circa 35°C–45°C aumentandone i giochi e la probabilità di guasto immediato. Se pensate di non avere nulla da perdere ce lo avete eccome! I dati si possono recuperare. Inoltre l’operazione di inserimento e rimozione del disco dal freezer aumenta la probabilità di caduta e comunque, a meno che non teniate il disco nel freezer con una prolunga USB e lo lasciate dentro per tutto il recupero, nel giro di pochi minuti il disco sarà tornato alla temperatura operativa e il recupero durerà molti giorni. Insomma rischiate solamente di compromettere ulteriormente la situazione.

Dopo aver clonato gran parte del disco (non è detto che riusciate mai a clonarlo tutto) si passa al recupero vero e proprio dei file. Inoltre potreste anche tentare il recupero e nel caso non riusciate a trovare i file cercati riprendere il cloning. Il mio consiglio comunque è di recuperare quanto più possibile, aspettando almeno 10gg.

Ripristino

Questa procedura varia molto in base all’entità del danno subito. Nei casi più fortunati si riesce a montare l’immagine danneggiata e recuperare direttamente i dati. Per tutti gli altri casi ci sono numerosi software per il recupero, ma innanzitutto partiamo da quello che non bisogna assolutamente fare.

Non fate un fsck, cioè non provate a fare il check del file system, è tempo buttato e rende impossibile il recupero. Se l’immagine non si monta ve la rende montabile, ma per quanto riguarda il contenuto beh, nella maggior parte dei casi troverete una partizione vuota. Una prova non costa mai nulla, ma ricordo che è fondamentale che abbiate fatto il backup dell’immagine perché la distruggerete. Il vostro disco è moribondo quindi non sperate di riuscire a clonarlo due volte e comunque sono settimane buttate.

Un pacchetto opensource che può fare al caso vostro è testdisk, in particolare photorec (contenuto nel pacchetto testdisk). Questa utility permette di recuperare i files, ma perde le informazioni sulla struttura delle directory, quindi è comoda nel caso di unità flash di macchine fotografiche, ma profondamente scomoda per grosse moli di dati. Inoltre vi recupererà anche file che avete cancellato (e non è detto che sia ciò che vogliate).

Comunque l’utilizzo di photorec è piuttosto semplice, sarà sufficiente navigare nel menù testuale e seguire le videate, mentre per installarla è sufficiente dare

# apt-get install photorec

Ripristino dell’intero albero delle directory

Voglio parlarvi di DMDE. È un software proprietario che funziona sia sotto Linux che sotto Windows e supporta molto bene i file system NTFS, FAT12/16, FAT32, exFAT, Ext2/3/4, HFS+/HFSX, ReFS e APFS.

Il software ha sia una versione gratuita (che non è adatta per un recupero di un disco, ma è perfetta per capire se avete speranze con DMDE e permette comunque il recupero di un certo quantitativo limitato di file) ed una a pagamento che costa €16 se si opta per la licenza annuale e non la perpetua (ma se lo fate per uso personale si spera che non dobbiate più utilizzare il software in futuro perché farete il backup, vero?).

Dalla sezione download potrete scaricare DMDE per linux, estraete il binario e con sudo lanciatelo. Se non avete aggiunto il vostro utente al gruppo sudo potete sempre farlo con adduser nomeutente sudo. Riavviate il terminale per aggiornare le variabili d’ambiente, posizionatevi da terminale nella directory dove avete estratto il software e date

sudo ./dmde

a questo punto si aprirà l’interfaccia grafica. Potrete selezionare l’immagine disco da analizzare e avviate l’analisi (potete anche salvare su file il risultato dell’analisi per riaprila in futuro visto che il processo può essere piuttosto lento).

Avviata la ricerca e una volta terminata vi si mostrerà davanti a voi una interfaccia simile alla seguente

Recupero dati da Hard Disk guasto (ddrescue + DMDE)

In questa interfaccia vi verranno mostrati più dischi virtuali che corrispondono a differenti ricostruzioni del file system. Alcune saranno migliori di altre e non è detto che ve ne basti una sola. Infatti alcune potrebbero mancare di alcuni file e altre di altri ancora (recuperate entrambe e poi fondete i risultati). Comunque il software lavora in sola lettura sull’immagine quindi potrete provarle tutte e sfogliarle. Quando ne selezionerete una vi troverete di fronte una schermata di questo tipo

Recupero dati da Hard Disk guasto (ddrescue + DMDE)

In questa schermata potrete visualizzare e navigare all’interno dell’albero delle directory ricostruite. Vi verrà inoltre segnalato lo stato del file (se risulta cancellato precedentemente, danneggiato o recuperabile).

Da qui potrete selezionare le directory che intendete recuperare e copiarle su un altro dispositivo. Bene, arrivati a questo punto abbiamo finito.

Spero di esservi stato utile e per qualsiasi evenienza c’è il forum, grazie per la lettura!

Leggi il contenuto originale su Debianizzati.org

Written by: marcomg