Ogniqualvolta ci si accinge a formattare un hard disk od in generale un’unità per la memorizzazione dei dati di qualunque genere, Windows propone l’utilizzo di uno dei seguenti tre file system: NTFS, FAT32 ed exFAT.
Qual è, però, la differenza tra NTFS, FAT32 e exFAT e come scegliere un file system piuttosto che un altro?
Che cos’è il file system
Ogni sistema operativo supporta alcuni file system ma non è escluso che possa leggere anche gli altri, spesso utilizzando qualche componente aggiuntivo (di solito appositi driver).
Il file system stabilisce in che modo i file vengono salvati ed organizzati all’interno del disco fisso, di un’unità flash, di un’unità SSD ed in generale in un qualunque supporto di memorizzazione. Ogni unità contiene una o più partizioni e ciascuna di esse può essere formattata, eventualmente, con un file system differente.
Un file system, inoltre, offre una sua “ricetta” per la conservazione delle informazioni relative a ciascun file ad esempio nomi, permessi ed altri attributi. Grazie ad un apposito indice, il file system può indicare al sistema operativo dove ciascun file è memorizzato in modo che non sia necessario ricercarlo effettuando una estenuante indagine sull’intero disco.
Non tutti i file system sono uguali: alcuni sono più prestazionali rispetto ad altri, certi dispongono di alcune caratteristiche di sicurezza aggiuntive, altri ancora sono in grado di supportare unità di memorizzazione di grandissime dimensioni.
Differenza tra NTFS, FAT32 e exFAT
Tra i file system supportati di default da parte di Windows, FAT32 è quello più vecchio. È stato infatti introdotto nella versione OSR2 di Windows 95 per rimpiazzare l’ancor più “datato” FAT16.
La sua anzianità fa sì, comunque, che FAT32 sia ancora oggi uno standard di fatto. Le unità flash che si acquistano sono spesso pre-formattate FAT32 così da garantire massima compatibilità con tutti i dispositivi in circolazione (quindi anche con i computer più vecchi, le console di gioco ed i dispositivi multimediali dotati di porta USB).
FAT32
La limitazione sicuramente più stringente del file system FAT32 è l’impossibilità di gestire file di dimensioni superiori a 4 GB.
Per quanto concerne la dimensione massima della partizione FAT32, in Windows 2000 ed in Windows XP era impossibile, di default, creare partizioni di dimensioni maggiori di 32 GB. Utilizzando utilità di terze parti, tuttavia, è possibile superare tale limite arrivando alla soglia teorica degli 8 TB.
Windows XP, per esempio, non consentiva di creare partizioni FAT32 di dimensioni superiori ai 32 GB ma consentiva comunque la lettura e la gestione di quelle più capienti.
FAT32 può essere ancor’oggi la scelta giusta per formattare un’unità USB che deve essere leggibile da quanti più dispositivi possibile (il file system FAT32 è compatibile con tutti i device, con tutte le varie versioni di Windows, Mac OS X e Linux ed in generale con qualunque dispositivo sia dotato di una porta USB).
È altamente sconsigliato usare FAT32 per le unità disco “interne” perché il file system manca della gestione dei permessi e di tutta una serie di funzionalità di sicurezza che sono ad esempio proprie del più moderno NTFS.
FAT32 può essere quindi ancora la scelta giusta per formattare le chiavette USB a patto ovviamente di non avere file di dimensioni superiori ai 4 GB da memorizzarvi.
NTFS
Il file system NTFS è la scelta giusta per formattare hard disk interni ed esterni. Le “asticelle” poste da NTFS sono talmente elevate, che il file system non crea problemi per la memorizzazione di nessun genere di file.
Rispetto ai precedenti file system Microsoft, infatti, NTFS può memorizzare file di dimensioni fino a 16 TB e può supportare partizioni fino a 256 TB di dimensione.
Portato al debutto in Windows NT 4.0 (NTFS 4.0) ed in Windows 2000 (NTFS5), NTFS ha ricevuto la sua “consacrazione” su scala planetaria con il lancio di Windows XP (NTFS V5.1).
NTFS integra l’utilizzo di un journal ossia di un meccanismo che tiene traccia delle modifiche apportate al file system. Se un’operazione venisse interrotta a metà (ad esempio in seguito alla mancanza di energia elettrica), NTFS perde solo tale operazione evitando però che venga compromessa l’integrità del file system.
Il file system, poi, consente l’assegnazione di permessi a file e directory, supporta la crittografia, permette l’uso dei nomi lunghi per i file (fino a 255 con la possibilità di caratteri Unicode, utili per rappresentare i caratteri usati in qualunque lingua al mondo) e dei cosiddetti hard links (associazione del nome di un file al suo contenuto).
NTFS, comunque, non è compatibile con tutti i sistemi operativi. Di default, ad esempio, Mac OS X può leggere da unità NTFS ma non scrivervi mentre molte distribuzioni Linux consentono oggi l’accesso anche in scrittura.
Purtuttavia, come spiegato nell’articolo Accedere alle partizioni Linux da Windows: condivisione delle cartelle e file system, l’utilizzo di Samba in Linux e quindi l’accesso alle cartelle condivise – seppur memorizzate su NTFS – attraverso la rete locale resta probabilmente la migliore soluzione.
Nell’articolo Windows: convertire rapidamente un’unità FAT32 in NTFS avevamo a suo tempo spiegato come trasformare velocemente un’unità FAT32 in NTFS.
Nonostante NTFS rappresenti un deciso passo in avanti rispetto ai file system Microsoft di vecchia concezione come FAT16 e FAT32, esso rimane piuttosto datato.
NTFS è un file system concepito nei primi anni ’90 ed è più lento sia in lettura che in scrittura se paragonato con altri file system, utilizzati in ambienti Linux e Unix-like, come ext3, ext4, XFS ed altri.
exFAT
Il file system exFAT è stato introdotto nel 2006 ed il suo supporto è stato introdotto anche nelle versioni più vecchie di Windows, attraverso appositi aggiornamenti (si pensi a Windows Vista e Windows XP).
exFAT è stato espressamente progettato per le unità flash come sostituto di FAT32. Esso, infatti, si conferma una file sytem leggero come FAT32, senza però le limitazioni di quest’ultimo e senza le caratteristiche “extra” che contraddistinguono NTFS.
Conosciuto anche con l’appellativo di FAT64, exFAT consente la memorizzazione di file di dimensioni superiori a 4 GB (il limite teorico passa a 16 exabyte ossia 264 bytes).
exFAT è inoltre maggiormente supportato rispetto ad NTFS da parte degli altri sistemi operativi: Mac OS X permette l’accesso in lettura e scrittura alle partizioni exFAT ed in Linux basta installare l’apposito software dai repositories (exfat-utils
e exfat-fuse
).
La console di gioco Xbox 360 non supporta exFAT mentre la Xbox One sì. Allo stesso modo, la PlayStation 3 non permette l’uso di unità exFAT mentre la PlayStation 4 offre tale possibilità.
Il successore di NTFS: ReFS
In casa Microsoft il successore di NTFS si chiama ReFS (Resilient File System). Nuovo file system Microsoft è stato per il momento portato al debutto solamente in Windows Server 2012 nonostante sia attivabile anche in Windows 8.1 e Windows 10 mediante una modifica sulla configurazione del registro di sistema.
I metadati e i file sono memorizzati in B+Tree: ReFS utilizza cioè una struttura gerarchica a tabelle simile ai database relazionali.
I riferimenti alle directory sono stivati in una tabella principale, detta Object Table. Per le directories vengono conservate singole tabelle contenenti i riferimenti ai singoli file; ciascun file viene poi posto in associazione con una tabella che ospita le informazioni addizionali (metadati).
ReFS integra anche le cosiddette funzionalità di resilienza: non v’è quindi più bisogno di usare utilità per il controllo della presenza di errori (CHKDSK). Il file system, in caso di copie di file danneggiate, penserà automaticamente a ripristinarne la versione corretta.
Inoltre, il nuovo file system Microsoft contribuisce a migliorare notevolmente le prestazioni sia in fase di lettura che in fase di scrittura. Gran parte delle caratteristiche di NTFS, inoltre, sono disponibili in ReFS garantendo una parziale retrocompatibilità del file system.
Per il momento ReFS non è stato ancora considerato pronto per il debutto sui sistemi client (nonostante in Windows 8.1 il supporto sia attivabile manualmente usando questo file di registro) ma quando il file system sarà giudicato maturo, Microsoft ne estenderà il supporto anche a Windows 7.
Dimensioni unità di allocazione
Quando si formatta un’unità disco, Windows chiede non soltanto di selezionare il file system prescelto ma anche di specificare le dimensioni unità di allocazione. Di che si tratta?
Il disco è suddiviso in cluster ed il campo dimensioni unità di allocazione consente di stabilire quanto dev’essere grande ogni singolo cluster.
Il file system tiene traccia di quali cluster risultano occupati e quali invece sono liberi.
Se un frammento di un qualunque file occupa una porzione del singolo cluster, il cluster viene comunque riportato come occupato.
Cluster di grandi dimensioni possono avere come conseguenza lo spreco di spazio mentre cluster eccessivamente piccoli possono rallentare l’accesso ai dati dal momento che servirà più tempo per riassemblare i tanti frammenti di un unico file.
Nell’articolo Dimensioni e dimensioni su disco: che differenza c’è nella memorizzazione dei file? abbiamo svelato “l’arcano” spiegando perché, se si osserva la finestra delle proprietà di qualunque file in Windows, le voci Dimensioni e Dimensioni su disco riportano valori in bytes differenti.
Se si prevede di formattare un’unità che dovrà accogliere file di grandi dimensioni è in generale preferibile selezionare valori elevati come “Dimensioni unità di allocazione”.
Se l’unità di memorizzazione fosse poco capiente, è preferibile scegliere valori ridotti in termini di Dimensioni unità di allocazione.
Per un’unità USB da 512 MB, per esempio, si possono impostare 512 byte mentre per un hard disk esterno da 1 TB o più 64 KB.
Di default Windows propone un valore intermedio pari a 4.096 bytes (4 KB).