Znalezienie unikalnego identyfikatora dla kart SD


10

Mam dziesiątki kart SD, które muszę śledzić w projekcie. W tej chwili każdy z nich ma fizycznie zapisany numer ze stałym znacznikiem na zewnątrz. To jest OK, ale chcę sprawdzić, czy w każdej karcie SD jest coś wyjątkowego, co mogę nagrać. Jak dotąd jestem świadomy:

  • Identyfikator CID karty SD, który zwykle (nie zawsze ???) zawiera unikalny numer seryjny. Nie mogę znaleźć prostego sposobu na odczytanie tego z karty SD w Fedorze 21. Niektóre strony mówią, że jeśli nie masz czytnika kart bezpośrednio podłączonego do magistrali PCI (a nie przez USB), nie widzisz CID.
  • Numer seryjny woluminu / partycji. Może to działać, ale rozumiem, że zmienia się to za każdym razem, gdy karta jest formatowana, co robimy od czasu do czasu. Więc nie jest to dobra opcja.
  • Po prostu oznaczam wolumin karty SD własnym unikalnym systemem nazewnictwa. Jest to zbyt łatwe do zmiany i równie dobrze mogę trzymać się pisania liczb na zewnątrz.

Myślę, że moje pytania to:

  1. Czy istnieje sposób na niezawodny odczyt CID z moich kart SD, aby uzyskać numery seryjne za pomocą czytnika kart USB w Fedorze 21 lub innych dystrybucjach GNU / Linux?
  2. Jeśli nie, czy istnieją inne sposoby wykorzystania istniejących unikalnych identyfikatorów na karcie SD lub w innym systemie do jednoznacznej identyfikacji kart SD?

1
FYI: Naprawdę nie oczekuje się od ciebie odpowiedzi na każdą odpowiedź. Chociaż głosowanie w górę / w dół na nich i, jeśli ktoś rozwiąże twój problem, wybranie go jako zaakceptowanej odpowiedzi jest zdecydowanie mile widziane.
derobert

@derobert Zrozumiałem, dziękuję za informacje!
hpy

Odpowiedzi:


3

blkid (8) jest prawdopodobnie tym, czego szukasz. Poda identyfikator UUID każdego urządzenia.

W przypadku vfat można ustawić UUID za pomocą aplikacji mtools mlabel (1).

W przypadku ext2, ext3 i ext4 można użyć e2label (8) do ustawienia UUID.

Jeśli więc od czasu do czasu formatujesz, po prostu ustaw UUID na taki sam, jak wcześniej, jeśli to konieczne.

Nie mogę mówić za innymi czytnikami kart, ale te, których użyłem przez port USB, przechodzą przez UUID karty SD.


1
Brzmi obiecująco, dzięki !! Co z fat32?
hpy

1
Tak, wierzę, że mlabel(1)obsługuje również fat32.
JonathanS

1
wszelkie blkidzwroty ulegną zmianie za każdym razem, gdy zmienią się dane zapisane na karcie SD. To znacznie różni się od numeru CID lub numeru seryjnego. Jeśli dokonałeś dd if=/dev/sdcard1 of=/dev/sdcard2 count=2, zmiany są bardzo wysokie, które blkid /dev/sdcard1będą identyczne blkid /dev/sdcard2. Również ostatnia uwaga odpowiedzi jest myląca: UUID pochodzi z danych przechowywanych na karcie SD, a nie na karcie, oczywiście większość czytników USB pozwoli ci odczytać zawartość tej karty SD. To, co nadal nie jest możliwe, to dostęp do CID.
ludzkośćANDpeace

3

Na podstawie komentarza @humanityAndpeace, Poszukiwanie CIDmoże być rozwiązaniem, ale wydaje się, że nie można go uzyskać ze wszystkich kart SD. Przynajmniej tak jest w przypadku jednego, który testowałem. Zobacz więcej dokumentacji tutaj .

Chodzi o to, aby uzyskać informacje z /sys/block/<yourBlockDevice>/device/cid

Uwaga : można odczytać <yourBlockDevice>z sudo dmesgpo wtyczki w

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.