【问题标题】:Linux, sysfs, usb sticks and usb hard drivesLinux、sysfs、USB 记忆棒和 USB 硬盘驱动器
【发布时间】:2013-01-29 02:59:36
【问题描述】:

有没有办法通过 Linux 中的 libudev / sysfs 来区分 U 盘(闪存)和 U 盘?如果没有,有没有办法直接查询硬件?谢谢。

【问题讨论】:

  • USB 闪存设备通常无法正确响应 hdparm -I,因此如果您收到 SG_IO 错误,这通常意味着它是笔式驱动器而不是旋转盘片(我害羞的是 SSD在 ATM 上测试该理论)
  • 刚刚尝试将 SSD 插入 SATAUSB 设备 - hdparam -I 提供的信息与查询 USB 闪存时几乎相同:(
  • 我检查了一些记忆棒、驱动器和 SSD 并得到了 db.tt/F4BQZcDr 我还在设备上使用了 sg_inq 并得到了 dropbox.com/s/cwbih24iqjvkfcb/sg_inq.txt - 我认为我得到的响应与您不同不过,hdparm。
  • @Petesh,我得到了SG_IO: bad/missing sense data, sb[]... 的 SSD 和闪存棒。据我了解,您在hdaparam -I 中具有相同的输出。 sg_inq 输出 (pastebin.com/0H8LCqmG) 都没有显示任何特殊差异。

标签: linux usb udev sysfs


【解决方案1】:

也许您可以使用这样的 udev 规则检查 the device subclassATTRS{bDeviceSubClass}=="xx"。不过,我不知道您是否可以仅使用子类准确区分摇杆和真实驱动器。

【讨论】:

  • 不幸的是,一个不太好用:(例如,尝试插入 USB 记忆棒和lsusb --verbose - 为金士顿 Datatraveller 8GB 记忆棒提供 bInterfaceSubClass 6 SCSI
  • bDeviceSubclass 呢?
  • 据我所知,您无法使用子类区分记忆棒和 USB 硬盘。
  • 这个答案有帮助吗? unix.stackexchange.com/questions/10755/…
猜你喜欢
  • 2011-08-28
  • 2011-04-12
  • 2011-03-24
  • 1970-01-01
  • 2020-08-17
  • 1970-01-01
  • 2018-10-20
  • 1970-01-01
相关资源
最近更新 更多