論理的に切断されたUSBデバイスを再接続する方法


55

USBストレージデバイスが論理的に切断される可能性があります。デバイスはまだ接続されていますが、オペレーティングシステムからは見えません(たとえば、下にリストされていません/proc/bus/usb)。これは、他の種類のUSBやその他のリムーバブルデバイスでも発生する可能性があります。これは、たとえば次のように発生する可能性があります。

ドライバーまたはハードウェアで何が起こっているのか、そして最も重要なことは、(物理的にプラグインおよびプラグインせずに)デバイスを(どのように)論理的に再接続できるのか?

この質問はマウントに関するものではないことに注意してください。「論理的に切断された」状態では、カーネルはUSBバス上に何も存在しないと考えます(したがって、もちろんの下にエントリはありません/dev)。


回答:


21

デバイスが接続されているUSBバスのブランチで電源の再投入を行うことができる場合があります。

# echo suspend > /sys/bus/usb/devices/1-1/power/level
# echo auto > /sys/bus/usb/devices/1-1/power/level

1-1お使いの設定に調整する必要があります。デバイスを取り出すlsusb -t前に実行することにより、デバイスがUSBツリーのどの部分に接続されているかを確認できます。

linux-usbメーリングリストで詳細な情報を見つけることができます。たとえば、このスレッドです。


6
2.6.36以降のカーネルでは「サスペンド」は機能しません。
alexisdm

dmesg正しいデバイスID(「usb 9-4:USB切断[...]」)を報告すると仮定すると、これは最新のArch Linuxでは機能しません。その後は道がありません/sys/bus/usb/devices/9-4
l0b0 14年

1
1. dmesg:警告!電力/レベルは非推奨です。代わりに、前記電源/制御を使用superuser.com/questions/371068/...を
SOCKETPAIR

また、suspendもはや....最近のカーネルのバージョンでサポートされていない
ゲルトヴァンデンバーグ

6

デバイス、またはデバイスが接続されているハブをリセットすると、デバイスが再表示されます。これを行う小さなプログラムを次に示します。

http://marc.info/?l=linux-usb-users&m=116827193506484

これは私が試したほとんどのUSBドライブで機能しますが、Kingston DT 101 II 4GBなどの例外があり、リセット後にINQUIRYコマンドとREAD CAPACITYコマンドが失敗し、電源を入れ直すまで使用できません。

ポートから電力が供給されていれば、プラグを抜かずにデバイスの電源を入れ直すことができ、USBハブはポートごとの電力制御をサポートします。以下は、電力を制御する小さなプログラムです。

http://marc.info/?l=linux-usb-devel&m=113724451205634

残念ながら、この機能をサポートしているUSBハブはほとんどないため、この機能をサポートするUSB​​ハブを見つけるのは非常に困難です。メーカーはそれを宣伝していません。たとえば、「lsusb -v」を実行すると、「wHubCharacteristic」で「ポートごとのパワースイッチング」がアドバタイズされますが、実際には機能しません。チップセットはそれをサポートするかもしれませんが、製造業者にとっては、チップセットを経由せずにポート電源ピンを電源に直接接続する方が簡単でした。


5

私はこの答えが私のGentooシステムでうまく機能することがわかりました。システムの重要な部分(マウスやキーボードなど)の場合は、デバイスを再度有効にすることも忘れないでください。

sudo sh -c 'AUTHFILE="/sys/bus/usb/devices/5-2/authorized" ; echo 0 > "$AUTHFILE" ; sleep 1 ; echo 1 > "$AUTHFILE"'

無効化/再有効化する内容を確認するには:

cat /sys/bus/usb/devices/5-2/product

これは、私の最新のFedora 25システムでうまくいくようです。他の方法の中には、使用できないものもあります。
xenithorb 16

5
udevadm info -a -n /dev/sdb

カーネルを確認します。たとえば、フロントUIPのポート2に接続されている場合は1-1.2になり、フロントUIPのポート1に接続されている場合は1-1.1になります。

ポート2の場合:USBを切断するには:

echo '1-1.2' | tee /sys/bus/usb/drivers/usb/unbind

USBを接続するには:

echo '1-1.2' | tee /sys/bus/usb/drivers/usb/bind

3

上記の提案のほとんどを試してみましたが、私にはうまくいきませんでした。コマンドラインからUSBデバイスをリセットする方法を見つけました:https : //askubuntu.com/a/290519

echo $i >/sys/bus/pci/drivers/ehci_hcd/bind

どこ$iあなたから適切なデバイスIDを使用することができます/sys/bus/pci/drivers/ehci_hcd


リンク以上のものを投稿してください。回答のためにクリックスルーする必要がないように、詳細を含めます。
ジェイソンライアン14


-5

私はあなたの質問を適切に理解しているのかどうかはわかりませんが、USBデバイスが接続されているがマウントされていない場合、私のシステムでは、

$> fdisk -l

どのデバイスに関連付けられているか(つまり/ dev / sdd1など)がわかり、手動でマウントします。


5
繰り返しますが、いいえ、問題はファイルシステムがアクセス不能になる(マウント解除される)ことではなく、デバイスがアクセス不能になることではありません(カーネルはデバイスを認識しないため、もちろんエントリはありません/dev)。
ジル 'SO-悪であるのをやめる'
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.