2013-02-13 76 views
3

有没有办法在Linux中通过libudev/sysfs区分USB棒(闪存)和USB硬盘驱动器?如果没有,有没有办法直接查询硬件?谢谢。Linux,sysfs,usb棒和usb硬盘驱动器

+0

USB闪存设备通常不会对'hdparm -I'做出适当的响应,所以如果出现'SG_IO'错误,它通常意味着它是一个pendrive而不是转盘(我很害怕SSD来测试理论在ATM上) – Petesh 2013-02-14 13:02:03

+0

刚刚尝试过使用插入SATA的SSD <-> USB设备 - “hdparam -I”给出的信息几乎与查询USB闪存时的信息相同:( – 2013-02-14 13:25:33

+0

我使用了几根支持棒,驱动器和SSD进行了检查,得到http://db.tt/F4BQZcDr我也在设备上使用了sg_inq,并获得了https://www.dropbox.com/s/cwbih24iqjvkfcb/sg_inq.txt - 我不认为我得到了和你一样的回应hdparm,虽然 – Petesh 2013-02-14 15:46:44

回答

1

也许你可以用这样的udev规则检查the device subclassATTRS{bDeviceSubClass}=="xx"。我不知道是否可以使用子类来准确地区分真正的驱动器。

+0

不幸的是,一个不能正常工作:(例如尝试插入一个USB棒和'lsusb --verbose' - 为Kingston Datatraveller 8GB棒提供'bInterfaceSubClass 6 SCSI'。 – 2013-02-13 14:58:04

+0

bDeviceSubclass怎么样? – kouk 2013-02-13 14:59:23

+0

据我所知,你不能区分使用该子类的USB硬盘驱动器。 – fpmurphy1 2013-02-13 14:59:43

相关问题