Detectar un USB falso

Soy consciente de que no hay duros a cuatro pesetas. Pero no veo, ni medio, normal que se puedan vender productos, que no cumplen con las especificaciones. No termino de entender que se puedan vender cremas, asegurándote que te van a quitar todas las arrugas de la cara, y te la van a dejar como la una persona de 18 años. Al igual, que se permita que te aseguren que sin hacer ejercicio físico, y comiendo todo lo que quieras vas a perder 20 kilogramos en dos semanas. Para mi, esto es un delito. Pero, volviendo al tema que nos ocupa, ¿y si te venden un USB de 128 GB y cuando te das cuenta esde 8 GB?. Para mi, salvando las distancias, es un caso exactamente igual de grave que los dos anteriores. A mi, me ha pasado esto, hace algún tiempo. La cuestión es que pensé en todo momento que el problema lo tenía yo, que no había sabido particionar y fomarmatear la unidad… Pero nada mas lejos de la realidad. El problema era sencillo, me habían engañado. ¿como puedes comprobar si te han vendido un USB falso?

En este artículo te cuento, no solo como puedes comprobar la capacidad de una memoria USB, sino también, como comprobar su desempeño. De esta forma, podrás comprobar, si se cumplen las especificaciones de la memoria USB, que has comprado, o si te han vendido un USB falso.

Comprobar si un USB es falso

Comprobar si tienes un USB falso

Como te decía en la introducción, soy consciente de que no se venden duros a cuatro pesetas. Sin embargo, quien no ha visto una oferta brutal, de esas que se desencajan los ojos, y no se lanza, como un poseso, para aprovecharla.

No te voy a engañar, a mi me ha sucedido. Y no una, ni dos veces, han sido en varias ocasiones. Pero es que, una oferta de un USB 3.0 de 128 GB de RAM por 10 euros, de una marca reconocida… ¿Quien se va a resistir a esta oferta?. Yo no pude resistirme. Y si, al final, me dieron gato por liebre.

f3 Fight Flash Fraud o detectar un USB falso

f3 es una herramienta pensada para comprobar que lo que te han vendido, es lo que te prometieron. Eso en lo que se refiere a las memorias USB (ojala esta aplicación estuviera disponible para tantas y tantas cosas).

La cuestión es que al desarrollador de esta aplicación, le pasó algo parecido a lo que me sucedió a mi (y probablemente a ti). Compró una memoria microSDHC de 23 GB, y no era lo que parecía.

En este sentido, utilizó una aplicación, para Windows, pero que no es software libre. A raíz de esto, implementó su propia solución para Linux, y la liberó bajo licencia GPLv3.

Las herramientas

Con f3 tenemos una pequeña suite de herramientas que nos permiten realizar diferentes tareas con las unidades USB. Así, tienes

  • f3write y f3read, la primera de las herramienas escribe archivos de gran tamaño en una memoria USB que tengas montada. Mientras que la segunda se encarga de comprobar que lo que has escrito es correcto.
  • f3probe que es la aplicación para identificar de forma sencilla se un USB es un fraude y determinar su tamaño real.
  • f3fix es la herramienta con la que habilitar la capacidad real de una memoria USB sin perder el contenido.
  • f3brew permite a los desarrolladores determinar que unidades falsas funcionan.

Instalación

Esta suite de herramientas se encuentra disponible en los repositorios oficiales de Ubuntu. De esta manera, su instalación es tan sencilla como ejecutar la siguiente instrucción en un terminal,

sudo apt install f3

Uso y funcionamiento

Antes de nada, una advertencia, algunas de estas herramientas pueden borrar el contenido de la memoria USB. Por esta razón te recomiendo, que solo utilices estas herramientas con unidades vacías. Lo mejor sería que las utilizaras nada mas comprarlas. De esta forma, en caso de que no cumplan con las prestaciones puedas devolverlas.

Comprobar la capacidad de un USB con f3write y f3read

La primera de las dos herramientas, que se utilizan para comprobar la capacidad de un USB, f3write, lo que hace es llenar un sistema de archivos, con archivos de 1 GB denominados 1.h2w, 2.h2w, 3.h2w,…

Una vez esta herramienta ha terminado su trabajo, tienes que poner en marcha f3read. Esta segunda herramienta es la que te va a permitir validar los archivos que has escrito previamente.

De esta forma, si el contenido de todos los archivos es correcto, te indicará que tu memoria USB funciona correctamente.

En el caso de que no sea correcto, te permitirá hacerte una idea del tamaño real, puesto que te indicará cuanto ha escrito. Esto es así porque f3write solo escribe en el espacio libre.

Así, para utilizarlo solo tienes que ejecutar la siguiente instrucción en un terminal,

f3write /media/lorenzo/<usb>/

Una vez terminado, tienes que ejecutar esta segunda instrucción,

f3read /media/lorenzo/<usb>/

Como has podido observar, f3write y f3read son completamente indpendientes. De esta manera f3read lo puedes utilizar tantas veces como desees, mientras, que su complementario, f3write solo es necesario que lo ejecutes un vez.

Si lo quieres utilizar como única herramienta, puedes utilizar el siguiente script,

#!/bin/bash
LOG=$1
$(dirname $0)/f3write "${@:2}" 2>&1 | tee -a "${LOG}" && \
echo -e "\n\n" >> "${LOG}" && \
$(dirname $0)/f3read "${@:2}" 2>&1 | tee -a "${LOG}"

Este sencillo script, simplemente ejecuta ambas herramientas, y guarda los resultados en un archivo de registro. Así para utilizarlo simplemente ejecutar,

log-f3wr /home/lorenzo/registro.log /media/lorenzo/<usb>/

En todos los casos, debes sustituir <usb> por el directorio correspondiente donde está montado el USB.

Por último, dependiendo de como esté montado el USB es posible que necesites ganar derechos de administrador para hacer estas pruebas.

En una memoria de 16 GB los tiempos han sido los siguientes,

  • f3write 26 minutos
  • f3read 2 minutos
  • f3probe 4 minutos

Comprobar si tu USB es falso

Si solo quieres conocer si un USB es falso, es decir, que no cumple con las características con las que te lo han vendido, no es necesario que utilices las herramientas anteriores. En este caso, puedes utilizar f3probe. Sin embargo, para esta caso, es necesario que puedas ganar derechos de administrador.

Para utilizar f3probe necesitas determinar la unidad. Para esto puedes utilizar lsblk, tal y como hiciste en el artículo sobre como formatear un usb en tu Raspberry Pi.

$ lsblk -o UUID,NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL,MODEL

Con esto tienes suficiente información para determinar, donde está tu USB montado. Una vez ya lo tienes todo claro, solo tienes que ejecutar la siguiente instrucción,

$ sudo f3probe --destructive --time-ops /dev/sdb

La opción --destructive obviará el contenido de la unidad. Vamos que vas a perder los datos que allí tengas guardados. Esto es a favor de que el test se realice a mayor velocidad.

Por otro lado, la opción --time-ops te mostrará información sobre la duración de la comprobación.

En mi caso el resultado ha sido el siguiente

Good news: The device `/dev/sdb' is the real thing
 Device geometry:
              Usable size: 14.32 GB (30031250 blocks)
             Announced size: 14.32 GB (30031250 blocks)
                     Module: 16.00 GB (2^34 Bytes)
     Approximate cache size: 0.00 Byte (0 blocks), need-reset=no
        Physical block size: 512.00 Byte (2^9 Bytes)
 Probe time: 3'44"
  Operation: total time / count = avg time
      Read: 486.1ms / 4814 = 100us
      Write: 3'42" / 4192321 = 53us
      Reset: 1us / 1 = 1us

Como ves, en mi caso, la meoira es lo que es The device /dev/sdb is the real thing

Reutilizar un USB falso

Si te han dado gato por liebre tienes dos opciones o bien reclamar o bien conformarte. No es necesario que yo te lo diga, pero lo mejor es reclamar. No solo por ti, sino también por los demás, para evitar que a otros compradores les pase lo que a ti. Sin embargo, es posible que a ti no te merezca la pena, por la razón que sea. En este caso, tienes que reparar ese USB falso para poder utilizarlo.

Para poder reutilizar tu USB falso, es necesario que ejecutes previamente la herramienta anterior, f3probe. Al ejecutar esta utilidad te indicará exactamente el tamaño útil* de tu USB. Esto viene definido por usable size. Ese tamaño te lo indica tanto en GB como en bloques. Es este segundo valor el que tienes que indicar a la hora de realizar la reparación.

Así por ejemplo, la instrucción a ejecutar será algo como,

sudo ./f3fix --last-sec=<numero de bloques> /dev/sdb

Una vez terminado, extrae e introduce la memoria USB, y posteriormente formatea la partición. Para esto último, de nuevo te recomiendo le des un vistazo al artículo sobre como formatear un usb en tu Raspberry Pi. En el caso de que optes por ext4, la instrucción sería la siguiente,

sudo mkfs.ext4 /dev/sdb1

Con esto tu memoria USB debería de funcionar perfectamente. Sin embargo, es recomendable, según el propio autor de la aplicación, comprobar todos los bloques utilizando la pareja de herramientas f3write y f3read.


Más información,

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *