シリアル番号に基づいてUSBストレージデバイスPATHを見つける方法は?

シリアル番号に基づいてUSBストレージデバイスPATHを見つける方法は?

/var/log/dmesgたとえば、シリアル番号を見つけた場合SerialNumber: xxxxxxxxxxxxxx。デバイスとパスをどのように見つけることができますか?

カーネルモジュールを有効にする必要がありますかusb-storage?これは私にどのような影響を与えますか?どうすれば持続しますか?

試してみましたが、lsusbストレージが表示されないようです。ただし、dmesgではエラーなしで表示できます。 USBストレージデバイスを見つけて、ここにファイルシステムを作成する必要があります。

答え1

カーネルモジュールusb-storageを有効にする必要がありますか?これは私にどのような影響を与えますか?どうすれば持続しますか?

習慣。これで、見つかったすべてのLinuxカーネルには、このモジュールが含まれているかコンパイルされ、必要に応じてシステムがそれをロードします。

タグが示すように、RHELを使用している場合は特にそうです。

lsusbを試してみましたが、ストレージデバイスが表示されないようです。

これにより、コンピュータはそれを動作するUSB​​デバイスとしてまったく認識しないため、ハードウェアに問題がある可能性があります。

ただし、dmesgではエラーなしで表示できます。

エラーがなければ、dmesg はデバイス名を含む特定のサイズのストレージデバイスがあることを通知します。

これが発生しないと、ストレージデバイスが破損しているため、Linuxではこの状況を変更できません。

答え2

たとえば、次のようになります。

usb 1-1: Product: DT 100 G2
usb 1-1: Manufacturer: Kingston
usb 1-1: SerialNumber: xxxxxxxxxxxxxxxxxxxxxx

USBパスプレフィックス(1-1この例では)をメモしてください。

その後、次のメッセージが表示されます。

usb-storage 1-1:1.0: USB Mass Storage device detected
scsi host6: usb-storage 1-1:1.0

最初の行は、デバイスの設定1、インターフェイス0がUSBストレージデバイスとして認識され、usb-storageドライバモジュールがそれを自動的にロードして制御したことを示しています。ドライバは、scsi host62行目に示すように、それをSCSI準拠のストレージデバイスとしてマークします。

モジュールがロードされていない場合、usb-storageこのステップとそれ以降のステップは発生せず、そのデバイスはストレージデバイスにアクセスできません。

これにより、通常のSCSI層がデバイスを順番に識別します。

scsi 6:0:0:0: Direct-Access     Kingston DT 100 G2        PMAP PQ: 0 ANSI: 0 CCS
scsi 6:0:0:0: Attached scsi generic sg0 type 0

SCSIの4つの部分で構成される識別子:6:0:0:0=ホスト6、コントローラ/バス0、宛先0、LUN 0がUSBストレージデバイスに接続されました。ネイティブSCSIコマンドを使用してアクセスする必要がある場合は、/dev/sg0このデバイスを使用してアクセスできます。

sd 6:0:0:0: [sda] 31342592 512-byte logical blocks: (16.0 GB/14.9 GiB)
sd 6:0:0:0: [sda] Write Protect is off
sd 6:0:0:0: [sda] No Caching mode page found
sd 6:0:0:0: [sda] Assuming drive cache: write through
  sda: sda1
sd 6:0:0:0: [sda] Attached SCSI removable disk

その後、一般的なディスクストレージドライバは、物理ディスクと同様のストレージデバイスであることを検出し、それを/ dev /としてレンダリングしますsda。また、sda: sda1この行に示すように、USBストレージデバイスのパーティションテーブルにパーティションが1つしかないことも検出します。たとえば、ディスクに3つのパーティションがある場合は、次のようになりますsda: sda1 sda2 sda3


usb-storageUSBストレージデバイスが接続されているときにモジュールがロードされない一般的な理由は2つあります。

  • デバイスが破損し、USBストレージデバイスとして認識されなくなりました。
  • usb-storageさらにセキュリティを確保するために、システムは「強化」され、このモジュールの自動ロードは意図的に無効になっています。

前者の可能性があると思われる場合は、別のUSBストレージデバイスをお試しください。デバイスがリストに表示されない場合、lsusb最も可能性の高い説明はハードウェアエラーです。これは、デバイスが最低レベルのUSB認識を完了できないことを意味します。

後者なら止めるそして、次のステップに進む前に、実際にUSBストレージデバイスを特定のサーバーに接続できることを確認してください。強化は、一般に、サーバーが技術、管理(変更管理/監査)、または法的レベルで特別な要件を持つ可能性があるいくつかの重要なサービスを提供できることを示します。そのサーバーを不正に操作する場合は、管轄区域に応じて職業の喪失および/または起訴を受けることがあります。申し訳ありませんより安全。


ほとんどの拡張ディレクティブでカーネルモジュールを無効にする一般的な方法は、/etc/modprobe.d/*.confいくつかのファイルに行を追加することです。

install usb-storage /bin/true   #could be also /bin/false

これは、モジュールの実際のロードを何も実行しないコマンドに置き換えることで、モジュールの自動ロードを無効にします。

その行をコメントアウトしてdepmod以前のディストリビューションで実行するだけで、通常は制限を解除するのに十分です。USBストレージデバイスを取り外して再接続すると検出できます。ただし、そうする前に適切な承認を受けていることを確認し、必要なすべての変更管理手順を完了していることを確認してください。

関連情報