In Windows il file system NTFS è responsabile della gestione dei file, delle cartelle e dello spazio su disco. Non esiste ovviamente solo NTFS ma è proprio il New Technology File System – e non più tanto “nuovo” ormai visto che è stato ideato da Microsoft nel lontano 1993 – che ancora oggi è il file system più utilizzato in assoluto in ambiente Windows.
Il file system è “la ricetta” con cui il sistema operativo organizza e gestisce i dati in un dispositivo di archiviazione, come un hard disk, un’unità SSD, una chiavetta USB o una scheda microSD. Definisce come vengono creati, archiviati, rinominati, modificati e cancellati i file; include regole per strutturare cartelle e permessi di accesso. Ogni file system ha le sue proprie caratteristiche, che variano in termini di sicurezza, prestazioni e supporto per diverse dimensioni di file e unità di memorizzazione.
Parlando di Windows abbiamo chiarito le differenze tra NTFS, FAT ed exFAT, specificando che il successore di NTFS è spesso considerato ReFS, supportato sia dai sistemi Windows Server che da Windows 10 e Windows 11.
Sul versante delle soluzioni di storage dei dati, ZFS (Zettabyte File System) è sempre più protagonista nelle soluzioni professionali.
Limitandoci a Windows, comunque, in molti non sono consapevoli delle funzionalità avanzate (e nascoste) di NTFS. Il file system NTFS, infatti, permette di memorizzare e recuperare successivamente “dati nascosti” (detti Alternate Data Stream), risparmiare spazio di archiviazione quando necessario, di salvare un file in maniera tale che sembri presente in più di una cartella e molto altro ancora.
Caratteristiche tecniche di NTFS
Sviluppato da Microsoft per sostituire il vecchio file system FAT (File Allocation Table) e utilizzato per la prima volta con Windows NT, NTFS è noto per le sue capacità avanzate in termini di sicurezza, gestione dello spazio su disco e affidabilità.
NTFS utilizza un journal per registrare le operazioni sul file system. Si tratta di uno schema che consente di prevenire corruzioni in caso di arresti anomali o interruzioni di corrente, poiché tutte le modifiche sono registrate prima di essere applicate al disco. In caso di errori, NTFS può ripristinare lo stato precedente delle operazioni, riducendo il rischio di perdita dei dati.
Il file system supporta dimensioni di file e volumi molto più grandi rispetto ai file system più datati come FAT32. Le dimensioni massime per un singolo file su NTFS sono di 16 TiB (Tebibyte), mentre un volume può arrivare fino a 256 TiB.
Uno degli aspetti distintivi di NTFS è il supporto per un sistema avanzato di permessi tramite Access Control List (ACL). Ogni file e cartella può avere permessi dettagliati assegnati agli utenti o gruppi, permettendo di controllare chi può leggere, scrivere o eseguire il file.
Il sistema crittografico integrato chiamato EFS (Encrypting File System) consente di cifrare file e cartelle in maniera diretta, proteggendo i dati da accessi non autorizzati.
NTFS supporta la tecnologia Hot Fixing: permette di riparare i settori danneggiati del disco sostituendoli con blocchi di riserva. Un’utile accortezza per evitare la perdita di dati in caso di settori fisici danneggiati.
Di seguito presentiamo alcune delle caratteristiche tecniche meno conosciute di NTFS, spiegando come sia possibile trarne vantaggio.
Alternate Data Stream (ADS)
Gli Alternate Data Streams (ADS) di NTFS sono informazioni aggiuntive, nascoste, che possono essere specificate come attributo addizionale di un qualunque file.
Gli ADS si portano dietro una nomea non proprio incoraggiante perché sono spesso collegati con l’attività di alcuni malware. Soprattutto in passato, infatti, alcuni componenti dannosi usavano nascondere informazioni necessarie per il loro funzionamento ricorrendo proprio agli ADS.
Le principali soluzioni antimalware, nel frattempo, si sono fatte molto più furbe e sono in grado di effettuare una scansione completa del sistema esaminando anche il contenuto degli eventuali ADS.
In generale, però, gli ADS sono utilizzati per finalità assolutamente legittime: il browser e il sistema operativo, ad esempio, annotano la provenienza dei file in modo da allertare l’utente allorquando la loro apertura potesse nascondere un’insidia.
Come verificare gli ADS presenti nelle cartelle
Aprendo il prompt dei comandi con diritti di amministratore (digitare cmd
nella casella di ricerca di Windows quindi scegliere Esegui come amministratore) e scrivendo dir /r
si otterrà elenco degli ADS eventualmente utilizzati nella cartella corrente.
Il comando seguente, per esempio, permetterà di ottenere una lista degli ADS utilizzati sull’intera unità C:. Può essere necessario attendere diversi minuti affinché l’operazione sia completata:
Il file ads.txt
potrà poi essere eliminato dalla cartella %userprofile%
.
Quanti ADS nella cartella Download di Windows: ecco perché
Il nostro suggerimento è quello di portarvi ad esempio nella cartella Download di Windows, tenere premuto il tasto MAIUSC
quindi cliccare con il tasto destro su un’area libera e scegliere Apri finestra PowerShell qui.
Si provi quindi a digitare cmd
e poi dir /r
. Windows restituisce diversi file che hanno un corrispettivo con lo stesso nome e il suffisso :Zone.Identifier:$DATA
. Sono proprio file con un ADS “allegato”.
Digitando ad esempio more < nomefile.zip:Zone.Identifier
si leggerà il contenuto dell’ADS per il file specificato.
Come si vede, l’ADS indica non soltanto che il file è stato scaricato dalla rete Internet (l’ID 3 si riferisce appunto a Internet; vedere anche questo post) ma riporta referrer URL e indirizzo completo dal quale il file è stato scaricato.
La lettura del contenuto degli ADS può essere effettuata anche via PowerShell usando il comando Get-Content nomefile.zip -Stream Zone.Identifier
.
Con Remove-Item
è possibile rimuovere gli ADS. Rimuoverli alla cieca non è però affatto una buona idea: basti pensare che il client di Dropbox memorizza, ricorrendo agli ADS, informazioni di appoggio sui file sincronizzati con i suoi server cloud.
Compressione file con NTFS
Per risparmiare spazio su qualunque unità di memorizzazione, il file system NTFS può comprimere file. Si tratta di un comportamento completamente trasparente per le applicazioni: il sistema operativo si assicura che i dati siano compressi al bisogno e siano automaticamente ripristinati al momento dell’utilizzo da parte delle applicazioni in esecuzione.
Le applicazioni non si accorgono di nulla ma i tempi di attesa possono aumentare: le attività di compressione e decompressione dei dati costano molto in termini di impatto sulla CPU.
Quanto spazio può essere salvato dipende dal tipo di dati: nel caso dei file di testo puro c’è ovviamente ampio margine di manovra, ma con gli archivi già compressi (ad esempio .zip, .7z o .rar) oppure con le immagini JPEG non si otterranno benefici. Anzi, l’operazione potrebbe risultare controproducente.
Ad ogni modo, con il file system NTFS l’utente può fare clic con il tasto destro del mouse su una cartella contenente dati quindi cliccare su Avanzate e spuntare la casella Comprimi contenuto per risparmiare spazio su disco.
Da prompt dei comandi è possibile usare il comando compact
per richiedere la compressione del contenuto di una cartella. Digitare compact /?
per ottenere la lista completa degli switch utilizzabili.
Hard link e collegamenti simbolici con NTFS
Uno stesso file può essere accessibile su un’unità NTFS con più nomi e anche in più cartelle senza occupare spazio aggiuntivo.
I cosiddetti hard link sono disponibili solo per i file (non per le cartelle) e devono sempre riferirsi a file presenti sullo stesso volume. Il meccanismo è semplice e consiste nella creazione di una nuova voce a livello di file system per un file che esiste già.
Per creare un hard link si possono usare, alternativamente, i comandi seguenti. I primi due funzionano dal normale prompt dei comandi di Windows, l’ultimo da PowerShell:
mklink /h hardlink.exe filesistente.exe
fsutil hardlink create hardlink.exe filesistente.exe
New-Item -ItemType HardLink -Name hardlink.exe -Value filesistente.exe
Nell’esempio abbiamo fatto riferimento a un ipotetico file con estensione .exe ma è ovviamente possibile riferirsi a qualunque tipo di file; inoltre, filesistente.exe
è il nome del file che già esiste (con relativo percorso) mentre hardlink.exe
è il nome del collegamento che si riferisce a tale file.
Cosa c’è da sapere sugli hard disk e sul loro utilizzo in Windows
Va infine evidenziato che gli hard link funzionano bene solo per i file che non cambiano mai: se un’applicazione interviene su un file, ad esempio eliminandolo e poi ricreandolo, il “giochetto” non funzionerà più.
Microsoft fa un uso intensivo degli hard link durante l’installazione di Windows: molti dei file di sistema finiscono inizialmente nelle sottocartelle di \Windows\WinSxS
e da lì smistati verso le directory di sistema vere e proprie come \Windows
e \Windows\System32
proprio usando la tecnica illustrata.
Link simbolici: quando sono utili
I soft link o link simbolici sono un altro strumento che talvolta può tornare molto utile sui sistemi Windows. I link simbolici (detti anche symlink) possono fare riferimento sia ai file che alle cartelle. Inoltre, diversamente rispetto agli hard link, la destinazione cui viene fatto riferimento non deve necessariamente trovarsi sulla stessa unità in cui è creato il collegamento. Inoltre, si può anche fare riferimento a risorse memorizzate su un’unità collegata in rete locale.
Link simbolici si possono creare usando i seguenti comandi. Il primo crea un link simbolico su file:
Questo secondo comando crea un link simbolico su una cartella:
È anche possibile ricorrere alla seguente sintassi PowerShell:
Immaginate di dover spostare un programma da C: a D: o verso altre unità, semplicemente perché sull’unità di sistema lo spazio comincia a scarseggiare. I link simboli permettono di reindirizzare tutte le richieste verso la cartella originale (situata su C:) verso un altro percorso. Così facendo, tutti i riferimenti al programma spostato rimarranno inalterati (si pensi alle occorrenze presenti nel registro di sistema e in altri file di configurazione) ma l’applicazione funzionerà senza problemi dal nuovo percorso.
Gestione delle quote con NTFS
Un’altra caratteristica poco conosciuta di NTFS è la possibilità di gestire le quote ovvero definire lo spazio massimo che i vari account utente configurati sulla macchina Windows in uso possono utilizzare.
Per procedere in tal senso basta premere la combinazione di tasti Windows+E
, cliccare con il tasto destro del mouse su un’unità e scegliere Proprietà. Selezionando la scheda Gestione quote quindi cliccando sul pulsante Mostra impostazioni quote, è possibile definire lo spazio che ciascun utente può al massimo impegnare.
Utilizzando le apposite spunte, si può anche chiedere a Windows di annotare nel registro degli eventi ogni volta che un utente si avvicinasse alla quota stabilita o quando lo spazio concesso si esaurisse.
Conclusioni
Il file system NTFS è potente e versatile, con una vasta gamma di funzionalità che lo rendono adatto sia per uso personale che per gli ambienti aziendali e server. Anche se, soprattutto in ambito business, lo sguardo è rivolto verso altre soluzioni, la gestione avanzata dello spazio, le funzionalità di sicurezza, quelle crittografiche, il supporto per file di grandi dimensioni e la resilienza agli errori, offrono comunque ottime garanzie anche ai giorni nostri.
Di NTFS si contano cinque versioni principali dal momento del primo rilascio (ognuna di esse risulta retrocompatibile). Quella più recente è NTFS V5.1, rilasciata con Windows nell’autunno 2001. Improbabile che possano comparire ulteriori nuove versioni: più probabile, invece, il sempre più convinto investimento su ReFS.