如何在给定相应分区 sysfs 路径的情况下检索 USB 闪存驱动器的 sysfs devpath?

如何在给定相应分区 sysfs 路径的情况下检索 USB 闪存驱动器的 sysfs devpath?

我有一个连接到集线器的 USB 闪存驱动器。其在sysfs中的存储设备分区devpath为/devices/pci0000:00/0000:00:12.2/usb6/6-1/6-1.2/6-1.2:1.0/host10/target10:0:0/10:0:0:0/block/sdb/sdb1。我想检索相应的USB设备路径(即/devices/pci0000:00/0000:00:12.2/usb6/6-1/6-1.2,甚至更好/sys/bus/usb/devices/6-1.2)。我将使用某种脚本语言(shell、python 等)为插入 PC 的任何设备执行此操作。编辑:我从 udev 获取原始分区的 devpath,我需要将其追溯到 USB 设备条目。

最简单和愚蠢的方法是向上导航路径,直到 6-1.2 条目。但它有一些严重且明显的缺点。首先,设备可能连接到集线器,也可能未连接到集线器,因此它的 devpath 可能会改变。其次,设备可能有也可能没有分区,这也会改变 devpath。我还需要一个通用的解决方案,而不仅仅是针对 6-1.2 设备。

显然,目录中没有指向实际设备条目的符号链接.../block/sdb/sdb1。有没有什么优雅的方法可以实现我想要的功能?

相关内容