Пошук унікального ідентифікатора для SD-карт


10

У мене є десятки карт SD, які мені потрібно відстежувати для проекту. Зараз у кожного з них номер, записаний фізично, з постійним маркером на зовнішній стороні. Це нормально, але я хочу перевірити, чи є щось унікальне, що вбудовано у кожну SD-карту, яку я можу записати. Поки мені відомо:

  • CID карти SD, яка зазвичай (не завжди є ???) містить унікальний серійний номер. Я не можу знайти простого способу зчитувати це з SD-карти у Fedora 21. Деякі сторінки говорять, що, якщо у вас немає читача карт безпосередньо підключений до шини PCI (а не через USB), ви не можете побачити CID.
  • Серійний номер тома / розділу. Це може спрацювати, але я розумію, що це змінюється щоразу, коли картка переформатується, що ми робимо час від часу. Тож не вдалий варіант.
  • Просто позначення обсягу SD-карти за допомогою власної унікальної системи імен. Це занадто легко змінити, і я міг би просто дотримуватися написання цифр зовні.

Отже, я думаю, мої запитання:

  1. Чи є спосіб надійного зчитування CID з моїх SD-карт, щоб отримати серійні номери через зчитувач USB-карт у Fedora 21 або інших дистрибутивах GNU / Linux?
  2. Якщо ні, чи існують інші способи використання існуючих унікальних ідентифікаторів на SD-картці чи іншій системі для однозначної ідентифікації SD-карт?

1
FYI: Від кожної відповіді насправді не очікується. Хоча голосування вгору / вниз за них і, якщо хтось вирішує вашу проблему, вибираючи це як прийняту відповідь, безумовно, вдячний.
дероберт

@derobert Розумів, дякую за інформацію!
hpy

Відповіді:


3

blkid (8) - це, мабуть, те, що ви шукаєте. Це дасть UUID кожного пристрою.

Для vfat можна встановити UUID за допомогою програми mtools mlabel (1).

Для ext2, ext3 та ext4, e2label (8) можна використовувати для встановлення UUID.

Тому якщо ви час від часу переформатуєте, просто встановіть UUID таким, яким він був раніше, якщо потрібно.

Не можу говорити для інших зчитувачів карт, але ті, які я використовував через порт USB, проходять через UUID SD-карти.


1
Звучить багатообіцяюче, дякую !! Що з fat32?
hpy

1
Так, я вважаю, що mlabel(1)підтримує fat32 також.
JonathanS

1
все, що blkidповертається, буде змінюватися щоразу, коли дані, що зберігаються на SD-картці, зміняться. Це значно відрізняється від CID або серійного номера. Якщо ви зробили це dd if=/dev/sdcard1 of=/dev/sdcard2 count=2, зміни будуть дуже високими, які blkid /dev/sdcard1будуть ідентичними blkid /dev/sdcard2. Також остаточне зауваження відповіді вводить в оману: UUID отримується з даних, що зберігаються на SD-картці, а не на картці, очевидно, що більшість USB-зчитувачів дозволить вам прочитати вміст SD-карти. Що ще неможливо - це отримати доступ до CID.
humanityANDpeace

3

На основі коментаря @humanityAndpeace, Шукати CIDможе бути рішенням, але, здається, ви не можете отримати його з усіх SD карт. Принаймні, це стосується одного я тестуваного. Дивіться більше документації тут .

Ідея полягає в тому, щоб отримати інформацію від /sys/block/<yourBlockDevice>/device/cid

Примітка : ви можете читати <yourBlockDevice>з sudo dmesgпісля підключення

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.