Eu tenho uma unidade flash USB conectada a um hub. Seu devpath de partição do dispositivo de armazenamento em sysfs é /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
. Gostaria de recuperar o caminho do dispositivo USB correspondente (por exemplo, /devices/pci0000:00/0000:00:12.2/usb6/6-1/6-1.2
ou melhor ainda /sys/bus/usb/devices/6-1.2
). Eu vou fazer isso em alguma linguagem de script (shell, python, qualquer que seja) para qualquer dispositivo inserido no PC. EDITAR : Eu recebo o devpath da partição original do udev e preciso rastreá-lo de volta para a entrada do dispositivo USB.
A abordagem mais simples e estúpida é navegar no caminho para cima, até a entrada 6-1.2. Tem algumas desvantagens graves e óbvias, no entanto. Primeiro, o dispositivo pode ou não estar conectado a um hub e, portanto, seu caminho pode mudar. Em segundo lugar, o dispositivo pode ou não ter partições, o que também altera o devpath. Eu também preciso de uma solução genérica, não apenas para o dispositivo 6-1.2.
Aparentemente, não há links simbólicos para a entrada do dispositivo no diretório .../block/sdb/sdb1
. Existe alguma maneira elegante de fazer o que eu quero?