2013-02-13 81 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

相關問題