Recentemente, li muito sobre cartões microSD e pen drives USB falsos que afirmam ter muito espaço (mesmo que você pergunte ao seu computador), enquanto oferece fisicamente muito menos. Recentemente, comprei uma unidade USB SanDisk (128 GB reivindicada) e quero testar seu tamanho. Não é comprado via ebay ou algo assim, mas eu realmente quero testar o tamanho real antes de usá-lo produtivamente.
Eu poderia simplesmente copiar coisas nele, copiar novamente e verificar se os arquivos estão bem. Eu também poderia automatizá-lo com Hashes e outras coisas. Mas eu esperava que houvesse uma solução mais precisa. Eu li que, para Windows, o H2testw faz o truque. Existe uma maneira fácil de testar isso no Ubuntu / Linux? Uma ferramenta especializada e bem funcional, talvez?
Atualização: Apenas para esclarecer, a idéia é verificar se o tamanho que o sistema linux recebe pelo controlador está correto ( para que nenhum dado seja perdido ). Não é como se eu quisesse ver se recebo 128 GB em vez de 127,3 GB. Quero testar se todos os dados que escrevo serão legíveis novamente. Infelizmente, só consigo encontrar algumas informações sobre isso nos sites de tecnologia em inglês. Existem boas fontes alemãs, no entanto. Na verdade, estou procurando por um aplicativo como esses, mas para o Ubuntu / Linux: https://www.raymond.cc/blog/test-and-detect-fake-or-counterfeit-usb-flash-drives-bought-from -ebay-with-h2testw /
Update2: tentei reunir algumas fontes em inglês. Não li todos em detalhes, devido à falta de tempo.
- https://www.ebay.com/gds/All-About-Fake-Flash-Drives-2013-/10000000177553258/g.html
- https://en.wikipedia.org/wiki/USB_flash_drive#Counterfeit_products
- https://www.heise.de/newsticker/meldung/Verdaechtige-USB-Sticks-mit-2-Terabyte-bei-Amazon-Faelschungen-entlarven-Datenverluste-vermeiden-3915202.html
- http://www.pcgameshardware.de/USB-Stick-Hardware-255579/News/falsche-Speicherkapazitaet-bei-Amazon-1245682/
Update3: Explicações
Devido às críticas estranhas abaixo, algumas explicações.
Qual é o problema e por que o dd sozinho não o resolve?
Esta é uma reação a
"Descubra claramente qual é o problema que você está tentando resolver e qual é a definição de" unidade falsa "."
Parece que algumas pessoas não entendem o problema. Por isso, tento explicar o mínimo possível em detalhes, embora eu ache que isso seja muito para a extensão da minha pergunta.
A capacidade dos dispositivos USB fornecidos pelo sistema operacional ou pelas ferramentas unix pode estar errada. Isso é fatal, pois seu sistema operacional regula a quantidade de dados para os quais você pode enviá-los. Envie mais dados do que realmente pode conter; você terá uma perda de dados. Isto é um problema. Então, por que isso pode acontecer?
Você não precisa conhecer bem o protocolo USB para entender o problema. As interfaces seriais têm a propriedade comum de que o dispositivo cliente (a unidade USB) precisará informar sua própria capacidade por meio dessa interface serial. Isso significa que o dispositivo cliente precisa de seu próprio controlador, com algum conhecimento sobre a finalidade do dispositivo e, nesse caso, sua capacidade. Ele também decide o que é feito, quando recebe o comando para armazenar algo. Se o controlador estiver programado dessa maneira, ele pode simplesmente ignorar o comando ou substituir algo com os dados.
O que isto significa? O que quer que suas ferramentas unix digam sobre a capacidade da unidade: é o que as ferramentas pediram à unidade, nada mais. É para isso que o h2testw foi inventado: ele testa o tamanho real com um método explicado posteriormente e o compara com o que a unidade diz. Se isso não for o mesmo, você poderá ter uma perda de dados, porque todas as suas operações comuns para armazenar dados dependem das informações do seu sistema operacional, que apenas solicita ao controlador. Por que apenas perguntar? O teste precisa de tempo e substitui todos os dados na unidade. Portanto, é natural que um sistema operacional precise confiar nessas informações.
Para verificar a capacidade real como o h2testw, você pode realmente usar dd
para gravar dados na unidade, ler novamente e verificar se é o mesmo que você escreveu. Totalmente legítimo. A natureza do hardware e a unidade o tornam mais complicado. Considere caches de gravação, por exemplo. Você precisa garantir que você não leia a partir do cache. Este é apenas um exemplo de por que não é tão fácil quanto parece. Pense também que apenas escrever zeros significa uma baixa entropia de informações, que pode ser reconstruída durante a leitura. Simplesmente não é tão fácil em detalhes. Você ainda pode fazer isso manualmente, é claro.
Mas por que, quando você pode automatizar as coisas? Por que ao trabalho? O f3, como proposto na minha resposta abaixo, implementa muitos pensamentos de muitos colaboradores (considere que ele meio que estendeu o h2testw) e também implementa vários métodos com diferentes trade-offs. O desenvolvedor descobriu os truques de diferentes unidades falsas (também conhecidas como unidades falsificadas) que eles tinham em mãos . Portanto, embora eu compreenda a teoria e o problema (aparentemente porque os problemas são bem explicados na mídia tecnológica alemã, mas não na mídia de língua inglesa), não pretendo entender tudo, e foi por isso que mencionei acima. É apenas a teoria que eu entendo e sou mais um cara de software. Mas, como estudante de informática, eu o entendo bem o suficiente para ver o problema.
"Tente entender os utilitários básicos do Unix"
Na verdade, eu já respondi a essa pergunta, mas para deixar claro: as ferramentas Unix usam apenas o protocolo USB (apenas para dispositivos USB, é claro) para coletar informações. Não faz sentido fazer mais do que isso.
Ajuda comprar apenas de fornecedores de confiança?
tl; dr: Não.
"Quando se trata de comprar mercadorias, assim como qualquer forma de segurança, considere encontrar um vendedor confiável e comprar unidades apenas deles".
Segurança (e segurança) NÃO é confiança! É sobre verificação e validação! Desculpe, mas isso é tão errado de muitas maneiras.
Suponha que você compre através de um vendedor confiável. Algumas questões:
O fornecedor testou o hardware para garantir que não haja perda de dados? Reconhece quando ele compra discos falsos e os vende? Não necessariamente.
É possível que ele compre coisas que não sabe que são falsas? Totalmente, veja as recentes ryzen fakes: https://www.pcgamer.com/beware-of-fake-ryzen-processors-selling-on-amazon/ , https://www.heise.de/newsticker/meldung/ Direitos autorais: Amazon Faelschungen-AMDs-Ryzen-Prozessoren-im-Umlauf-3772757.html
Se eu perder minha apresentação na unidade e estragar tudo, meu fornecedor confiável voltará no tempo e me resgatará? Provavelmente substituirá a unidade, desde que o último DeLorean que viajou no tempo foi destruído em 1885.
Outras coisas
"Essa pergunta realmente parece mais uma" promoção "do que o OP gosta e parece que o OP está muito menos interessado em realmente testar as unidades."
Isto é ridículo. Eu estava procurando especificamente por uma ferramenta semelhante ao h2testw que também roda em linux. E sim, é disso que eu "gostaria", resposta útil, desculpe. Eu não tinha ideia de que a imprensa de língua inglesa não estava tão ciente de tais questões e tive a sorte de encontrar algo assim mais tarde. Esta não é uma promoção, mas, na verdade, parece que você poderia usá-la.
df --block-size=M
. O limite de 4 GB sugere que é apenas o tamanho do arquivo FAT32, não a capacidade da unidade. Você nunca terá a capacidade total declarada, é uma média apenas para classificá-la.