Ubuntu Linux コンピューター (Ubuntu 10.04.1、カーネル 2.6.32-25-386) に複数の USB 大容量ストレージ フラッシュ ドライブを接続しており、それらをプログラムで (可能であれば bash から) 区別する必要があります。 - どのブロックデバイスがどの物理デバイスに対応するかを見つける必要があります (例/dev/sdb1
-> USB ポート 1 のデバイス; 私の場合、1 つのデバイス ~ 1 つのボリューム)。
つまり、3 つのハードウェア デバイスが 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 (左から 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
現在、すべてのドライブは同じメーカーの同じモデルであるため、それらを区別することはできません。また、特定の順序で接続されることを保証することもできません。
(USB デバイスのリスト)を見つけまし/sys/bus/usb/devices
たが、lsusb から取得したデータと同じようです。そこにディスクへのマッピングが表示されません。
/sys/block/sdb
and /sys/block/sdb/sdb1
(ブロックデバイスとその最初のパーティション; 同様にsdc
and )もありますsdd
が、ここでもデバイスへのマッピングは見られません。