Suchen einer eindeutigen Kennung für SD-Karten


10

Ich habe Dutzende von SD-Karten, die ich für ein Projekt im Auge behalten muss. Im Moment haben sie jeweils eine Nummer, die physisch mit einem dauerhaften Marker auf der Außenseite geschrieben ist. Dies ist in Ordnung, aber ich möchte sehen, ob in jede SD-Karte, die ich aufnehmen kann, etwas Einzigartiges eingebaut ist. Bisher ist mir bekannt:

  • Die CID der SD-Karte, die normalerweise (nicht immer ???) eine eindeutige Seriennummer enthält. Ich kann in Fedora 21 keinen einfachen Weg finden, dies von einer SD-Karte abzulesen. Auf einigen Seiten heißt es, dass Sie die CID nicht sehen können, wenn Sie keinen Kartenleser haben, der direkt an den PCI-Bus angeschlossen ist (und nicht über USB).
  • Seriennummer des Volumes / der Partition. Dies mag funktionieren, aber ich verstehe, dass sich dies jedes Mal ändert, wenn die Karte neu formatiert wird, was wir von Zeit zu Zeit tun. Also keine gute Option.
  • Beschriften Sie einfach das SD-Kartenvolumen mit meinem eigenen eindeutigen Benennungssystem. Das ist zu einfach zu ändern, und ich könnte genauso gut einfach die Zahlen auf die Außenseite schreiben.

Ich denke also, meine Fragen sind:

  1. Gibt es eine Möglichkeit, die CID von meinen SD-Karten zuverlässig zu lesen, um Seriennummern über einen USB-Kartenleser in Fedora 21 oder anderen GNU / Linux-Distributionen zu erhalten?
  2. Wenn nicht, gibt es andere Möglichkeiten, vorhandene eindeutige Kennungen in einer SD-Karte oder einem anderen System zur eindeutigen Identifizierung von SD-Karten zu verwenden?

1
Zu Ihrer Information: Es wird nicht wirklich erwartet, dass Sie auf jede Antwort antworten. Obwohl Sie über sie abstimmen und, wenn Sie Ihr Problem lösen, es als Ihre akzeptierte Antwort auswählen, werden Sie auf jeden Fall geschätzt.
Derobert

@derobert Verstanden, danke für die Info!
hpy

Antworten:


3

blkid (8) ist wahrscheinlich das, wonach Sie suchen. Es wird die UUID jedes Geräts angegeben.

Kann für vfat die UUID mit der mtools-Anwendung mlabel (1) festlegen.

Für ext2, ext3 und ext4 kann e2label (8) verwendet werden, um die UUID festzulegen.

Wenn Sie also von Zeit zu Zeit neu formatieren, stellen Sie die UUID bei Bedarf auf die gleiche Weise wie zuvor ein.

Ich kann nicht für andere Kartenleser sprechen, aber diejenigen, die ich über einen USB-Anschluss verwendet habe, passieren die UUID der SD-Karte.


1
Klingt vielversprechend, danke !! Was ist mit fat32?
hpy

1
Ja, ich glaube, mlabel(1)unterstützt auch fat32.
JonathanS

1
Alle blkidRückgaben ändern sich, wenn sich die auf der SD-Karte gespeicherten Daten ändern. Dies unterscheidet sich stark von der CID oder der Seriennummer. Wenn Sie eine vorgenommen haben dd if=/dev/sdcard1 of=/dev/sdcard2 count=2, sind die Änderungen sehr hoch blkid /dev/sdcard1und identisch mit blkid /dev/sdcard2. Auch die letzte Bemerkung der Antwort ist irreführend: Die UUID wird aus den auf der SD-Karte gespeicherten Daten und nicht aus der Karte abgeleitet. Mit den meisten USB-Lesegeräten können Sie den Inhalt der SD-Karte lesen. Was immer noch nicht möglich ist, ist der Zugriff auf die CID.
Menschlichkeit und

3

Basierend auf dem Kommentar von @humanityAndpeace CIDkönnte das Suchen nach einer Lösung sein, aber es scheint, dass Sie es nicht von allen SD-Karten erhalten können. Zumindest ist es bei einem der Fall, den ich getestet habe. Weitere Dokumentation finden Sie hier .

Die Idee ist, Infos von zu bekommen /sys/block/<yourBlockDevice>/device/cid

Hinweis : Sie können lesen <yourBlockDevice>aus sudo dmesgnach Stecker in

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.