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.

Esplorazione dei file sparsi su Windows, Linux, macOS e nei file system

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.

La dimensione fisica occupa meno spazio su disco

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.

Vai a vedere
Come accedere ai file system Windows e MacOS da Linux

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.

Creazione di un file

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

fsutil sparse setflag sparse-file

Assegnare l'attributo

Ecco il comando per rimuovere questo attributo:

fsutil sparse setflag sparse-file 0

Rimozione dell'attributo

Ecco un altro comando se vuoi riattivare quell'attributo:

fsutil sparse setflag sparse-file

Verifichiamo:

fsutil sparse queryflag sparse-file

Verifica degli attributi e delle proprietà

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

Allocare spazio libero su disco

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

Controllo degli attributi

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.

Creare un file con il Terminale in Linux

Il secondo comando è più semplice:

truncate -s2G file-sparse

Dove il valore “-s” indica la dimensione del file ed è seguito dal nome del file.

Secondo metodo per creare un file con il Terminale di Linux

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.

Convertire il file esistente nel tipo di file desiderato

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.

Espandere la dimensione di un file

Usa il seguente comando per controllare la dimensione:

du -h --apparent-size 025.jpg

Verifica degli attributi

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

Creare un file in macOS Catalina

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.

Lo strumento recupera i file da qualsiasi dispositivo, indipendentemente dal motivo della perdita di dati.
Recupero dei dati da array RAID danneggiati e inaccessibili al computer.
Recupero dati

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.

Visualizzazione del file nell'editor HEX

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.

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.