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:
- 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?
- 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?
Respostas:
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.
fonte
mlabel(1)
suporta fat32 também.blkid
retornos 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 umdd if=/dev/sdcard1 of=/dev/sdcard2 count=2
, as alterações são muito grandesblkid /dev/sdcard1
e idênticasblkid /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 oCID
.Com base no comentário @humanityAndpeace, procurar
CID
poderia 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
fonte