You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

关于Micro SD卡永久唯一标识符(UUID)及跨系统读取方法的技术问询

关于Micro SD卡永久唯一标识符(UUID)及跨系统读取方法的技术问询

嘿,这个需求太贴合实际了——我之前帮不少折腾树莓派的朋友解决过SD卡管理的麻烦,刚好能给你靠谱的方案!

核心问题:有没有永久不变的唯一标识符?

答案是有的,但不是你可能以为的分区UUID

  • 我们平时看到的分区UUID(比如Linux下ext4分区的UUID、Windows下的卷UUID)是格式化时生成的,刷写新ISO镜像会完全覆盖分区表和文件系统,这个ID肯定会变。
  • 真正永久不变的是SD卡的硬件序列号(Serial Number)——这是出厂时烧录在卡的控制器芯片里的,和存储的内容完全无关,不管你怎么格式化、刷系统、擦写数据,它都不会改变,完全符合你的需求。

Windows下读取硬件序列号的方法

推荐用命令行工具,比图形界面更准确:

方法1:Diskpart(通用且直观)

  1. 按下Win+R,输入diskpart回车(需要管理员权限)
  2. 输入list disk,找到你的SD卡(通过容量区分,千万别选错磁盘!)
  3. 输入select disk X(把X换成SD卡对应的磁盘号,比如select disk 2
  4. 输入detail disk,在输出内容里找到Serial Number字段,这串字符就是你的SD卡永久唯一ID(格式一般是XXXX-XXXX或者纯数字)

方法2:PowerShell(更快捷)

打开管理员PowerShell,直接运行以下命令:

Get-Disk | Where-Object {$_.BusType -eq 'SD'} | Select-Object SerialNumber

它会自动过滤出SD卡并显示序列号,不用手动找磁盘号。

Linux下读取硬件序列号的方法

同样推荐命令行工具,不同发行版都通用:

方法1:lsblk(简单直观)

打开终端,运行:

lsblk -o NAME,SERIAL

输出会列出所有块设备的名称和序列号,找到对应SD卡的行(一般是/dev/mmcblk0,或者外接读卡器的/dev/sdb这类,通过容量区分),对应的SERIAL就是硬件ID。

方法2:udevadm(精准获取)

先确定你的SD卡设备路径(比如/dev/mmcblk0),然后运行:

udevadm info --query=property --name=/dev/mmcblk0 | grep ID_SERIAL

输出的ID_SERIAL字段就是永久不变的硬件序列号。

注意:别把fdisk -l里的Disk identifier当成硬件ID——那个是分区表的UUID,会随分区表改变,不是我们要的永久标识符。

小提醒

极少数杂牌SD卡可能没有写入硬件序列号,但主流品牌(金士顿、闪迪、三星、东芝等)的卡都有这个标识,完全可以放心用它来做你的Excel表格索引。

备注:内容来源于stack exchange,提问作者Basj

火山引擎 最新活动