Existem duas maneiras de ficar sem espaço em um sistema de arquivos: 1) Realmente ficando sem espaço para os dados 2) Execução de alguns recursos do tipo filesytem como inodes ou entradas de tabela de gordura. Muitos pequenos arquivos podem causar a falta de inodes - os sistemas de arquivos são construídos com um número padrão de inodes e que podem não atender suas necessidades. O sistema de arquivos FAT32 é limitado a 64k arquivos por diretório (max, nomes longos reduzem isso), então isso não funcionará para você a menos que você combina os arquivos pequenos com um arquivador como tar antes de copiá-los. A abordagem do arquivador deve funcionar para qualquer caso e certamente reduzirá a estresse na memória flash - pense no número de escritas no diretório bloco pode ficar enquanto está sendo construído, e espero que os drivers sejam inteligentes sobre buffering. Talvez você devesse colocar o mesmo tipo de sistema de arquivos no stick 16G como você tem no seu disco rígido? (Eu estou supondo NTFS, desde o seu diretório limite é superior a 4 milhões). Você pode executar mke2fs com switches para alterar o tamanho / número padrão do inode. Execute as páginas de manual
man mke2fs
para uma descrição completa. A outra possibilidade é que você está realmente ficando sem espaço para os dados - você sabe que seus arquivos são apenas 4K, mas pergunte a si mesmo quanto espaço sistema de arquivos aloca para eles? Verifique o espaço livre deixado quando o pau diz que não há mais espaço livre de espaço indica falta de inodes. Sem espaço livre, bem, há sempre o arquivador para consertar isso também.