Нахождение уникального идентификатора для SD-карт

10

У меня есть десятки SD-карт, которые мне нужно отслеживать для проекта. Прямо сейчас, у каждого из них есть номер, физически написанный с постоянным маркером снаружи. Это нормально, но я хочу посмотреть, есть ли что-то уникальное, встроенное в каждую SD-карту, которую я могу записать. До сих пор я знаю о:

  • CID SD-карты, который обычно (не всегда ???) включает уникальный серийный номер. Я не могу найти простой способ считывания этого с SD-карты в Fedora 21. На некоторых страницах написано, что, если у вас нет кард-ридера, напрямую подключенного к шине PCI (а не через USB), вы не сможете увидеть CID.
  • Том / раздел серийный номер. Это может сработать, но я понимаю, что это меняется каждый раз, когда карта переформатируется, что мы и делаем время от времени. Так что не очень хороший вариант.
  • Просто маркировка объема SD-карты с помощью моей собственной уникальной системы имен. Это слишком легко изменить, и я мог бы просто продолжать писать цифры снаружи.

Итак, я думаю, мои вопросы:

  1. Есть ли способ надежного считывания CID с моих SD-карт для получения серийных номеров с помощью USB-устройства чтения карт в Fedora 21 или других дистрибутивах GNU / Linux?
  2. Если нет, существуют ли другие способы использования существующих уникальных идентификаторов на SD-карте или в другой системе для уникальной идентификации SD-карт?
HPY
источник
1
К вашему сведению: вы не должны отвечать на каждый ответ. Несмотря на то, что вы голосуете «за» и «против» и, если решаете вашу проблему, выбирая ее в качестве принятого вами ответа, мы будем благодарны.
Дероберт
@ derobert Понял, спасибо за информацию!
hpy

Ответы:

3

blkid (8), вероятно, то, что вы ищете. Это даст UUID каждого устройства.

Для vfat можно установить UUID с помощью приложения mtools mlabel (1).

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

Поэтому, если вы переформатируете время от времени, просто установите UUID на тот же, что и раньше, если это необходимо.

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

Jonathans
источник
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.
человечествоANDpeace
3

Основываясь на комментарии @humanityAndpeace, поиск CIDможет быть решением, но кажется, что вы не можете получить его со всех SD-карт. По крайней мере, это тот случай, который я проверял. Смотрите больше документации здесь .

Идея состоит в том, чтобы получить информацию от /sys/block/<yourBlockDevice>/device/cid

Примечание : вы можете прочитать <yourBlockDevice>с sudo dmesgпосле пробки в

Филипп Гачу
источник