Ferramentas para testes em unidades flash

 Por Ciro Mota |  23, Agosto 2021 |  Tempo de leitura aproximadamente 5 minutos.
 Edições: Adição de bloco de anúncios Em 19, Setembro 2023.

Olá pessoal, como vão? Espero que bem.

As vezes temos um pendrive ou cartão de memória que do nada os arquivos são corrompidos aparecendo outros ilegíveis no lugar, ou simplesmente os arquivos se perdem ou a gente nota que o seu tamanho é diferente do que o anunciado. De antemão nunca é uma boa economia comprar esses itens de origem duvidosa como camelôs e etc. Um pendrive pode ser utilizado como uma unidade para backup (não é a melhor obviamente, mas daria para ser feito) e para esse caso desejamos que ele esteja em boas condições operacionais.

Neste artigo trago duas ferramentas onde podemos realizar verificações nessas unidades flash (pendrives ou SSD) além de verificar se capacidades e velocidades condizem com o descrito pelo fabricante. Podemos executar esses testes de inclusive com a ajuda de containers (lá vem o fanboy de container de novo?!). E por que utilizar containers? A resposta é simples, com ele não precisaremos “sujar” nosso S.O e como a função de um container é cumprir uma função e ser removido, nada mais justo do que executar uma verificação e ser removido ao final dela. E isso é que torna a coisa mais fácil.

E claro, utilizaremos de ferramentas de código aberto para essa tarefa.

f3 - Fight Flash Fraud

GitHub do projeto Chocolatey

Sim este é o nome da ferramenta e eu a descobri em andanças pelo GitHub. Observe que ela não possui um pacote compilado para instalação e a menos que você seja old school para compilar e executar tudo na unha, o container se mostra uma opção maravilhosa para economia de tempo e também acessível a usuários “de entrada” se podemos chamar assim. Vamos a ela.

Continua após a publicidade

Com o Docker ou Podman instalado e em pleno funcionamento precisamos apenas executar a linha abaixo:

docker container run -it --rm --device <device> peron/f3 <f3-command> [<f3-options>] <device>

Explicando cada parâmetro da linha de comando…

  • -it = Informa que o container vai ser executado em modo interativo.
  • --rm = Determina que o container será removido ao final da execução.
  • --device = Flag para apontar que será usado um dispositivo.
  • <device> = Aqui você deve informar o caminho absoluto para o dispositivo que será testado, no meu exemplo usando Linux foi `/dev/sdc´.
  • peron/f3 = Imagem de container que será utilizada.
  • <f3-command> = Inicia os comandos da ferramenta que serão passados para a verificação e que são eles:
    • f3write = Irá gravar arquivos grandes no disco montado.
    • f3read = Irá verificar se o disco tem exatamente os arquivos que foram gravados.
    • f3probe = É o teste de unidade mais rápido e de acordo com o Dev é adequado para discos grandes porque irá gravar apenas o necessário para o teste.
    • f3fix = Cria uma partição ajustada ao tamanho real da unidade.
  • [<f3-options>] = Parâmetros que podem ser passados para o teste, o mais comum é --destructive que fará o teste e excluirá os arquivos utilizados neste teste.
  • <device> = Aqui novamente você deve informar o caminho absoluto para o dispositivo que será testado e igual ao informado anteriormente.

É requerido que o teste seja feito com a partição desmontada. Abaixo um exemplo de uso da ferramenta ao testar um pendrive vendido como 16GB.

Rodando a ferramenta f3

No meu caso e como podem ver na imagem eu utilizei o comando proposto na documentação e consta a flag --time-ops o que ela faz é informar o tempo de execução do teste. Não é necessário utilizá-la caso não deseje esse detalhe adicional.

Sua documentação é bem completinha e pode ser encontrada neste link. Recomendo conhecer.

Mas, existem badblocks em memórias flash? Sim, existem. E podemos checá-lo com a ferramenta a seguir.

Continua após a publicidade

badblocks

Um SSD por exemplo dependendo do Sistema Operacional que utilize e interface gráfica contamos com utilitários que nos informam os dados de S.M.A.R.T e com isso temos uma forma de monitoramento mais simplificada e sempre à mão, apesar de que nem todo mundo faz isso e principalmente um usuário mais iniciante. Idem para um HD mecânico.

Infelizmente pendrives não contam com dados de S.M.A.R.T que podem nos ajudar em verificações e com isso serem verificados acaba sendo uma tarefa que nunca é feita. Mas essa possibilidade existe existe.

A ferramenta badblocks que está presente nas principais distribuições Linux out-of-the-box ou seja, já deverá vir instalada, consegue realizar essa verificação rapidamente. Basta executar o comando:

sudo badblocks -w -s /dev/sdX

Este teste é bemmmmm demorado dependendo da capacidade e condição da unidade que será testada. Assim como na ferramenta anterior a unidade precisará estar desmontada para o teste. Ao final de cada etapa será emitido o resultado informando sobre a existência de bad blocks ou não. Para mais informações consulte o man da ferramenta.

Rodando a ferramenta badblocks

Sim, o mesmo pendrive que foi testado acima para capacidade com a f3 tem esse resultado no teste de badblocks e comprova o que cito acima que verificações de integridade também são úteis nessas unidades sempre que possível. Este pendrive está quase inutilizável e utilizei no teste somente para fins didáticos, apesar de que ele gravava dados pequenos normalmente.

Continua após a publicidade

Neste artigo utilizei especificamente alternativas para Linux, porém se você usa Windows pode usar tanto a Docker Desktop como a Rancher Desktop duas ótimas ferramentas gráficas para que você possa facilmente provisionar os containers não precisando necessariamente utilizar de linha de comando para toda a operação e deverá conseguir utilizar a ferramenta f3 citada. Ou você pode utilizar ferramentas mais usuais sendo as mais usadas a CrystalDiskInfo e CrystalDiskMark e uma ferramenta excelente para essa função para ambos os testes é a HD Tune onde você pode utilizar o modo Trial para realizar S.M.A.R.T, varreduras e benchmarks.

E você, conhecia alguma das duas ferramentas? Usa outras, de preferência Open Source? Me deixe saber logo abaixo nos comentários.

Espero que este artigo tenha sido útil para você.

Até a próxima!