Dipende molto dal filesystem in uso, in una certa misura dal sistema operativo, così come dal programma che sta aprendo il file. Spetta all'applicazione richiedere la corretta quantità di spazio di archiviazione durante la creazione di un nuovo file ed è il sistema operativo e le funzionalità del file system che influenzano il comportamento aperto ed esteso che queste app seguono quando non sanno quanto spazio chiedere.
Se un programma richiede al sistema operativo un file da 4,2 GB, il sistema operativo troverà una porzione di spazio con 4,2 GB liberi. In caso contrario, si darà al programma abbastanza frammenti di spazio libero per salvare il file. Ci sono alcune variabili qui, questo è semplificato.
Se un programma richiede al sistema operativo un file 4KB, il sistema operativo lo fornirà. Se il programma continua a richiedere nuovi segmenti contigui di 4KB (stai scaricando un file e il programma non sapeva quanto fosse grande) fino a quando non ottiene 4,2 GB di spazio, il sistema operativo darà felicemente spazio. Questo è il caso in cui il file system e il sistema operativo fanno differenze.
XFS, ad esempio, è basato sull'estensione, quindi lo spazio aggiunto sarà contiguo fino a quando non può esserlo. Inoltre, XFS può essere configurato per pre-allocare nuovi file con una certa quantità di spazio che può minimizzare ulteriormente la frammentazione (utile sui volumi di archiviazione della macchina virtuale e sui volumi ISO del DVD).
EXT2 / 3, NTFS, e credo che Reiser, assegnerà contigui fino a quando non sarà più possibile. Quindi inizierà nuovi frammenti. Ogni frammento potrebbe essere di dimensioni 4KB però.
Prendiamo il caso peggiore. Due file paralleli da 4,2 GB vengono salvati contemporaneamente in 4K, nella stessa directory. La cosa della "stessa directory" fa parte del caso peggiore poiché alcune combinazioni OS / FS tentano di mantenere i file nella stessa directory vicini l'uno all'altro. Per alcune combinazioni OS / FS, i due file verranno completamente interfogliati sul disco. Per altri che cercano di mantenere i file di nuova apertura su diversi segmenti liberi, potrebbe non esserci alcuna frammentazione o molto poco.
Un po 'su XFS (penso che ext4 e btrfs possano farlo). In questo caso, l'interleave non sarà 4KB, sarà qualunque cosa imposti il valore della dimensione di allocazione durante il montaggio del volume. Impostalo su 256 MB e otterrai un file da 4,2 GB con 17 frammenti anziché oltre un milione. Utile per i volumi di archiviazione di file di grandi dimensioni come i media server. Non utile per i volumi in cui sono archiviati molti file bitty itty e alcuni di grandi dimensioni.
È per questo motivo che i client Bittorrent aprono file sparsi all'avvio di un nuovo download o allocano la dimensione specificata in totale prima di iniziare.
Quando si copiano file da diverse parti della stessa partizione (o diamine, anche da altre partizioni) il processo di copia teoricamente sa quanto sono grandi i file copiati, quindi richiede spazio della dimensione appropriata dal sistema operativo dall'inizio; non è necessario aggiungere allocazioni per i nuovi file.