我有数十张 SD 卡,需要为项目进行跟踪。现在,他们每个人都有一个用永久性记号笔写在外面的数字。这没问题,但我想看看每张 SD 卡中是否内置了一些可以记录的独特内容。到目前为止我知道:
- SD 卡的 CID,通常(并不总是???)包含一个唯一的序列号。我找不到在 Fedora 21 中从 SD 卡读取此信息的直接方法。有些页面说,除非您有直接连接到 PCI 总线(而不是通过 USB)的读卡器,否则您看不到 CID。
- 卷/分区序列号。这可能工作,但我知道每次重新格式化卡时都会发生变化,这是我们不时做的事情。所以这不是一个好的选择。
- 只是用我自己独特的命名系统标记 SD 卡卷。这太容易改变了,我还不如坚持把数字写在外面。
所以,我想我的问题是:
- 在 Fedora 21 或其他 GNU/Linux 发行版中,有没有一种方法可以可靠地读取 SD 卡上的 CID,以通过 USB 读卡器获取序列号?
- 如果没有,是否有其他方法可以使用 SD 卡或其他系统中现有的唯一标识符来唯一标识 SD 卡?
答案1
根据@ humanityAndpeace 评论,寻找CID
可能是一个解决方案,但似乎你无法从所有 SD 卡中获取它。至少我测试过的一个是这样。查看更多文档这里。
这个想法是从以下位置获取信息/sys/block/<yourBlockDevice>/device/cid
笔记:插入后即可
<yourBlockDevice>
读取sudo dmesg
答案2
blkid(8) 可能就是您正在寻找的。它将给出每个设备的 UUID。
对于 vfat,可以使用 mtools 应用程序 mlabel(1) 设置 UUID。
对于 ext2、ext3 和 ext4,可以使用 e2label(8) 设置 UUID。
因此,如果您不时重新格式化,只需根据需要将 UUID 设置为与之前相同的值即可。
不能说其他读卡器,但我通过 USB 端口使用的读卡器会通过 SD 卡的 UUID。