Embora eu não saiba se essa é a verdadeira explicação / solução para sua pergunta, acredito que esse seja um problema com o USB em geral.
Se você copiar arquivos grandes ou muitos arquivos, o dispositivo USB entregará uma mensagem ao host dizendo "Estou prestes a enviar esses arquivos para você". O dispositivo enviará todos os arquivos de forma assíncrona e levará o tempo necessário para isso. Isso significa que quando você faz um cp /my/flash/drive/foo.txt /home/bar/foo.txt
, o dispositivo informará ao sistema operacional que os arquivos estão sendo copiados e, em seguida, enviará os arquivos.
A única maneira que conheço para verificar se todos os dados realmente foram transferidos é inserir sync
depois de executar um comando que copie / mova ou exclua arquivos em uma unidade flash. O comando de sincronização irá então bloquear até que a unidade termine com a transferência de dados. Depois disso, deve ser seguro desmontar / ejetar uma unidade flash USB.
[EDITAR]: verifique este post para ver o progresso da operação sync
: o número impresso quando você corre
watch grep -e Dirty: -e Writeback: /proc/meminfo
deve diminuir para zero quando ocorrerem transferências de dados em segundo plano. Quando estiver pronto, seu sync
será concluído e seu flash drive será ejetado.
Outro problema comum ao ejetar dispositivos de armazenamento USB é que pelo menos o Debian não permitirá isso se houver um programa, terminal ou similar atualmente trabalhando em arquivos / pastas na unidade flash. Portanto, se você alterou o diretório para uma pasta naquele flashdrive em um terminal e depois tentou ejetar o flash drive usando outro terminal, ele não permitirá isso até que você tenha alterado o diretório para algum outro local que não esteja no flashdrive no primeiro terminal. / p>