Come funzionano i programmi di recupero dati cancellati in un hard disk con file system di tipo FAT o NTFS?


Il principio di funzionamento dei programmi di recupero dei dati
cancellati
è abbastanza semplice: si basa sul fatto che quando un file viene
cancellato in sostanza viene solo “nascosto” il suo nome, ma i dati
rimangono
(almeno per un po’ di tempo) intatti.

Nella risposta farò riferimento in particolare al filesystem
FAT, perché è assai più semplice e si presta meglio
ad una spiegazione. Il principio è comunque analogo a quello
applicabile al filesystem NTFS, anche se in questo caso la struttura
assai più complessa (ed anche il fatto che alcuni dettagli
della struttura non sono divulgati da Microsoft) rende la cosa meno agevole.

Per comprendere nei dettagli il procedimento con cui è possibile
recuperare un file “cancellato”, occorre partire dalla struttura del
filesystem. Poiché questo argomento è già
stato trattato in queste pagine (vedere:

http://www.vialattea.net/esperti/php/risposta.php?numero=8410
)
non starò a ripeterlo qui.

In sostanza la “cancellazione” di un file consiste in un’unica operazione:
il nome del file nella directory viene modificato sostituendo il
primo carattere con un carattere speciale che significa: questo file
è stato cancellato. Da questo momento in poi il file non sarà
più accessibile ai normali programmi.

Come si vede l’operazione non modifica in alcun modo
i dati contenuti nel file che quindi in questa fase possono essere
ancora recuperati.

Il recupero avviene semplicemente mediante un programma che accede
direttamente alla directory (contenuta in uno speciale file) e
la esplora
per cercare nomi di files cancellati; ogni volta che ne trova uno verifica
poi che la corrispondente
struttura del file nella FAT sia ancora intatta. In questo caso il file
viene proposto per il recupero (chiedendo all’utente quale carattere
usare per ripristinare il nome del file).


Ciò vale solo fino a che i blocchi appartenenti al file non vengono
riutilizzati per assegnarli a qualche altro file creato successivamente:
in tal caso i dati preesistenti nei blocchi riutilizzati
vengono sovrascritti e i puntatori
nella tabella FAT vengono modificati e quindi da questo
momento in poi non è più possibile recuperare
il contenuto del file.

La possibilità di recuperare i dati dipende quindi dalla
quantità di attività che è seguita alla
cancellazione: Più operazioni sono state eseguite, tanto
maggiore è la probabilità che il Sistema Operativo
abbia avuto necessità di riutilizzare i blocchi che interessano.