Ricerca di file nei sistemi FAT

Esplora le complessità della ricerca di file all’interno dei sistemi FAT con questa guida completa. Sia che tu sia un principiante o un utente avanzato, otterrai indicazioni preziose per padroneggiare le tecniche di ricerca file nei sistemi FAT. Strategie esperte e procedure passo passo per migliorare l’esperienza di ricerca dei file nei sistemi FAT.

Ricerca di file nei sistemi FAT

File system FAT

Questo file system è piuttosto semplice rispetto agli standard odierni. Non offre alcun tipo di gestione dei permessi né meccanismi integrati di rollback o recovery delle transazioni. Non dispone nemmeno di compressione o crittografia integrate. Eppure è molto diffuso in molte applicazioni. Il sistema FAT è così semplice da implementare, richiede così poche risorse e impone un overhead così ridotto che risulta insostituibile per un’ampia gamma di applicazioni mobili.

La FAT è utilizzata nella maggior parte delle fotocamere digitali. La maggior parte delle schede di memoria (ad esempio miniSD, microSD) usate in lettori multimediali, smartphone e tablet sono formattate con FAT. Anche i dispositivi Android accettano schede di memoria formattate con il file system FAT. In altre parole, nonostante l’età, FAT è ancora ampiamente utilizzato.

Caratteristica Descrizione
Abbreviazione FAT (File Allocation Table).
Sviluppatore Microsoft.
Struttura principale
  • Settore di avvio: contiene informazioni sul file system e il codice di avvio.
  • Tabella FAT: gestisce l’allocazione dei dati sul disco.
  • Directory radice: memorizza record relativi a file e cartelle.
  • Area dati: lo spazio in cui sono memorizzati i dati dei file.
Principali versioni
  • FAT12: per dispositivi con capacità di archiviazione ridotta (fino a 16 MB).
  • FAT16: supporta dischi fino a 2 GB.
  • FAT32: supporta dischi fino a 2 TB.
Vantaggi
  • Implementazione semplice.
  • Compatibilità con la maggior parte dei sistemi operativi.
  • Supporto per supporti rimovibili (USB, schede SD).
Svantaggi
  • Limitazione della dimensione dei file (fino a 4 GB per FAT32).
  • Affidabilità e protezione dei dati limitate.
  • Problemi di prestazioni su dispositivi di archiviazione di grandi dimensioni.
Ambiti di applicazione Dispositivi di archiviazione rimovibili, sistemi con capacità di memoria limitata.

Recupero delle informazioni dai volumi FAT

Se il sistema FAT è così popolare, deve esistere la necessità di strumenti di recupero dati che lo supportino. In questo articolo condivideremo l’esperienza acquisita durante lo sviluppo di uno strumento di recupero dati, Hetman Partition Recovery.

Lo strumento recupera i file da qualsiasi dispositivo, indipendentemente dal motivo della perdita di dati.

Prima di addentrarci nell’interno del file system, vediamo brevemente perché il recupero dei dati è possibile. In realtà, il sistema operativo (Windows, Android o qualsiasi altro sistema utilizzato in una fotocamera digitale o in un lettore multimediale) non cancella o distrugge effettivamente le informazioni quando un file viene eliminato. Invece, il sistema segna un record nel file system per indicare che lo spazio su disco precedentemente occupato dal file è disponibile. Il record stesso viene contrassegnato come eliminato. Questo metodo è molto più veloce rispetto alla cancellazione effettiva del contenuto del disco e riduce l’usura.

Come puoi vedere, il contenuto effettivo di un file rimane disponibile da qualche parte sul disco. Questo è ciò che permette agli strumenti di recupero dati di funzionare. La domanda ora è come identificare quali settori sul disco contengono le informazioni appartenenti a un file particolare. Per farlo, uno strumento di recupero dati può analizzare il file system oppure scansionare l’area di contenuto del disco alla ricerca di file eliminati confrontando il contenuto grezzo con un database di firme predefinite.

Vai a vedere
Come recuperare file da una chiavetta USB infetta da virus

Come recuperare file da una chiavetta USB infetta da virus

Questo secondo metodo è spesso chiamato “ricerca per firma” o “analisi basata sul contenuto”. Nelle applicazioni forensi, lo stesso approccio è chiamato “carving”. Qualunque sia il nome, gli algoritmi sono molto simili. Scansionano l’intera superficie del disco alla ricerca di firme caratteristiche che identifichino file di determinati formati supportati. Una volta rilevata una firma nota, l’algoritmo esegue un controllo secondario, quindi legge e analizza quella che sembra essere l’intestazione del file. Analizzando l’intestazione, l’algoritmo può determinare la lunghezza esatta del file. Leggendo i settori del disco che seguono l’inizio del file, l’algoritmo recupera ciò che presume essere il contenuto di un file eliminato.

Se segui con attenzione, avrai già notato diversi problemi con questo approccio. Funziona estremamente lentamente e può identificare solo un numero finito di formati di file noti (supportati). Ancora più importante, questo approccio presuppone che i settori del disco che seguono l’intestazione del file appartengano a quel file specifico, il che non è sempre vero. I file non sono sempre memorizzati in maniera contigua. Il sistema operativo può scrivere blocchi nei primi cluster disponibili sul disco. Di conseguenza, il file può essere frammentato in più parti. Recuperare file frammentati con la ricerca per firma è una questione di fortuna: i file brevi e deframmentati sono solitamente recuperabili senza problemi, mentre i file lunghi e frammentati possono non essere recuperati o risultare danneggiati dopo il recupero.

