我正在尝试获取通过 SATA 转 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)
我在这里找到的方法
该方法在我的内部硬盘上成功运行,但我得到了
IOError: [Errno 22] Invalid argument
在我的 USB 连接硬盘上运行它时。
我找不到与此相关的任何内容 - 我假设 USB 连接的 HDD 的操作代码可能不同......
我差点忘了说我是从 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。