sd cards

Baixe e instale o f3 para testar cartões de memória e pendrives no Linux

O kit de ferramentas F3, traz um conjunto de aplicativos para verificar, testar e consertar mídias flash falsificadas.
Desenvolvido pelo Michel Machado é uma alternativa a aplicativos proprietários (embora gratuitos), como o SOSFakeFlash e o H2testw.
A proposta é trabalhar com cartões de memória SD e, inicialmente, determinar se sua mídia é ou não autêntica — mas você pode usá-lo em pendrives também.
many sd cards
Neste texto, vou mostrar como baixar e compilar (para quem deseja usar a versão mais atual da ferramenta) e também como instalar pelo apt, no Debian e no Ubuntu. Escolha o método que achar que lhe serve melhor.
No Android, a ferramenta SD insight também pode ser usada para obter informações sobre cartões de memória inseridos no aparelho.
Alguns exemplos neste texto são executados em pendrives. Isto se deve ao fato de que, atualmente, os meus cartões de memória se encontrarem tão danificados que não é possível sequer montá-los. E a mídia precisa, em alguns casos, ser montada para algumas ferramentas funcionarem.

O kit de ferramentas F3

O conjunto de aplicativos consiste no f3probe, f3fix e no f3brew — e eu só usei a versão para Linux:

  • O primeiro, é a maneira mais rápida para identificar drives falsos e determinar o tamanho real deles, em bytes.
  • O segundo, cria condições para usar a capacidade real de uma mídia falsa, sem perder dados.
    Se você aceita um conselho, não use mídias falsas ou defeituosas, mesmo que estejam funcionando “razoavelmente” para armazenar arquivos importantes. Além disto, é importante ter uma prática de fazer backups de seus dados frequentemente.
  • O terceiro, ajuda desenvolvedores a entender o funcionamento de drives falsos.

De acordo com o Michel, F3 corresponde às palavras Fight Flash Fraud, (combate a fraude em mídias flash) ou Fight Fake Flash (combate a flash falso).

Se você tem mídias flash falsas, considere a possibilidade de doá-las ao desenvolvedor, para ele melhorar ainda mais o seu trabalho — veja os links ao final do artigo.

Como instalar o F3 no Debian e Ubuntu

Se você prefere baixar o código e compilar o F3, pule esta seção (não tenha medo, o processo é simples).
Para instalar o programa a partir dos repositórios oficiais, via apt, use o seguinte comando:

sudo apt update
sudo apt install f3

O meu sistema atual é Debian 9 Stretch e vou mostrar todos os procedimentos na linha de comando.
O F3, contudo, dispõe de duas interfaces gráficas para quem prefere este meio de resolver as coisas:

  • F3 QT — voltada para o ambiente Linux e usa (como o nome indica) a biblioteca gráfica QT.
    A interface suporta o f3write, o f3read, e o f3probe.
  • F3 X — para o MAC OS X, que usa o Cocoa. De acordo com a página oficial do autor, suporte o f3write e o f3read.

Neste artigo, não vou abordar a instalação ou o uso das interfaces gráficas.

Como baixar e compilar o F3

Se você já optou pelo método anterior de instalação, pule esta seção.
Para baixar o código, use o comando wget ou clique neste link, para baixar a versão estável:

wget https://github.com/AltraMayor/f3/archive/v6.0.zip

… ou apenas clique no link https://github.com/AltraMayor/f3/archive/v6.0.zip.
Se preferir, você pode tentar encontrar uma versão mais atual, no site do desenvolvedor.
As instruções, que seguem, constam do arquivo README.md, que vem junto com o pacote zip, baixado.
Copie o arquivo f3-xxx.zip ou v6.0.zip para o local onde você deseja deixar o código e os binários e siga o procedimento:

unzip f3-6.0.zip
cd f3-6.0
sudo apt install libudev1 libudev-dev libparted0-dev
make experimental

No procedimento, descrito acima, me baseei no Debian 9, para instalar as bibliotecas de desenvolvimento libudev1, libudev-dev e libparted0-dev. Se você usa outra distro, adéque o comando para a sua instalação.
Isto é o suficiente para ter o F3 funcionando no seu sistema.

Como usar o f3write e o f3read

Depois de inserir a mídia no seu leitor, certifique-se da sua localização com o comando lsblk:

lsblk 

Como já mencionei, meu cartão está danificado (não é falso) e não irá montar. Mas a sua presença pode ser detectada. Veja o destaque, na última linha:

NAME    MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda       8:0    0 931,5G  0 disk 
├─sda1    8:1    0  21,4G  0 part /
├─sda2    8:2    0 881,1G  0 part /home
└─sda3    8:3    0  10,4G  0 part [SWAP]
mmcblk0 179:0    0   1,9G  0 disk

Antes de prosseguir, certifique-se de ter backup de seus dados.
Depois de inserir o cartão no slot/leitor, aguarde a montagem da mídia.
Em seguida, execute o f3write em relação a pasta/diretório em que a mídia se encontra montada:

f3write /media/justincase/music/

O processo pode demorar alguns minutos:

Free space: 2.68 GB
Creating file 1.h2w ... OK!                        
Creating file 2.h2w ... OK!                        
Creating file 3.h2w ... OK!                        
Free space: 0.00 Byte
Average writing speed: 5.30 MB/s

O que ocorreu acima?
Sendo um drive de capacidade 4 GB, com 2,68 GB de espaço livre, o f3write procurou preencher o espaço livre com os arquivos 1.h2w, 2.h2w e 3.h2w.
Os 2 primeiros arquivos tem 1 GB, cada. O último ficou com 700 MB.
A programa preenche o drive, mas não apaga os arquivos preexistentes.
Use o comando ls, para ver o conteúdo, se quiser.
Em seguida, use o f3read para verificar a consistência dos arquivos .h2w:

f3read /media/justincase/music/

O resultado é separado em 5 colunas: A primeira coluna exibe a quantidade de setores OK. A segunda, a quantidade de setores corrompidos. A penúltima e última colunas mostram os setores que sofreram alterações e os que foram sobrescritos.

                  SECTORS      ok/corrupted/changed/overwritten
Validating file 1.h2w ... 2097152/        0/      0/      0
Validating file 2.h2w ... 2097152/        0/      0/      0
Validating file 3.h2w ... 1434984/        0/      0/      0

Data OK: 2.68 GB (5629288 sectors)
Data LOST: 0.00 Byte (0 sectors)
	       Corrupted: 0.00 Byte (0 sectors)
	Slightly changed: 0.00 Byte (0 sectors)
	     Overwritten: 0.00 Byte (0 sectors)
Average reading speed: 20.16 MB/s

Em destaque, acima, a quantidade de dados que se encontra em setores confiáveis (ou Data OK).
Os números dos campos Data LOST e Corrupted, correspondem aos setores ruins e que não merecem confiança dentro da sua mídia.
Se você tivesse problemas, esta seção exibiria algo parecido com o seguinte:

Data LOST: 27.81 GB (58322336 sectors)
	       Corrupted: 27.81 GB (58322336 sectors)

Repare, também na velocidade de leitura (reading speed), para comparar com o que é alegado na embalagem do cartão.
Este valor é baseado em testes de laboratório, em condições perfeitas.
O valor obtido pelo F3 é uma estimativa e pode variar drasticamente, em função de outros processos em execução no seu sistema. Além disto, o leitor e a porta USB podem ter fatores limitantes do fluxo de dados.
Você pode repetir os testes quantas vezes quiser, com o f3read — ele é independente do f3write.

Algumas variações no espaço/capacidade total da mídia de armazenamento, em relação ao anunciado na embalagem, podem ser atribuídas a sistemas de arquivos que fazem reservas de segurança (ext2, ext3, ext4 etc.)

Como testar o dispositivo de armazenamento com o f3probe

O f3probe não precisa que a sua mídia esteja montada e deve ser direcionado ao endereço “físico” e não à pasta de montagem.
Novamente, use o lsblk para descobrir onde se encontra o dispositivo em que você quer executar o f3probe.

sudo f3probe /dev/mmcblk0 

O resultado, abaixo, indica que o device está danificado e que tem 0.00 bytes *utilizáveis*.

[sudo] senha para justincase: 

F3 probe 6.0
Copyright (C) 2010 Digirati Internet LTDA.
This is free software; see the source for copying conditions.

WARNING: Probing normally takes from a few seconds to 15 minutes, but
         it can take longer. Please be patient.

Probe finished, recovering blocks... Done

