У меня есть десятки SD-карт, которые мне нужно отслеживать для проекта. Прямо сейчас, у каждого из них есть номер, физически написанный с постоянным маркером снаружи. Это нормально, но я хочу посмотреть, есть ли что-то уникальное, встроенное в каждую SD-карту, которую я могу записать. До сих пор я знаю о:
- CID SD-карты, который обычно (не всегда ???) включает уникальный серийный номер. Я не могу найти простой способ считывания этого с SD-карты в Fedora 21. На некоторых страницах написано, что, если у вас нет кард-ридера, напрямую подключенного к шине PCI (а не через USB), вы не сможете увидеть CID.
- Том / раздел серийный номер. Это может сработать, но я понимаю, что это меняется каждый раз, когда карта переформатируется, что мы и делаем время от времени. Так что не очень хороший вариант.
- Просто маркировка объема SD-карты с помощью моей собственной уникальной системы имен. Это слишком легко изменить, и я мог бы просто продолжать писать цифры снаружи.
Итак, я думаю, мои вопросы:
- Есть ли способ надежного считывания CID с моих SD-карт для получения серийных номеров с помощью USB-устройства чтения карт в Fedora 21 или других дистрибутивах GNU / Linux?
- Если нет, существуют ли другие способы использования существующих уникальных идентификаторов на SD-карте или в другой системе для уникальной идентификации SD-карт?
Ответы:
blkid (8), вероятно, то, что вы ищете. Это даст UUID каждого устройства.
Для vfat можно установить UUID с помощью приложения mtools mlabel (1).
Для ext2, ext3 и ext4, e2label (8) может использоваться для установки UUID.
Поэтому, если вы переформатируете время от времени, просто установите UUID на тот же, что и раньше, если это необходимо.
Не могу говорить о других считывателях карт, но те, которые я использовал через USB-порт, проходят через UUID SD-карты.
источник
mlabel(1)
поддерживает FAT32.blkid
возвращается, будет меняться всякий раз, когда данные, хранящиеся на SD-карте, изменятся. Это сильно отличается от CID или серийного номера. Если вы сделалиdd if=/dev/sdcard1 of=/dev/sdcard2 count=2
, изменения очень высоки, чтоblkid /dev/sdcard1
будет идентичноblkid /dev/sdcard2
. Также последнее замечание об ответе вводит в заблуждение: UUID получен из данных, хранящихся на SD-карте, а не с карты, очевидно, что большинство USB-ридеров позволяют вам читать содержимое этой SD-карты. То, что по-прежнему невозможно, - это доступ кCID
.Основываясь на комментарии @humanityAndpeace, поиск
CID
может быть решением, но кажется, что вы не можете получить его со всех SD-карт. По крайней мере, это тот случай, который я проверял. Смотрите больше документации здесь .Идея состоит в том, чтобы получить информацию от
/sys/block/<yourBlockDevice>/device/cid
источник