Eu ia copiar meus arquivos de música (codificados em mp3) (organizados em um diretório) para um cartão (micro-) sd (em formato vfat) para usá-los em meu player de áudio digital (DAP) (no Linux ). Eu costumava usar a mesma combinação por cerca de 1 ano agora e sempre funcionava.
Agora eu copiei uma grande parte da minha coleção de CDs, então o número de arquivos aumentou drasticamente e eu atualizei as tags para os arquivos antigos também. Então, basicamente, eu tive que copiar a maioria, senão todos os arquivos, para o cartão. É por isso que decidi começar com um novo cartão SD formatado:
sudo mkfs.vfat /dev/mmcblk0p1
Depois, copiei minha música para o cartão:
mount /mnt/cardreader
cp -r ~/music/* /mnt/cardreader/
umount /mnt/cardreader
onde meu /etc/fstab
contém a seguinte linha
/dev/mmcblk0p1 /mnt/cardreader auto noauto,user 0 0
Após atualizar o banco de dados do DAP e tocar algumas músicas (usando o RockBox), notei pequenas partes (talvez 1-2 segundos) de outras faixas "mixadas" nas músicas que estavam armazenadas no cartão SD. Isso não aconteceu quando toquei uma música armazenada no armazenamento interno do DAP.
Então eu conectei o cartão SD de volta na minha caixa de Linux, montei e toquei algumas músicas usando o mplayer. Isso deu o mesmo comportamento estranho. Mesmo tocando apenas uma música, outras foram mixadas, então descartei qualquer relação com o banco de dados RockBox.
A execução de fsck.vfat
retornou muitos erros (o que eu não lembrei em detalhes nem gravei, infelizmente). Então eu decidi começar de novo e usar rsync
desta vez desde que, de acordo com sua página de manual
...rsync always verifies that each transferred file was correctly reconstructed on the receiving side by checking a whole-file checksum that is generated as the file is transferred...
e quero que futuras atualizações copiem apenas arquivos novos / alterados de qualquer forma:
mount /mnt/cardreader
rsync -rltDvP --modify-window=1 --stats ~/music/* /mnt/cardreader
umount /mnt/cardreader
Isso é executado várias horas e, às vezes, falha ao reclamar que o sistema de arquivos de destino é somente leitura ou falha na tentativa de alterar as permissões. Isso é um pouco irritante, já que o cartão SD foi montado como leitura / gravação e não deve haver nenhuma permissão de alterações (sem -g
ou -o
dada a rsync
), mas executando rsync
várias vezes, eventualmente, terminar sem erros. Se ele continuasse reclamando sobre o cartão SD sendo somente leitura, remontá-lo corrigiu isso.
No entanto, continuo a encontrar o problema descrito e
sudo fsck.vfat -aV /dev/mmcblk0p1
reclama de nomes de arquivos curtos e tenta renomear os mesmos arquivos repetidas vezes sem finalizar (esperei o dobro do tempo necessário para copiar os arquivos usando cp
).
Adendo
Embora eu tenha notado o problema usando meu DAP, também acontece quando eu formato, mount
, rsync
, umount
, desconecto o cartão, reinicializo o computador, conecto o cartão, mount
, rsync
(não fazendo nada) e reproduzindo um arquivo: Reproduzir a partir do cartão SD é "remixado", reproduzindo o arquivo de origem com sons normais.