Есть ли способ отличить USB-накопители (флэш-память) от жестких дисков USB через libudev/sysfs в Linux? Если нет, есть ли способ напрямую запросить оборудование? Спасибо.
Linux, sysfs, флешки и жесткие диски USB
Ответы (1)
Возможно, вы могли бы проверить подкласс устройства с помощью такого правила udev: ATTRS{bDeviceSubClass}=="xx"
. Я не знаю, сможете ли вы точно отличить флешки от настоящих дисков, используя только подкласс.
person
kouk
schedule
13.02.2013
К сожалению, это не работает :( Например, попробуйте подключить USB-накопитель, и
lsusb --verbose
даст bInterfaceSubClass 6 SCSI
для накопителя Kingston Datatraveller 8 ГБ.
- person Zaur Nasibov; 13.02.2013
как насчет bDeviceSubclass?
- person kouk; 13.02.2013
Насколько мне известно, по подклассу нельзя отличить флешку от жесткого диска USB.
- person fpmurphy; 13.02.2013
этот ответ помогает? unix.stackexchange.com/questions/10755/
- person kouk; 13.02.2013
hdparm -I
, поэтому, если вы получаете ошибкуSG_IO
, это обычно означает, что это флешка, а не вращающаяся пластина (я стесняюсь SSD, чтобы проверить эту теорию на банкомате). - person Petesh   schedule 14.02.2013hdparam -I
выдал почти ту же информацию, что и при запросе USB-накопителя :( - person Zaur Nasibov   schedule 14.02.2013SG_IO: bad/missing sense data, sb[]...
как за SSD, так и за флешки. Я так понимаю, у вас такой же вывод вhdaparam -I
. В выводеsg_inq
(pastebin.com/0H8LCqmG) нет особых отличий. - person Zaur Nasibov   schedule 14.02.2013