Primeiro, zerei completamente a unidade antes de criar o sistema de arquivos UDF com:
dd if=/dev/zero of=/dev/sdx bs=512
Isso evita superblocos ou outros metadados que possam confundir a detecção do tipo de sistema de arquivos dos sistemas operacionais (pelo menos, zerar o primeiro setor para obliterar a tabela de partição; os primeiros setores não são usados por UDF, e uma tabela de partição restante poderia realmente confundir as coisas). Você também pode usar a opção count=1
no comando dd, para liberar mais rapidamente apenas os primeiros 512 bytes da unidade (onde o MBR geralmente está localizado), embora isso não tenha sido testado.
Para criar o sistema de arquivos, o comando que usei foi:
mkudffs --media-type=hd --blocksize=512 /dev/sdx
O comando mkudffs
ficará disponível em distribuições Linux baseadas no Debian (como o Ubuntu) depois de instalar o udftools
package:
sudo apt-get install udftools
O tamanho de bloco padrão para mkudffs
é 2048, o que é errado para uma unidade flash USB (que usa setores de 512 bytes). Como o tamanho do bloco é usado para encontrar os metadados do sistema de arquivos, usar um tamanho de bloco incorreto pode fazer com que ele não seja reconhecido como um sistema de arquivos UDF (já que a âncora não estará onde o driver do sistema de arquivos está esperando). Observe que a página mkudffs
man está errada; 512 é um valor válido para o tamanho do bloco (e o código o aceita explicitamente).
Eu também usei a unidade inteira em vez de uma partição; isso deve ser mais compatível.
O resultado dos meus testes até agora:
- Linux com o kernel mais recente (2.6.31, do Ubuntu 9.10): funciona.
- Linux com um kernel antigo: precisa da opção
bs=512
paramount
, porque ela usou 2048 incorretamente em vez do tamanho do setor do dispositivo (corrigido em commit 1197e4d ). - Windows Vista: funciona.
- Um novo Mac: funciona.
- Windows XP: pode ler bem, mas dá "acesso negado" ao tentar escrever; também parece pensar que o disco está cheio.
Embora eu não tenha até agora tentado criar um arquivo maior que 4G, não vejo razão para que ele não funcione.
Dado que funcionou perfeitamente em todos os sistemas operacionais recentes (tendo apenas que ser montado manualmente no Linux, que não será mais necessário assim que o Ubuntu 9.10 e o Fedora 12 estiverem fora), e funcionou somente leitura no Windows XP foi uma surpresa para mim, eu estava esperando para não reconhecer o sistema de arquivos em tudo), usando UDF em vez de FAT32 ou NTFS em grandes unidades flash USB parece uma boa idéia.