找到哪个驱动器对应于Linux中的哪个USB大容量存储设备
我有几个USB大容量存储闪存驱动器连接到Ubuntu
Linux计算机(Ubuntu 10.04.1,内核2.6.32-25-386),我需要以编程方式区分它们(如果可能的话,从bash,但我不害怕编译或者 – 我需要找到哪个块设备对应哪个物理设备(例如/ dev / sdb1 – > USB端口1中的设备;在我的情况下,一个设备?一个卷).
换句话说,我知道我有三个硬件设备插入USB端口;它们中的每一个都作为USB大容量存储设备(如lsusb所示)显示在系统中,创建为块设备(/ dev / sdb1)并由UUID(/ media / 1234-5678)自动安装. USB device block device mountpoint USB device in port 2.2 <-> /dev/sdb1 <-> /media/1234-5678 我不是想找到块设备和mountpoint之间的关系;我试图找到块设备和USB设备之间的关系,有没有办法? 为什么?磁盘上会有一些写入,完成时间不可预测.我需要给运算符一些指示,例如“你现在可以移除端口2中的磁盘(左起第二个)”.我发现哪个物理端口对应于该特定机器上的哪个端口号,并且从挂载点查找块设备很简单;现在,我无法将逻辑USB端口映射到阻止设备. 我可以看到带有lsusb的磁盘: Bus 001 Device 058: ID 067b:2517 Prolific Technology,Inc. Mass Storage Device Bus 001 Device 060: ID 067b:2517 Prolific Technology,Inc. Mass Storage Device Bus 001 Device 061: ID 067b:2517 Prolific Technology,Inc. Mass Storage Device 我可以看到它们被挂载(通过它们的UUID): /dev/sdb1 on /media/BC88-15C4 type vfat /dev/sdc1 on /media/AE54-65AA type vfat /dev/sdd1 on /media/58D2-FED1 type vfat 现在,所有驱动器都是来自同一制造商的相同型号,因此我无法通过它区分它们,我无法保证它们将按特定顺序插入. 我找到了/ sys / bus / usb / devices(USB设备列表),但它似乎与我从lsusb获得的数据相同 – 我没有看到那里的磁盘映射. 还有/ sys / block / sdb和/ sys / block / sdb / sdb1(块设备及其第一个分区;类似于sdc和sdd),但同样,我看不到设备的映射. 解决方法
我不确定这是实现了哪个内核版本,但/ sys / block / *条目是设备的符号链接.
换句话说,/ sys / block / sdb符号链接到不同的目录,其名称包含USB设备ID. $file /sys/block/sdb /sys/block/sdb: symbolic link to `../devices/pci0000:00/0000:00:02.1/usb1/1-1/1-1.1/1-1.1:1.0/host31/target31:0:0/31:0:0:0/block/sdb' USB version and port here---^^^^^ 1-1.1是有趣的部分,表示usb1-port 1.device 1.当插入集线器时,增加了另一个级别:1-2.3.1,表示usb1-port 2.port 3.device 1. 伪代码: get partition name # e.g. /dev/sdb1 get disk name # that would be /dev/sdb get your basename # sdb see where /sys/block/$your_basename points to # e.g. ../devices/blah/blah/1-2.1/blah get the longest substring matching "d-d+(.d+)*" # e.g. 1-2.1 that is the device id you want /sys/bus/usb/devices/$device_id/ has all kinds of information about it the ID corresponds to hardware USB ports Working example script in bash. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |