Visualizando corretamente os acentos em arquivos de partições FAT32 no Linux
Você já deve ter percebido que não é apresentado corretamente na maioria dos casos os caracteres especiais dos nomes de arquivos usando o Fat32 (vFat) no Linux, isto ocorre porque as paginas de códigos, charsets ou ambos devem ser configuradas manualmente sendo que o foco principal, claro, é o inglês. Reparei que é escassa alguma documentação sobre o assunto, o que me levou a dar uma lida nos documentos do vFat do kernel, afim de achar opções de montagem, e vou passar a receita do bolo para vocês :-)
Basicamente para montagem do Fat32 devem ser adicionar as opções "iocharset" e/ou "codepage" ao que parece isto depende por onde a formatação foi feita, se através de um sistema operacional em português da familia Microsoft a opção a ser adicionada deve ser "codepage=850" se inglês "iocharset=iso8859-1". É uma deficiência do vFat do Linux não extrair esta informação automaticamente da partição, isto ainda não desmerece este módulo já bem desenvolvido.
:. Exemplos
Importante: Desmonte primeiro a partição usando o comando "umount /dev/hda1" (sendo /dev/hda1 sua partição)
Se sua partição foi formata através de um SO em inglês
$ mount -t vfat /dev/hda1 /mnt/win -o codepage=850
Se sua partição foi formata através de um SO em português
$ mount -t vfat /dev/hda1 /mnt/win -o iocharset=iso8859-1
Naturalmente o /dev/hda1 é uma partição Fat32 (que deve estar desmontada) e o /mnt/win é o diretório destino. Basicamente é isto, se você esquecer por onde foi formatado, ou os caracteres ainda aparecerem errados você deve ir testando mesmo, primeiramente usando os exemplos acima, depois apelando para os abaixo :-) alternando as opções ou ainda as combinando. Lembre que para verificar se esta tudo correto recomendo usar uma aplicação gráfica como o Konqueror, Nautilus ou qualquer outro Filemanager.
:. Mais exemplos:
Usando charset iso8859-1 com codepage 850
$ mount -t vfat /dev/hda1 /mnt/win -o iocharset=iso8859-1,codepage=850
Usando charset UTF8
$ mount -t vfat /dev/hda1 /mnt/win -o iocharset=utf8
Usando charset UTF8 com codepage 850
$ mount -t vfat /dev/hda1 /mnt/win -o iocharset=utf8,codepage=850
Se o seu SO for inglês ou português só esta codepage/charset devem ser usandos se for outra língua procure saber qual é seu charset e o codepage e os use como os do exemplo. Não se esqueça que tem que estar compilado no kernel como nativo ou módulo o charset e o codepage que forem ser usados.
:. Automatizando o Processo:
Para automatizar o processo de montagem das partições Fat32 deve ser adicionada no /etc/fstab (se existir altere apenas).
# Partição Destino Tipo Opçoes
/dev/hda3 /mnt/dados vfat iocharset=iso8859-1 1 0
Divirta-se com seus caracteres especiais :-)
Nota: Esta excelente dica feita pelo usuário Nawtage foi retirada do site Guia do Hardware