我正在尝试通过SATA-to-USB适配器获得USB硬盘驱动器的标识。我写的小程序是用Python编写的:
def getID(dev):
HDIO_GET_IDENTITY = 0x030d
with open(dev, 'r') as fd:
buf = fcntl.ioctl(fd, HDIO_GET_IDENTITY, ' ' * 512)
fields = struct.unpack_from(struct_hd_driveid, buf)
serial_no = fields[10].strip()
fw_rev = fields[14].strip()
model = fields[15].strip()
return (serial_no, fw_rev, model)
方法我找到了here
该方法在我的内置硬盘上成功运行,但我得到了
IOError: [Errno 22] Invalid argument
在我连接USB的硬盘上运行时。
我找不到与此相关的任何内容 - 我认为USB连接硬盘的操作代码可能不同....
我几乎忘了说我是从Ubuntu运行它
Linux dragosmc-Lenovo-V570 3.13.0-45-generic #74-Ubuntu SMP Tue Jan 13 19:36:28 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
谢谢, dragosmc。
答案 0 :(得分:1)
HDIO_GET_IDENTITY似乎是IDE / ATA特定的。
大容量存储将ATA设备抽象为SCSI设备,因此您应该查看: