自動的にマウントされないいくつかのUSBドライブを接続するとします。どのデバイスファイルがどの物理デバイスに属しているかを確認して、たとえばマウントする方法を教えてください。
私はMacOS Xを実行していますが、すべての(または少なくとも最も人気のある)Unixシステムで機能する答えが好きです。私は過去にLinuxでこの問題を抱えていました。
udev
をクエリすることで有用な情報を入手できます(それを使用するシステムでは-ほとんどすべてのデスクトップタイプのLinuxは確実です)。たとえば、接続されているどのドライブが/dev/sdb
に関連付けられているかを知りたい場合は、次を使用できます。
udevadm info --query=property --name=sdb
シリアル(ID_SERIAL_SHORT)を含む、そのデバイスのプロパティのリストが表示されます。その情報があれば、lsusb -v
の出力を見て、製造元や製品名などを見つけることができます。
これを行うためのより短いパスは
udevadm info --query=property --name=sdb | grep "\(MODEL_ID\|VENDOR_ID\)"
lsusb
のはるかに短い出力で$ID_VENDOR_ID:$ID_MODEL_ID
と一致する行を参照してください。
もう1つの便利なオプションはudevadm monitor
です。作成されたデバイスノードを知りたい場合に使用しますデバイスを接続する時点で。だから最初の実行
udevadm monitor --udev --subsystem-match=block
そして、デバイスを接続します。検出されたブロックデバイス(ディスク/パーティション)のデバイス名が各出力行の最後に印刷されます。
.bashrc
(または.zshrc
)に挿入できる関数は次のとおりです。
listusbdisks() { [["x $ 1" == "xv"]] && shift && local VERBOSE = -v for dsk in $ { @-/ dev/sd?} do /sbin/udevadm info --query = path --name = "$ dsk" | grep --colour = auto -q usb || continue echo "===== device $ dsk is:" (eval $(/ sbin/udevadm info --query = property --name = "$ dsk" | grep "\ (MODEL\| VENDOR \)_ ID ") [" $ ID_VENDOR_ID:$ ID_MODEL_ID "==": "] && echo"不明 "||\ lsusb $ VERBOSE -d" $ ID_VENDOR_ID :$ ID_MODEL_ID " ) grep -q" $ dsk "/ proc/mounts && echo" ----- DEVICE IS MOUNTED ---- " echo done }
このように使用してください:
listusbdisks
-すべての/dev/sdx
デバイスを認識します。listusbdisks sdb
またはlistusbdisks /dev/sdb
またはlistusbdisks sdb sdc
-特定のデバイスに関する情報のみを取得します。listusbdisks -v [optional devices as above]
-lsusb
の詳細な出力を表示します[編集]:多くのデバイスのクエリ、マウントのチェック、lsusb
の冗長性の制御などの機能を追加しました。
普遍的な答えはありません。 Linuxで最も簡単な方法は、おそらくgnome diskユーティリティを起動することです。マウントされているかどうかに関係なく、検出されたすべてのディスクが表示されます。コマンドラインから、blkid
またはudevadm info --export-db
の出力を確認できます。
Mac OS Xではdiskutil list
。
すべてのUnixに関して、これは実現可能ではないと思います。
今日の通常の外部バスは、IDEのように、ポートに固定の番号付けスキームを使用していません。したがって、必要なマッピングの残りのデータソースは、ドライブの製造元名、シリアル番号のみです。番号またはパーティションのUID。
製造元の名前は、特定のマシンで必ずしも一意である必要はありません(同じシリーズの2つの外部ドライブを接続するとします-それらは同じように識別されます)。シリアル番号は、パーティションUIDのように、「外部からは見えません」。
したがって、私が考えることができる唯一の普遍的な解決策については、物理ドライブにシリアル番号のラベルを付け、UDEVが利用可能な場合はrozcietrzewiaczの回答にあるudevadmコマンドを使用することです。