In pratica, la ricerca per firma funziona abbastanza bene. La maggior parte dei file importanti per l’utente sono documenti, immagini e altri file relativamente piccoli. È vero che un video di lunga durata potrebbe non essere recuperato, ma un documento tipico o un’immagine JPEG di solito ha dimensioni inferiori alla soglia di frammentazione e viene recuperato abbastanza bene.

Tuttavia, se è necessario recuperare file frammentati, lo strumento deve combinare le informazioni ottenute dal file system con quelle raccolte durante la scansione del disco. Questo, ad esempio, permette di escludere cluster già occupati da altri file, il che, come vedremo nel capitolo successivo, migliora notevolmente la probabilità di un recupero riuscito.

Utilizzo delle informazioni dal file system

Vai a vedere
Come recuperare dati da un hard disk esterno Mac

Come recuperare dati da un hard disk esterno Mac

Come abbiamo visto, la sola ricerca per firma funziona bene se non rimane alcun file system sul disco, o se il file system è così gravemente danneggiato da risultare inutilizzabile. In tutti gli altri casi, le informazioni ottenute dal file system possono migliorare notevolmente la qualità del recupero.

Prendiamo un file di grandi dimensioni che dobbiamo recuperare. Supponiamo che il file fosse frammentato (come tipico per file di grandi dimensioni). Usare semplicemente la ricerca per firma porterà al recupero solo del primo frammento del file; gli altri frammenti non verranno recuperati correttamente. È quindi essenziale determinare quali settori sul disco appartengono a quel file specifico.

Windows e altri sistemi operativi determinano a quali file appartengono quali settori enumerando i record nel file system. I record del file system contengono informazioni su quali settori appartengono a ciascun file.

Ricerca di un file system

Partizioni del disco rigido

Immagine 1. Partizioni del disco rigido.

Prima di analizzare il file system, dobbiamo identificarne e localizzarne uno. Ma prima di cercare un file system, vediamo come Windows gestisce le partizioni.

In Windows, i dischi sono descritti da un sistema di partizionamento contenente una o più tabelle. Ogni tabella descrive una singola partizione. Il record contiene l’indirizzo iniziale della partizione e la sua lunghezza. È specificato anche il tipo di partizione:

  • Il disco rigido è suddiviso in tre partizioni con le rispettive etichette di volume.

  • Questa tabella contiene informazioni sul tipo, sull’inizio e sulla fine di ciascuna partizione.

Per individuare il file system, lo strumento di recupero dati deve analizzare la tabella delle partizioni, se ancora disponibile. Ma cosa succede se non è rimasta alcuna tabella delle partizioni, o se il disco è stato ripartizionato e la nuova tabella non contiene più informazioni sul volume eliminato? In tal caso lo strumento eseguirà una scansione del disco per identificare tutti i file system disponibili.

Partizione Inizio Fine Tipo
Sistema (C:) 0 199 NTFS
Archivio (D:) 200 399 FAT
Lavoro (E:) 400 599 FAT

Tabella 1. Tabella delle partizioni.

Quando si cerca un file system, l’algoritmo presume che ogni volume logico contenesse un file system. La maggior parte dei file system può essere identificata cercando una specifica firma persistente. Ad esempio, il file system FAT è identificato dai valori registrati nei byte 510 e 511 del settore iniziale. Se i valori presenti in quegli indirizzi sono 0х55 e 0хАА, lo strumento eseguirà un controllo secondario.

Il controllo secondario permette allo strumento di assicurarsi di aver trovato effettivamente un file system e non una coincidenza casuale. Il controllo secondario valida determinati valori utilizzati dal file system. Per esempio, uno dei record disponibili nel sistema FAT identifica il numero di settori contenuti in un cluster. Questo valore è sempre rappresentato come una potenza di due. Può essere 1, 2, 4, 8, 16, 32, 64 o 128. Se in quell’indirizzo è memorizzato qualsiasi altro valore, la struttura non è un file system.

L’articolo “Algoritmo di recupero dei file da un disco FAT” spiega il processo di ricerca del contenuto di un file eliminato e fornisce alcuni esempi.

Anton Kryvoruchko

Autore: , Scrittore tecnico

Anton Kryvoruchko è traduttore dall'italiano, dall'inglese, dal francese e dal polacco. Ha molti anni di esperienza e lavora con testi di vario argomento: dalla narrativa e testi tecnici alle riviste scientifiche popolari. Lavora costantemente per migliorare le sue conoscenze e competenze, perciò nel tempo libero impara anche il tedesco e lo spagnolo.

Mykhailo Miroshnichenko

Editore: , Scrittore tecnico

Mykhaylo Miroshnychenko è uno dei programmatori principali di Hetman Software. Avendo già quindici anni di esperienza nello sviluppo di software condivide le sue conoscenze con i lettori del nostro blog. Oltre alla programmazione, Mykhaylo è anche un esperto di recupero di dati, di file system, di dispositivi di archiviazione e di array RAID.