Sistemas de arquivos modernos, EXT4, XFS, Btrfs, têm um recurso chamado pré-alocação persistente, que a grosso modo faz o sistema reservar espaço para o arquivo que está sendo criado (mesmo entre reboots, daí o persistente ), sem precisar o encher de zeros, como ocorre em sistemas de arquivos obsoletos. Aliado à alocação por extents (grupos de blocos) e alocação atrasada, dá ao kernel a possibilidade de fazer escolhas muito melhores à medida de vai salvando o arquivo no disco, evitando a fragmentação. Infelizmente é um recurso que necessita adaptações por parte das aplicações. Basicamente significa usar as funções fallocate() ou fallocate64() na hora de criar o arquivo. As funções foram adicionadas à versão 2.10, porém fallocate64() ficou disponível em 32-bit apenas na glibc 2.11. Qualquer distribuição atual usará uma versão igual ou superior a 2.11; logo, não é mais problema. Já existia há mais tempo a função posix_fallocate() , porém ela tem a peculiaridade de, em sistemas de