Bad news: The device `/dev/mmcblk0' is damaged

Device geometry:
	         *Usable* size: 0.00 Byte (0 blocks)
	        Announced size: 1.88 GB (3952640 blocks)
	                Module: 2.00 GB (2^31 Bytes)
	Approximate cache size: 0.00 Byte (0 blocks), need-reset=no
	   Physical block size: 512.00 Byte (2^9 Bytes)

Probe time: 7.33s

Ao tentar usar uma identificação como /dev/sdb1 ou /dev/sdc3, para o f3probe, ele irá avisar que você precisa indicar o endereço “raíz”: /dev/sdb ou /dev/sdc.
Para acessar este tipo de endereço, é necessário ter privilégios administrativos.
Use a opção ‘–destructive’ se você não se importa em perder dados no dispositivo testado.
Acrescente a opção ‘–min-memory’, para economizar memória do sistema — em compensação o processo ficará mais lento.
A opção ‘–time-ops’, testa leitura, escrita e aplica resets.
A mensagem abaixo, se você a obtiver é indício de falsificação:
Bad news: The device `/dev/sdb’ is a counterfeit of type limbo.”
A opção ‘–destructive’ faz o utilitário desprezar o conteúdo do drive, para aumentar a velocidade do teste. Sem ela, o F3 fará backup dos dados, antes de os destruir e os copia de volta, quando terminar o teste.
O problema é que você ainda pode perder tudo, caso o F3 deixe de funcionar no meio do procedimento. Portanto, faça seu próprio backup, antes de usar o F3.

Como resolver o problema do cartão de memória falso

Obviamente, você não deve aceitar ficar com um produto falso.
O melhor caminho é deixar claro para o vendedor que você sabe que ele te vendeu um produto ilegítimo e procurar receber o seu dinheiro de volta.
Ao agir assim, você ajuda outras pessoas a não serem enganadas.
Se não houver meios de reaver o seu prejuízo, esta seção irá te ajudar a tentar reduzir os danos.
Uma mídia de armazenamento falsa, usualmente, tenta fazer passar que tem um capacidade muito superior à real.
Por exemplo, anuncia que é um cartão de 32 GB e tem, no máximo, 8 GB utilizáveis.
Se você prestar atenção, o resultado do f3probe contém uma sugestão de uso do f3fix que pode ajudar a corrigir o problema no caso de mídia falsa.
O aviso costuma ser parecido com este:

f3fix --last-sec=16477878 /dev/sdb

Certifique-se de ter privilégios de superusuário para rodar o comando contido no aviso que você obteve, aí.

O f3fix funciona criando uma partição no seu cartão de memória, que incluirá apenas a sua parte utilizável. Isto evita que dados sejam gravados na “área ruim” (ou inexistente).
Ainda assim, não é recomendável confiar os arquivos mais importantes da sua vida a um dispositivo nestas condições.
Esta solução te dará algum fôlego para guardar dinheiro para comprar um novo cartão de memória SD.

Se, ao final da execução, o f3fix avisar que tem que forçar o kernel a recarregar a tabela de partições (reload the new partition table), desconecte e reconecte o dispositivo. Assim que a nova partição estiver disponível, faça a sua formatação.
O exemplo, abaixo, formata a mídia em /dev/sdb1 com o sistema de arquivos VFAT:

sudo mkfs.vfat /dev/sdb1
mkfs.fat 3.0.26 (2014-03-07)

A partir deste ponto, o cartão deve estar a funcionar bem.
Monte-o novamente e faça o teste f3write/f3read, novamente
Se você ainda obtiver mensagens informando erros e setores corrompidos, repita o procedimento f3write/f3read, mais uma vez.
É comum alguns cartões se recuperarem de falhas em um segundo ciclo de escrita.
Contudo, se os setores corrompidos persistirem, o conselho é desistir da mídia — pois ela não é apenas falsa, mas de baixíssima qualidade.
Boa sorte!

Referências

Site oficial: https://github.com/AltraMayor/f3/.
Documentação: http://oss.digirati.com.br/f3/.

Publicado por

Elias Praciano

Autor de tecnologia (livre, de preferência), apaixonado por programação e astronomia.
Fã de séries, como “Rick and Morty” e “BoJack Horseman”.
Me siga no Twitter e vamos trocar ideias!

2 thoughts on “Baixe e instale o f3 para testar cartões de memória e pendrives no Linux”

  1. Olá!! Para mim não ficou muito claro como verificar a questão de genuinidade. Tirando o atributo velocidade de leitura qual outro indicaria que a mídia flash é falsificada?

    1. Creio que outros indícios podem apontar na direção de que a mídia é falsa:

      1. Indicação de tamanho incorreta — quando a capacidade é bem (muito) inferior à indicada no invólucro do cartão
      2. Ausência do nome do fabricante

      O autor usa uma implementação do h2testw, que ajuda a verificar todo o cartão.
      Ele reconhece que a chegada de cartões cada vez mais robustos ao mercado (acima de 128 GB), representa um desafio a mais para o desempenho deste algoritmo.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *