UHUBCTLを使用した外部USB SSDのオン/オフ

UHUBCTLを使用した外部USB SSDのオン/オフ

Proxmox VE 8 zimaboard832(Debian 12 Bookworm)で外部USB SSDを自動的にオンまたはオフにする必要があります。これは可能ですuhubctl?それでは、どうやって開く/閉じるbashスクリプトを安全にすることができますか?

答え1

uhubctlデバイスの電源を切らないでください。デバイスが接続されているUSBポートの電源を切ります。これは、外部機器の接続を切断して再接続する効果があります(「ポート閉鎖」によって接続が切断され、「ポート開放」によって再ネゴシエーションおよび再接続が発生します)。

だからuhubctl 可能必要なことをするには…USBポート自体を制御できるならば。すべてのUSBポートをこのようにプログラムできるわけではありません。

これで強制的にディスクを切断することも可能ですudiskctl。注文もありますeject

したがって、USBデバイスを「削除」する2つの主な方法があります。使用するオプションは、使用するファイルマネージャによって異なります。

最初は「ソフトイジェクト」です。これがejectまさにこのコマンドがすることであり、「pcmanfm」もすることのようです。この場合、eject -tパーティションが再び表示されます。これは、デバイスがまだバスに接続されていて(そしてまだ/ dev /に表示されているため)、オペレーティングシステムがデバイスを制御できるために機能します。設定がデバイスを自動的にマウントするかどうかによっては、今はディスクを取り外すのが安全です。デバイスにはまだ電源が残っています。

もう一つはもっと「難しい」。これがudiskctl power-offノーチラスがすることです。このデバイスは実際にバスから削除されるため、/ dev /から消えます。

例えば

# /usr/bin/udisksctl power-off -b /dev/sdg
# dmesg | tail -1
[179677.977567] usb 1-2.2: USB disconnect, device number 10

カーネルがUSBデバイスの接続が切断されたことを報告したことがわかります。lsusbその結果、表示されなくなります。このデバイスを削除しても安全です。

最後に、USBポート自体を制御してみることができます。

「usb 1-2.2」が重要になります。これはUSBバス1-2、ポート2を意味します。

uhubctlこの機能をオフにしてからオンにすると、再度有効にできます。

# /usr/sbin/uhubctl -l 1-2 -p 2 -a off  
Current status for hub 1-2 [0bda:5411 Generic 4-Port USB 2.0 Hub, USB 2.10, 4 ports]
  Port 2: 0101 power connect []
Sent power off request
New status for hub 1-2 [0bda:5411 Generic 4-Port USB 2.0 Hub, USB 2.10, 4 ports]
  Port 2: 0000 off

# uhubctl -l 1-2 -p 2 -a on 
Current status for hub 1-2 [0bda:5411 Generic 4-Port USB 2.0 Hub, USB 2.10, 4 ports]
  Port 2: 0000 off
Sent power on request
New status for hub 1-2 [0bda:5411 Generic 4-Port USB 2.0 Hub, USB 2.10, 4 ports]
  Port 2: 0101 power connect []

そしてまた戻ってきました!

[179834.775058] usb 1-2.2: new high-speed USB device number 11 using ehci-pci
[179834.888056] usb 1-2.2: New USB device found, idVendor=0781, idProduct=5567, bcdDevice= 1.00
[179834.888063] usb 1-2.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[179834.888067] usb 1-2.2: Product: Cruzer Blade
[179834.888070] usb 1-2.2: Manufacturer: SanDisk
[179834.888074] usb 1-2.2: SerialNumber: 4C530000260115213093

すべてのハブをこの方法で制御できるわけではありません。

「電源制御」機能を備えたハブの場合、uhubctlこれはリモートデバイスの電源を切るのに最適な方法です。

関連情報