J'ai des dizaines de cartes SD dont je dois faire le suivi pour un projet. À l'heure actuelle, ils ont chacun un numéro écrit physiquement avec un marqueur permanent à l'extérieur. C'est OK, mais je veux voir s'il y a quelque chose d'unique qui est intégré dans chaque carte SD que je peux enregistrer. Jusqu'à présent, je suis au courant de:
- Le CID de la carte SD, qui comprend généralement (pas toujours ???) un numéro de série unique. Je ne peux pas trouver un moyen simple de lire ceci sur une carte SD dans Fedora 21. Certaines pages disent qu'à moins d'avoir un lecteur de carte directement connecté au bus PCI (et non via USB), vous ne pouvez pas voir le CID.
- Numéro de série du volume / partition. Cela peut fonctionner, mais je comprends que cela change à chaque fois que la carte est reformatée, ce que nous faisons de temps en temps. Ce n'est donc pas une bonne option.
- Il suffit d'étiqueter le volume de la carte SD avec mon propre système de nommage unique. C'est trop facile à changer, et je pourrais aussi bien m'en tenir à écrire les chiffres à l'extérieur.
Donc, je suppose que mes questions sont:
- Existe-t-il un moyen de lire le CID de manière fiable sur mes cartes SD pour obtenir des numéros de série via un lecteur de carte USB dans Fedora 21 ou d'autres distributions GNU / Linux?
- Sinon, existe-t-il d'autres façons d'utiliser des identifiants uniques existants dans une carte SD ou un autre système pour identifier de manière unique les cartes SD?
Réponses:
blkid (8) est probablement ce que vous recherchez. Il donnera l'UUID de chaque appareil.
Pour vfat, peut définir l'UUID à l'aide de l'application mtools mlabel (1).
Pour ext2, ext3 et ext4, e2label (8) peut être utilisé pour définir l'UUID.
Donc, si vous reformatez de temps en temps, définissez simplement l'UUID sur la même valeur qu'auparavant si nécessaire.
Je ne peux pas parler pour les autres lecteurs de carte, mais ceux que j'ai utilisés via un port USB passent par l'UUID de la carte SD.
la source
mlabel(1)
prend également en charge fat32.blkid
retours changent chaque fois que les données stockées sur la carte SD changent. Ceci est très différent du CID ou du numéro de série. Si vous avez fait undd if=/dev/sdcard1 of=/dev/sdcard2 count=2
, les changements sont très importants etblkid /dev/sdcard1
seront identiques àblkid /dev/sdcard2
. La dernière remarque de la réponse est également trompeuse: l'UUID est dérivé des données stockées sur la carte SD, et non de la carte, la plupart des lecteurs USB vous permettront clairement de lire le contenu de la carte SD. Ce qui n'est toujours pas possible, c'est d'accéder àCID
.Sur la base du commentaire de @humanityAndpeace, la recherche
CID
pourrait être une solution, mais il semble que vous ne puissiez pas l'obtenir à partir de toutes les cartes SD. C'est du moins le cas pour celui que j'ai testé. Voir plus de documentation ici .L'idée est d'obtenir des informations de
/sys/block/<yourBlockDevice>/device/cid
la source