Gravando em um compartilhamento CIFS do Windows SMB1
A palavra da Microsoft is: "Nos sistemas de arquivos Windows NTFS, os arquivos não são tornados esparsos por padrão. O aplicativo ou usuário precisa marcar explicitamente o arquivo esparso através do código de controle FSCTL_SET_SPARSE." Infelizmente o Linux não marca esses arquivos via SMB1. Alegadamente se você tornar o arquivo esparso no lado do Windows (com Cygwin dd if=/dev/zero of=BigFile bs=1M count=1 seek=150000
), então você pode continuar a escrever é tão esparso do Linux. Eu acredito que a leitura não será otimizada.
Experimentos
Com o RHEL6 coreutils-8.4, o cp --sparse=always local_file /mnt/cifs/file_on_cifs
não escreve um arquivo esparso. Ao ler um arquivo CIFS, ele lê as áreas zeradas (não otimização do fiemap ). No RHEL6, tanto o backup quanto a restauração transferirão todo o arquivo pela rede; melhor gzip.
Mesma situação com o coreutils-8.25 no Ubuntu 14x.
Gravando em um compartilhamento do Windows CIFS SMB2 / SMB3
Existe um patch de 2014 "Adicionar suporte de arquivo esparso às montagens de SMB2 / SMB3" , portanto, esperanças são arquivos esparsos serão suportados em compartilhamentos montados do Windows 8.1 e outras plataformas.
Escrevendo para um compartilhamento CIFS do Linux
Quando você monta no cliente Linux um compartilhamento Samba de algum servidor Linux, pode gravar arquivos esparsos, mesmo no SMB1. Não há otimização de leitura.