Recuperare file cancellati

Inserito da il10 December 2010, 20398 visite totali

Può capitare di cancellare (per errore?) dei file importanti e questo è causa (se non si ha un backup) di molta frustrazione e talvolta (i file importanti? del capo) può portare ad essere vittime del bunga bunga (lascio a voi scoprire di cosa si tratti); per fortuna esistono vari tools atti al recupero di questi dati tra cui testdisk e autopsy.

Quando ci si trova a dover recuperare un file cancellato è molto importante non usare più il supporto fino a quando non si sia recuperato il file, questo perchè il file è recuperabile fintantochè non si è andati a “riscrivere” (mica voi di vostra spontanea volontà ma lo fa il sistema) sulla stessa porzione di disco (o parte di essa): quando un file viene “deletato” (in maniera normale) viene semplicemente eliminato il puntatore alla sua locazione nella tabella delle partizioni.

Detto ciò come procedere?

La prima cosa da fare è una copia del supporto (disco, penna usb ecc) interessato per non corre il rischio di continuare a fare danni (come se quelli già fatti non siano abbastanza), per creare la copia del disco è necessario avere a disposizione un altro supporto con spazio libero almeno quanto la capienza del disco che vogliamo recuperare e un po’ di tempo, tempo che varia a seconda delle dimensioni del supporto.

Precedentemente alla copia del disco si crei un file (di testo) che poi verrà cancellato, questo sarà il file che sarà poi ripristinato:

$touch /media/PENNEGAUSB4/prova_recupero_file && echo -e "\n Ecco il file che verrà cancellato per tentarne il ripristino. \n Speriamo bene :D" >> /media/PENNEGAUSB4/prova_recupero_file

$cat /media/PENNEGAUSB4/prova_recupero_file 

 Ecco il file che verrà cancellato per tentarne il ripristino.
 Speriamo bene 

$ls  /media/PENNEGAUSB4/
altro_file  prova_recupero_file

$rm /media/PENNEGAUSB4/prova_recupero_file
$ls /media/PENNEGAUSB4/
altro_file

Il file non viene più listato quindi non c’è (o meglio non è visibile).
La copia del disco può essere eseguita (dopo aver smontato il disco per garantire che nulla venga scritto nel frattempo) tramite il comando dd, un esempio, supponendo che il disco da copiare sia /dev/sdb, è:

$dd if=/dev/sdb conv=sync,noerror of=disk_img.dd
8060928+0 record dentro
8060928+0 record fuori
4127195136 byte (4,1 GB) copiati, 271,547 s, 15,2 MB/s

Ora che l’immagine è pronta bisogna verificare che questa ed il disco siano la stessa cosa, per farlo basta usare l’eseguibile md5sum e verificare che gli hash coincidano

$md5sum /dev/sdb
4c810b0dc6847520cfe1a092a1eaad7f  /dev/sdb

$ md5sum disk_img.dd
4c810b0dc6847520cfe1a092a1eaad7f  disk_img.dd

Adesso occorre prelevare qualche informazione sul disco che servirà per far funzionare correttamente testdisk

$fdisk -lu disk_img.dd 

Disco disk_img.dd: 4127 MB, 4127195136 byte
197 testine, 15 settori/tracce, 2727 cilindri, totale 8060928 settori
Unità = settori di 1 * 512 = 512 byte
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Identificativo disco: 0x000437c9

 Dispositivo Boot      Start         End      Blocks   Id  System
disk_img.dd1            2048     8060927     4029440    b  W95 FAT32

Le stesse informazioni vengo fornite se fdisk viene eseguito sul device (se gli hash coincidono è come se si lavorasse sullo stesso device)

$ fdisk -lu /dev/sdb

Disco /dev/sdb: 4127 MB, 4127195136 byte
197 testine, 15 settori/tracce, 2727 cilindri, totale 8060928 settori
Unità = settori di 1 * 512 = 512 byte
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Identificativo disco: 0x000437c9

Dispositivo Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     8060927     4029440    b  W95 FAT32

Quello che interessa è la geometria del disco (CHS dall’inglese cilindri testine e settori) che poi si deve settare su testdisk.
Non rimane che lanciare il programma di recupero:

$testdisk disk_img.dd

Si aprirà la schermata di testdisk con evidenziato il disco che gli è stato passato come parametro. Non si faccia caso all’avviso che appare in rosso (le operazioni che seguono possono essere eseguite anche da un normale utente, diverso se si lavorasse sul device) .
Per iniziare la procedura di recupero spostarsi con i tasti freccia su “PROCEED” e dare invio.

Selezionare ora il tipo di partizione (solitamente INTEL o NONE se si vuole controllare una partizione) e premere invio.
Successivamente si setta la geometria del disco selezionando la voce “Geometry” ed impostando i parametri che si sono appresi con il comando fdisk, per poi selezionare la voce “Analyse” per far partire la procedura di recupero.

Nella schermata successiva selezionare la voce “Quick Search”, successivamente all’individuazione della partizione (o delle partizioni) basta premere “P” per accedere ai file del disco. I file cancellati verranno mostrati in rosso.

Selezionare il file che si vuole ripristinare, premere “C” per salvarlo, selezionare il path dove scrivere il file e premere “Y” per copiarlo localmente. Ripetere queste operazione per tutti i file che si voglio recuperare.

Terminato di “ripristinare” tutti i file premere “Q” per uscire, poi invio ed ancora selezionare “QUIT” fino a quando non si chiude il programma.
Adesso è possibile godersi il file recuperato, andare a letto tranquilli ma soprattutto senza aver subito il bunga bunga da parte del capo…

$ls
disk_img.dd  guidarecuperodati  img_usbpenn.dd  prova_recupero_file  vol2-C...OrphanFiles.20060720.PDF  wifi

$ cat prova_recupero_file 

 Ecco il file che verrà cancellato per tentarne il ripristino.
 Speriamo bene 

Un commento per “Recuperare file cancellati”

  1. UnikGeek scrive:

    Recuperare i file cancellati con DiskDigger…

    Ho trovato la tua notizia interessante ;=) Ti ho mandato un Trackback!…

Lascia una risposta

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *