Encontrar un identificador único para tarjetas SD

10

Tengo docenas de tarjetas SD que necesito hacer un seguimiento de un proyecto. En este momento, cada uno tiene un número escrito físicamente con un marcador permanente en el exterior. Esto está bien, pero quiero ver si hay algo único integrado en cada tarjeta SD que pueda grabar. Hasta ahora soy consciente de:

  • El CID de la tarjeta SD, que generalmente (no siempre ???) incluye un número de serie único. No puedo encontrar una manera sencilla de leer esto en una tarjeta SD en Fedora 21. Algunas páginas dicen que a menos que tenga un lector de tarjetas conectado directamente al bus PCI (y no a través de USB), no puede ver el CID.
  • Número de serie del volumen / partición. Esto podría funcionar, pero entiendo que esto cambia cada vez que se reformatea la tarjeta, que es algo que hacemos de vez en cuando. Entonces no es una buena opción.
  • Simplemente etiquetando el volumen de la tarjeta SD con mi propio sistema de nombres único. Esto es demasiado fácil de cambiar, y también podría seguir escribiendo los números en el exterior.

Entonces, supongo que mis preguntas son:

  1. ¿Hay alguna manera confiable de leer el CID de mis tarjetas SD para obtener números de serie a través de un lector de tarjetas USB en Fedora 21 u otras distribuciones de GNU / Linux?
  2. Si no, ¿hay otras formas de usar identificadores únicos existentes en una tarjeta SD u otro sistema para identificar tarjetas SD de manera única?
hpy
fuente
1
FYI: Realmente no se espera que respondas a cada respuesta. A pesar de votar hacia arriba / abajo y, si uno resuelve su problema, definitivamente lo apreciamos como su respuesta aceptada.
derobert
@derobert Entendido, gracias por la información!
hpy

Respuestas:

3

blkid (8) es probablemente lo que estás buscando. Le dará el UUID de cada dispositivo.

Para vfat, puede configurar UUID usando la aplicación mtools mlabel (1).

Para ext2, ext3 y ext4, e2label (8) se puede usar para configurar el UUID.

Entonces, si vuelve a formatear de vez en cuando, simplemente configure el UUID igual que antes si es necesario.

No puedo hablar por otros lectores de tarjetas, pero los que he usado a través de un puerto USB pasan a través del UUID de la tarjeta SD.

JonathanS
fuente
1
Suena prometedor, gracias !! ¿Qué hay de fat32?
hpy
1
Sí, creo que también es mlabel(1)compatible con fat32.
JonathanS
1
lo que sea que blkidregrese cambiará cada vez que cambien los datos almacenados en la tarjeta SD. Esto es muy diferente al CID o al número de serie. Si realizó un dd if=/dev/sdcard1 of=/dev/sdcard2 count=2, los cambios son muy altos que blkid /dev/sdcard1serán idénticos a blkid /dev/sdcard2. Además, el comentario final de la respuesta es engañoso: el UUID se deriva de los datos almacenados en la tarjeta SD, y no de la tarjeta, claramente todos los lectores USB le permitirán leer el contenido de la tarjeta SD. Lo que aún no es posible es acceder a CID.
humanityANDpeace
3

Según el comentario de @humanityAndpeace, Buscar CIDpodría ser una solución, pero parece que no se puede obtener de todas las tarjetas SD. Al menos es el caso de uno que probé. Ver más documentación aquí .

La idea es obtener información de /sys/block/<yourBlockDevice>/device/cid

Nota : se puede leer <yourBlockDevice>a partir sudo dmesgDespués de enchufe

Philippe Gachoud
fuente