У меня есть несколько 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
Я не пытаюсь найти связь между блочным устройством и точкой монтирования; Я пытаюсь найти связь между блочным устройством и 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
), но, опять же, я не вижу сопоставления с устройствами.