Ferramentas para testes em unidades flash

 Por Ciro Mota |  23, Agosto 2021 |  Tempo de leitura aproximadamente 4 minutos.
 Edições: Revisão textual. Em 26, Fevereiro 2022.

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

Neste artigo trago duas ferramentas onde podemos realizar verificações em unidades flash (pendrives ou SSD) de forma bem simples. E onde isso seria útil? Um pendrive por exemplo pode ser utilizado como uma unidade para backup (não é a melhor obviamente, mas daria para ser feito) e, também, se quisermos garantir a sua capacidade correta de armazenamento antes de iniciar o backup, ou verificar se capacidades de velocidades condizem com o descrito pelo fabricante? Podemos executar os testes de forma extremamente simples e 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, além disso 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 muito simples.

f3 - Fight Flash Fraud

Sim, este é o nome da ferramenta e eu a descobri em andanças pelo GitHub. Sua documentação é bem simples e pode ser encontrada neste link. 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.

Com o Docker 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>
  • -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, exemplo, `/dev/sdb´.
  • peron/f3 = Imagem que será utilizada.
  • <f3-command> = Comandos que serão passados para a verificação, que são eles:
    • f3write irá gravar arquivos grandes no disco montado.
    • f3read irá verificar se o disco 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 como podem ver na imagem, eu utilizei o comando proposto na documentação e consta a flag --time-ops e 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.

Já se você roda em Windows existem ‘N’ ferramentas que fazem esse tipo de verificação, sendo as mais usadas, a CrystalDiskInfo e CrystalDiskMark, link.

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

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ção out-of-the-box ou seja, já deverá vir instalada, consegue realizar essa verificação de forma simples. 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, tem esse resultado no teste de badblocks e comprova o que cito acima e que verificações de integridade também são úteis nessas unidades sempre que possível. Este pendrive está quase inutilizável, utilizei no teste somente para fins didáticos.

Se você está no Windows, uma ferramenta excelente para essa função é 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!