Recupero file FAT: ricerca e ripristino di file eliminati
Esplora l’intricata area del recupero file su FAT con questa guida completa. Che tu sia un principiante o un utente esperto, otterrai preziose indicazioni su tecniche avanzate per il recupero dei file all’interno dei file system FAT. Approcci passo dopo passo per affrontare il recupero su FAT con semplicità ed efficienza.

Nella prima parte dell’articolo, abbiamo esaminato l’algoritmo di ricerca e la struttura della tabella delle partizioni FAT. Nel sistema FAT, ogni file e directory ha una corrispondente voce nel file system, la cosiddetta voce di directory. Le voci di directory contengono informazioni sul file, inclusi nome, attributi, indirizzo iniziale e lunghezza.
- Algoritmo di ricerca e struttura della tabella delle partizioni FAT
- Recupero dei file
- Conclusione
- Domande e risposte
- Commenti
Algoritmo di ricerca e struttura della tabella delle partizioni FAT
Il contenuto di un file o di una directory è memorizzato in blocchi di dati di uguale lunghezza. Questi blocchi di dati sono chiamati cluster. Ogni cluster contiene un certo numero di settori del disco. Questo numero è un valore fisso per ogni volume FAT ed è registrato nella corrispondente struttura del file system.
La parte complessa si presenta quando un file o una directory contiene più di un singolo cluster. I cluster successivi sono identificati tramite strutture dati chiamate FAT (File Allocation Table). Queste strutture vengono utilizzate per identificare i cluster successivi appartenenti a un determinato file e per stabilire se uno specifico cluster è occupato o disponibile.
Come riparare un disco RAW e recuperare dati da un HDD con partizioni RAW
Prima di analizzare il file system, è essenziale identificare le tre aree di sistema.
- La prima area è riservata; contiene informazioni essenziali sul file system. In FAT12 e FAT16 questa area è lunga un settore. FAT32 può utilizzare più di un settore. La dimensione di questa area è specificata nel settore di avvio.
- La seconda area appartiene al sistema FAT e contiene le strutture primarie e secondarie del file system. Questa area segue immediatamente l’area riservata. La sua dimensione è definita dalla dimensione e dal numero delle strutture FAT.
- Infine, l’ultima area contiene i dati effettivi. Il contenuto di file e directory è memorizzato in quest’area.
Durante l’analisi del file system, l’area FAT sarà di principale interesse. È quest’area che contiene informazioni sugli indirizzi fisici dei file sul disco.

Figura 1. Struttura fisica del file system FAT.
Quando si analizza il file system, è essenziale determinare correttamente le tre aree di sistema. L’area riservata inizia sempre dall’inizio del file system (numero di settore 0). La dimensione di questa area è specificata nel settore di avvio. In FAT12 e FAT16 la dimensione di questa area è esattamente un settore. In FAT32, quest’area può occupare più settori.
L’area FAT segue immediatamente l’area riservata. L’area FAT contiene una o più strutture FAT. La dimensione di questa area si calcola moltiplicando il numero di strutture FAT per la dimensione di ciascuna struttura. Questi valori sono anch’essi memorizzati nel settore di avvio.
| Caratteristica | Descrizione |
|---|---|
| Abbreviazione | FAT (File Allocation Table). |
| Sviluppatore | Microsoft. |
| Struttura principale |
|
| Principali versioni |
|
| Vantaggi |
|
| Svantaggi |
|
| Ambito di applicazione | Dispositivi di archiviazione rimovibili, sistemi con capacità di memorizzazione limitata. |
Recupero dei file
Come recuperare file da una chiavetta USB infetta da virus
Siamo finalmente vicini al recupero del nostro primo file. Supponiamo che il file sia stato eliminato di recente e che nessuna parte del file sia stata sovrascritta con altri dati. Ciò significa che tutti i cluster precedentemente utilizzati da questo file sono ora contrassegnati come disponibili.
È importante notare che il sistema può anche cancellare le corrispondenti voci nella FAT. Questo significa che possiamo ottenere informazioni sull’indirizzo iniziale del file, sui suoi attributi e sulla dimensione, ma non abbiamo modo di ottenere dati sui cluster successivi.
A questo punto non siamo in grado di recuperare l’intero elenco di cluster che appartenevano al file eliminato. Tuttavia, possiamo comunque tentare di recuperare il contenuto del file leggendo il primo cluster. Se il file è sufficientemente piccolo e rientra in un singolo cluster, ottimo: abbiamo appena recuperato il file. Se invece il file è più grande della dimensione di un singolo cluster, dobbiamo sviluppare un algoritmo per recuperare il resto del file.
Il sistema FAT non offre un metodo semplice per determinare quali cluster appartenevano a un file eliminato, quindi questo compito è sempre in parte congetturale. Il modo più semplice è leggere i cluster successivi a quello iniziale, ignorando se tali cluster siano o meno occupati da altri file. Per quanto possa sembrare azzardato, questo è l’unico metodo disponibile se il file system non è accessibile o è vuoto (ad esempio dopo la formattazione del disco).
L’altro metodo è più sofisticato: leggere solo le informazioni dai cluster non occupati da dati appartenenti ad altri file. Questo metodo tiene conto delle informazioni sui cluster occupati da altri file così come specificato nel file system.
È logico assumere che il secondo metodo produca risultati migliori rispetto al primo (a condizione che il file system sia disponibile e non vuoto). Il secondo metodo può persino recuperare alcuni file frammentati.
La Figura 2 mostra tre diversi scenari di recupero di un file che occupa 6 cluster del file system. La dimensione del file è di 7094 byte; la dimensione del cluster è di 2048 byte. Ciò significa che il file eliminato inizialmente occupava 4 cluster. Inoltre conosciamo l’indirizzo del cluster iniziale (cluster 56). A scopo dimostrativo, i cluster che appartenevano al file eliminato sono colorati in blu. Il colore rosso indica i cluster occupati da altri dati, mentre i cluster vuoti sono riempiti di bianco.

Figura 2. Tre scenari di recupero file.
- Nello scenario 2.A, il file occupa 4 cluster consecutivi (cioè il file non è frammentato). In questo caso il file può essere recuperato correttamente da entrambi gli algoritmi. Entrambi leggeranno correttamente i cluster da 56 a 59.
- Nello scenario 2.B, il file era frammentato e memorizzato in 3 frammenti. I cluster 57 e 60 sono utilizzati da un altro file. In questo scenario il primo algoritmo recupererà i cluster da 56 a 59, restituendo un file corrotto. Il secondo metodo recupererà correttamente i cluster 56, 58, 59 e 61.
- Nel scenario 2.C finale, il file eliminato era anch’esso frammentato (stessi cluster dello scenario 2.B). Tuttavia, i cluster 57 e 60 non sono utilizzati da nessun altro file. In questo scenario entrambi gli algoritmi recupereranno i cluster da 56 a 59, restituendo un file corrotto.
Come si può vedere, nessun metodo è perfetto, ma il secondo algoritmo offre una maggiore probabilità di successo rispetto al primo. Questo metodo è utilizzato in Hetman Partition Recovery.
Nel nostro semplice scenario abbiamo presupposto che tutte le parti del file siano ancora disponibili e non sovrascritte da altri dati. Nella realtà questo non è sempre vero. Se alcune parti di un file sono state occupate da altri file, nessun algoritmo potrà recuperare il file completamente.
Conclusione
Come abbiamo visto, il file system FAT è abbastanza semplice. Questa è esattamente la ragione per cui è così ampiamente utilizzato dai produttori di CompactFlash, Memory Stick e xD-Picture Card. Tuttavia, quando si tratta di recupero dati, FAT non è il miglior file system disponibile. Con un certo livello di frammentazione, alcuni file potrebbero non essere recuperabili indipendentemente dall’approccio scelto.
Fortunatamente, Windows non utilizza più il sistema FAT per formattare i dischi rigidi interni. L’uso di un file system molto più recente e sofisticato, NTFS, è imposto quando si formatta un disco di sistema ed è fortemente raccomandato anche per le altre partizioni. Il NTFS è un file system molto più complesso. Gli internals di NTFS saranno discussi nell’articolo successivo.

