Você está usando uma versão de 64 bits do Linux com muita memória? Nesse caso, o problema poderia ser que o Linux pode bloquear por minutos em grandes gravações em dispositivos lentos como para exemplo cartões SD ou pendrives. É um bug conhecido que deve ser corrigido em novos kernels.
Veja link
Solução alternativa: como problema raiz:
echo $((16*1024*1024)) > /proc/sys/vm/dirty_background_bytes
echo $((48*1024*1024)) > /proc/sys/vm/dirty_bytes
Eu adicionei-o ao meu arquivo /etc/rc.local em minhas máquinas de 64 bits.
TANSTAAFL ; Essa alteração pode (e provavelmente irá) reduzir sua taxa de transferência para esses dispositivos - é um compromisso entre latência e velocidade. Para voltar ao comportamento anterior, você pode
echo 0 > /proc/sys/vm/dirty_background_bytes
echo 0 > /proc/sys/vm/dirty_bytes
... que são os valores padrão, o que significa que o comportamento de write-back será controlado pelos parâmetros dirty_ratio e dirty_background_ratio .
Nota para os não-tão-especialistas-com-linux: os arquivos em /proc são pseudofiles --- apenas canais de comunicação entre o kernel e o espaço do usuário. Nunca use um editor para mudar ou olhar para eles; Em vez disso, obtenha um prompt de shell - por exemplo, com sudo -i (tipos do Ubuntu) ou su root e use echo e cat ).
Atualização 2016/04/18 parece que, afinal, o problema ainda está aqui. Você pode olhar para isto em LWN.net , em isto artigo sobre filas de write-back .