SATA-to-USB アダプタを介して接続された USB ハード ドライブの ID を取得しようとしています。私が書いた小さなプログラムは 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)
ここで見つけた方法
メソッドは内蔵 HDD で正常に実行されますが、
IOError: [Errno 22] Invalid argument
USB接続のHDDで実行する場合。
これに関連するものは何も見つかりませんでした-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。