Esplorazione dei file sparsi su Windows, Linux, macOS e nei file system
Nell’articolo di oggi approfondiamo il mondo dei file sparse su Windows, Linux, macOS e diversi file system. Scopri insieme a noi i segreti dei file sparse, con approfondimenti, suggerimenti e trucchi per comprenderli e utilizzarli efficacemente. Che tu sia un principiante o un utente esperto, questo articolo ti fornirà conoscenze utili per migliorare la comprensione dei file sparse e delle loro implicazioni nei diversi sistemi operativi.

- La differenza tra compressione e file sparse
- Pro e contro
- Creare un file sparse in Windows
- Come creare un file sparse in Linux
- Come espandere un file
- File sparse in APFS
- Come recuperare dati da questo tipo di file
- Conclusione
- Domande e risposte
- Commenti
I file sparse sono file speciali che utilizzano il file system in modo più efficiente ed evitano che il file system occupi spazio libero su disco quando non è riempito da dati reali. In altre parole, lo “spazio libero su disco” viene utilizzato solo quando necessario. I dati “vuoti” sotto forma di zeri vengono memorizzati nei blocchi di metadati del file system. Per questo motivo i file sparse occupano originariamente meno spazio rispetto alla loro dimensione reale.

Questo tipo di file è supportato dalla maggior parte dei file system: BTRFS, NILFS, ZFS, NTFS[2], ext2, ext3, ext4, XFS, JFS, ReiserFS, Reiser4, UFS, Rock Ridge, UDF, ReFS, APFS, F2FS.
Tutti questi file system supportano completamente questo tipo, ma allo stesso tempo non forniscono accesso diretto alle loro funzioni tramite l’interfaccia standard. È possibile gestirne le proprietà solo tramite la riga di comando.
La differenza tra compressione e file sparse
Tutti i file system menzionati in precedenza supportano anche la funzione standard di compressione. Entrambi gli strumenti offrono il vantaggio di risparmiare spazio su disco, ma raggiungono questo obiettivo in modi diversi. Il principale svantaggio dell’utilizzo della compressione dei file è l’impatto sulle prestazioni del sistema durante la lettura o la scrittura di tali file, poiché il sistema richiede risorse aggiuntive per comprimere o decomprimere i dati. Inoltre, alcuni prodotti software non supportano la compressione.
Come accedere ai file system Windows e MacOS da Linux
Pro e contro
Il vantaggio più grande dei file sparse è che gli utenti possono creare file di dimensioni molto grandi che occupano pochissimo spazio su disco. Lo spazio per archiviare i dati viene allocato automaticamente man mano che si scrive più informazioni. I file sparse di grandi dimensioni vengono creati relativamente in fretta perché il file system non deve preallocare lo spazio su disco per scrivere zeri.
Tuttavia, i vantaggi dei file sparse sono limitati alle applicazioni che li supportano. Se un determinato programma non è in grado di riconoscere o usare tali file, salverà il file sparse nella sua forma originale – non compressa – e non ci sarà alcun vantaggio. Gli utenti devono essere cauti quando gestiscono questi file: un file sparse di pochi megabyte può improvvisamente trasformarsi in un mostro di diversi gigabyte quando un’applicazione che non supporta questo tipo di file lo copia in una directory.
Un altro svantaggio è che non si può copiare o creare un file sparse se la sua dimensione nominale supera la quantità di spazio libero disponibile (o i limiti di quota applicati agli account utente nel sistema operativo). Ad esempio, se la dimensione originale di un file sparse (inclusi tutti i byte zero) è 500 MB e il limite di quota per l’account utente dove viene creato questo file è solo 400 MB, tale situazione genera un errore, anche se lo spazio effettivamente occupato su disco da questo file sparse è solo 50 MB.
Per quanto riguarda i dischi su cui tali dati sono memorizzati, anch’essi sono soggetti a frammentazione, perché il file system scriverà i dati nei file sparse quando necessario. Col tempo ciò può comportare una riduzione delle prestazioni. Inoltre, alcune utility di gestione disco possono avere problemi a visualizzare correttamente lo spazio libero su disco. Quando il file system che contiene file di questo tipo è quasi senza spazio libero, ciò può portare a situazioni imprevedibili. Ad esempio, può generare problemi di riempimento del disco quando i dati vengono copiati su una parte esistente del file marcata come sparse.
| Vantaggi | Svantaggi |
|---|---|
| Uso efficiente dello spazio su disco poiché i file occupano solo i blocchi effettivamente utilizzati | Rischio di perdita di dati se il disco diventa pieno, poiché il file può essere scritto parzialmente |
| Maggiore velocità nella creazione di file di grandi dimensioni | Non tutti i file system supportano i file sparse |
| Risparmio di spazio quando si lavora con backup e file di grandi dimensioni | L’uso dei file sparse può portare a frammentazione dei dati sul disco |
| Possibilità di creare e allocare rapidamente grandi quantità di spazio su disco | Il monitoraggio dell’effettivo utilizzo dello spazio disco può essere più complicato |
| Supportato da molti sistemi operativi e piattaforme di virtualizzazione | Richiede una gestione più attenta dello spazio su disco per evitare problemi |
Creare un file sparse in Windows
In Windows useremo il prompt dei comandi a questo scopo. Digita “cmd” nel campo di ricerca ed eseguilo come Amministratore.
In Windows i file sparse vengono gestiti con l’ausilio dello strumento fsutil (utility del file system). Quando il comando create viene eseguito, per impostazione predefinita crea un file che non è sparse. Vai nella cartella dove devi creare il file e digita quanto segue:
fsutil file createnew sparse-file 1000000000
Dove sparse-file è il nome del file e il numero finale è la dimensione del file in byte.

Per assegnare l'attributo “sparse” al file, usa questo comando:
fsutil sparse setflag sparse-file

Ecco il comando per rimuovere questo attributo:
fsutil sparse setflag sparse-file 0

Ecco un altro comando se vuoi riattivare quell'attributo:
fsutil sparse setflag sparse-file
Verifichiamo:
fsutil sparse queryflag sparse-file

L'attributo da solo non permette di iniziare a risparmiare spazio su disco. Per farlo, è necessario impostare l'area vuota che deve essere liberata all'interno del file.
Digita questo per impostare lo spazio vuoto:
fsutil sparse setrange sparse-file 0 1000000000

Alla fine del comando l'offset e la lunghezza sono dati in byte. Nel mio caso, questo è l'intervallo da zero a 1 GB.
Per impostare un file completamente sparse, specifica l'intera capacità. Puoi espandere il file se necessario digitando un valore maggiore.
Per assicurarti che il file abbia questo attributo, esegui il comando layout
fsutil file layout sparse-file

L'attributo sparse può essere assegnato a qualsiasi file semplicemente eseguendo questo comando con il nome del file corrispondente.
Nelle proprietà del file che abbiamo creato prima, puoi vedere che con una dimensione di 1 GB questo file occupa 0 byte su disco.
Questa serie di comandi funziona con tutti i file system di Windows che supportano i file sparse (NTFS, ReFS, e così via).
Come creare un file sparse in Linux
In Linux il processo di creazione di questo tipo di file è un po' più semplice, poiché esistono diversi comandi per crearli. Funzionano correttamente con tutti i file system Linux.
Qui puoi usare uno dei seguenti comandi: dd o truncate.
Il primo comando è il seguente:
dd if=/dev/zero of=file-sparse bs=1 count=0 seek=2G
Dove “file-sparse” è il nome del file e il numero finale è la dimensione che può essere specificata in byte, megabyte, ecc.

Il secondo comando è più semplice:
truncate -s2G file-sparse
Dove il valore “-s” indica la dimensione del file ed è seguito dal nome del file.

Contrariamente a Windows, quando crei un file con uno di questi comandi, sarà di default un file sparse.
Per trasformare un file normale in uno sparse esiste un comando specifico:
cp --sparse=always ./025.jpg ./0251.jpg
Dove 025.jpg è il nome del primo file, quello ordinario,
e 026.jpg è il nome del secondo file, quello sparse.

Come espandere un file
Se hai bisogno di espandere un file esistente, usa il primo comando qui sotto: sostituisci il nome e specifica la dimensione necessaria.
dd if=/dev/zero of=025.jpg bs=1 count=0 seek=2G
Questo comando aumenterà la sua dimensione a 2 GB.

Usa il seguente comando per controllare la dimensione:
du -h --apparent-size 025.jpg

File sparse in APFS
In realtà questa serie di comandi funziona anche con il file system Apple – APFS, poiché Linux e macOS sono basati sull'architettura core Unix e forniscono entrambi accesso ai comandi Unix e alla shell Bash.
Avvia il Terminale ed esegui uno qualsiasi dei comandi per creare un file sparse che ho appena mostrato per Linux.
In macOS Catalina è supportato solo il primo comando, e la dimensione deve essere fornita in byte, altrimenti il comando genererà un errore.
sudo dd if=/dev/zero of=sparse_APFS bs=1 count=0 seek=1000000000

Quando si osservano determinate condizioni, il file system APFS crea file sparse di default, quindi puoi espandere qualsiasi file con il comando usato per aumentare la dimensione dei file sparse in Linux:
dd if=/dev/zero of=187.jpg bs=1 count=0 seek=500000000
Impostiamo la dimensione a 500 MB e ricorda che in macOS questa dimensione deve essere specificata in byte.
Quando esegui il comando e apri le proprietà del file, puoi vedere che la sua dimensione è aumentata a 500 MB.
Come recuperare dati da questo tipo di file
Se hai rimosso alcuni file o hai formattato un disco con informazioni importanti, e quei file si sono rivelati essere file sparse, mantieni la calma e procedi con Hetman Partition Recovery o Hetman RAID Recovery. I nostri prodotti possono lavorare con file sparse in tutti i sistemi operativi e file system menzionati in questo articolo. Scarica, installa ed esegui il programma per scandire il disco.

Come puoi vedere, questo programma può trovare facilmente sia i file sparse esistenti che quelli eliminati e ne visualizza il contenuto. Aprendo il file nell'editor HEX puoi verificare che sia riempito di zeri.

Il programma è riuscito a trovare file sparse precedentemente rimossi sul disco utilizzando i file system NTFS, REFS, BtrFS, Ext3, Ext4 e APFS. Ora tutto ciò che devi fare è cliccare sul pulsante “Recovery”.
Quando il processo è terminato, tutte le informazioni saranno collocate nella cartella da te scelta per il salvataggio. Controlla le proprietà del file per verificare che i file siano stati recuperati per intero.
Conclusione
Prima di utilizzare questa funzionalità in qualsiasi sistema operativo, è importante conoscere tutti i suoi pro e contro. Questa conoscenza ti aiuterà ad evitare possibili problemi in futuro.

