小编典典
我将尝试总结有关在Linux上进行存储驱动器序列号检索的经验。
我假设您要 存储设备 标识的序列号(按照SCSI规范)而不是 USB设备 的序列号(按照Device
Descriptor下的USB规范),这两个是不同的实体。
注意!
大多数设备倾向于在USB控制器中实现序列号,而内部SCSI磁盘的序列号未实现。
因此,如果要唯一地标识USB设备,最好的方法是从设备描述符(USB规范)创建字符串,例如
VendorId-ProductId-HardwareRevision-SerialNumber
。在下面,我将描述如何检索存储驱动器的SN ,按要求。
驱动器分为两类(实际上更多,但让我们简化一下):类ATA(hda,hdb …)和类SCSI(sda sdb …)。USB驱动器属于第二类,它们称为
SCSI连接磁盘
。在这两种情况下,都可以使用ioctl调用来检索所需的信息(在我们的情况下为序列号)。
对于 SCSI设备(包括USB驱动器)
,Linux通用驱动程序及其API记录在tldp上。
SCSI设备上的序列号可在重要产品数据(简称:VPD)中找到,并且可以使用SCSI查询命令检索。sdparm是linux中一个可获取此VPD的通用实用程序:
> yum install sdparm
> sdparm --quiet --page=sn /dev/sda
Unit serial number VPD page:
3BT1ZQGR000081240XP7
请注意,并非所有设备都具有该