Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/103.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux、sysfs、usb记忆棒和usb硬盘驱动器_Linux_Usb_Udev_Sysfs - Fatal编程技术网

Linux、sysfs、usb记忆棒和usb硬盘驱动器

Linux、sysfs、usb记忆棒和usb硬盘驱动器,linux,usb,udev,sysfs,Linux,Usb,Udev,Sysfs,在Linux中,有没有办法通过libudev/sysfs区分USB记忆棒(闪存)和USB硬盘驱动器?如果没有,是否有直接查询硬件的方法?谢谢。也许您可以使用如下udev规则进行检查:ATTRS{bDeviceSubClass}==“xx”。但是,我不知道您是否能够仅使用子类就准确地将棒与真实驱动器区分开来。不幸的是,其中一个不太好用:(例如,尝试插入U盘,为Kingston DataTraveler 8GB U盘提供lsusb-verbose-BInterfaceSublass 6 SCSI。那

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

也许您可以使用如下udev规则进行检查:
ATTRS{bDeviceSubClass}==“xx”
。但是,我不知道您是否能够仅使用子类就准确地将棒与真实驱动器区分开来。

不幸的是,其中一个不太好用:(例如,尝试插入U盘,为Kingston DataTraveler 8GB U盘提供
lsusb-verbose
-BInterfaceSublass 6 SCSI。那么BDeviceSublass呢?据我所知,您无法使用该子类将U盘与usb硬盘区分开来。这个答案有用吗?usb闪存设备通常不会做出适当的响应。)最近,对于
hdparm-I
,如果你得到一个
SG_IO
错误,它通常意味着这是一个pendrive,而不是一个旋转的盘片(我不敢用SSD在ATM上测试这个理论),我刚刚试过将SSD插入SATAUSB设备-
hdparam-I
给出了与查询USB闪存时几乎相同的信息:(我用一些棍棒、驱动器和SSD进行了检查,发现我也在设备上使用了sg_inq,但我认为我从hdparm得到的响应与您的不同。@Petesh,我得到了
sg_IO:错误/丢失的检测数据,sb[]…
用于SSD和闪存棒。据我所知,您在
hdaparam-I
中有相同的输出。
sg\u inq
输出()都没有显示任何特殊的差异。