Localizando um identificador exclusivo para cartões SD

10

Tenho dezenas de cartões SD que preciso acompanhar para um projeto. No momento, cada um deles possui um número escrito fisicamente com marcador permanente do lado de fora. Tudo bem, mas quero ver se há algo único incorporado em cada cartão SD que posso gravar. Até agora, estou ciente de:

  • O CID do cartão SD, que geralmente (nem sempre ???) inclui um número de série exclusivo. Não consigo encontrar uma maneira direta de ler isso em um cartão SD no Fedora 21. Algumas páginas dizem que, a menos que você tenha um leitor de cartão conectado diretamente ao barramento PCI (e não via USB), não poderá ver o CID.
  • Número de série do volume / partição. Isso pode funcionar, mas entendo que isso muda sempre que o cartão é reformatado, o que é algo que fazemos periodicamente. Portanto, não é uma boa opção.
  • Apenas rotular o volume do cartão SD com meu próprio sistema de nomes. É muito fácil mudar isso, e eu poderia muito bem continuar escrevendo os números do lado de fora.

Então, acho que minhas perguntas são:

  1. Existe uma maneira de ler com segurança o CID dos meus cartões SD para obter números de série através de um leitor de cartão USB no Fedora 21 ou em outras distribuições GNU / Linux?
  2. Caso contrário, existem outras maneiras de usar identificadores exclusivos existentes em um cartão SD ou outro sistema para identificar exclusivamente cartões SD?
hpy
fonte
1
FYI: Não é esperado que você responda a cada resposta. Apesar de votar para cima / para baixo e, se alguém resolver o seu problema, escolhe-o como sua resposta aceita.
derobert
@derobert Entendido, obrigado pela informação!
Hpy

Respostas:

3

blkid (8) é provavelmente o que você está procurando. Ele fornecerá o UUID de cada dispositivo.

Para vfat, pode definir o UUID usando o aplicativo mtools mlabel (1).

Para ext2, ext3 e ext4, o e2label (8) pode ser usado para definir o UUID.

Portanto, se você reformatar de tempos em tempos, basta definir o UUID para o mesmo de antes, se necessário.

Não posso falar por outros leitores de cartão, mas os que usei por uma porta USB passam pelo UUID do cartão SD.

JonathanS
fonte
1
Parece promissor, obrigado !! E o fat32?
Hp
1
Sim, eu acredito que mlabel(1)suporta fat32 também.
JonathanS
1
quaisquer blkidretornos serão alterados sempre que os dados armazenados no cartão SD forem alterados. Isso é muito diferente do CID ou número de série. Se você fez um dd if=/dev/sdcard1 of=/dev/sdcard2 count=2, as alterações são muito grandes blkid /dev/sdcard1e idênticas blkid /dev/sdcard2. Além disso, a observação final da resposta é enganosa: o UUID é derivado dos dados armazenados no cartão SD, e não no cartão, claramente todos os leitores USB permitem ler o conteúdo do cartão SD. O que ainda não é possível é acessar o CID.
HumanidadeANDpeace
3

Com base no comentário @humanityAndpeace, procurar CIDpoderia ser uma solução, mas parece que você não pode obtê-lo de todos os cartões SD. Pelo menos é o caso de um que eu testei. Veja mais documentação aqui .

A idéia é obter informações de /sys/block/<yourBlockDevice>/device/cid

Nota : você pode ler <yourBlockDevice>a partir de sudo dmesgdepois de plug-in

Philippe Gachoud
fonte