mkdosfs para formatar o cartão SD dashcam FAT32 com tamanho de cluster 32kb

1

Estou tentando escrever um script para reformatar um cartão SD dashcam, conforme recomendado pelo fabricante. Eu posso fazer isso em um sistema Windows com um script python simples, um trecho aqui:

...
fm = windll.LoadLibrary('fmifs.dll')
FMT_CB_FUNC = WINFUNCTYPE(c_int, c_int, c_int, c_void_p)
FMIFS_UNKNOWN = 0
clustersize = c_int(32768) # 32K cluster size
fm.FormatEx(c_wchar_p(Drive), FMIFS_UNKNOWN, c_wchar_p(Format),
            c_wchar_p(Title), True, clustersize, FMT_CB_FUNC(myFmtCallback))
...

Então, isso está usando algumas janelas DLL e formatos, e funciona. O script completo pode ser encontrado aqui

Agora eu quero basicamente fazer o mesmo em um sistema Ubuntu. Eu estou tentando usar mkdosfs e eu uso chamadas do sistema, aqui a linha de comando:

mkdosfs -f 2 -F 32 -s 64 -S 512 /dev/sdb1

Isso formata o cartão SD, mas ao desconectar a câmera do meu laptop e ligá-la para iniciar a gravação, ela parece travar, presumivelmente porque o sistema de arquivos esperado no cartão SD não está certo.

Eu devo obviamente mencionar que em ambos os casos do MS Windows e no caso do Ubuntu, eu adiciono alguns diretórios esperados ("/ DCIM / 100MEDIA") e também adiciono um arquivo "time.txt" com um registro de data e hora, a câmera lê na inicialização para redefinir o relógio interno que é adicionado como um registro de data e hora ao vídeo.

A câmera que uso é um "Roadhawk Bullet Ride", e as especificações dizem apenas para usar um sistema de arquivos FAT32 com 32k de tamanho de cluster. Eu comparei a saída que recebi do dosfdsk, tanto depois de formatar o cartão no windows como no Ubuntu, e não consigo ver qual seria a diferença significativa, recebo 512 byes por setor, 32768 bytes por cluster, 2 FATs, 32 bits Não tenho certeza de como os números importantes, como 'setores reservados' e todas as outras informações dosfdsk oferece, são.

Obrigado por qualquer ajuda ou sugestão que você possa fornecer.

    
por MartinD 06.01.2017 / 22:02

0 respostas