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
これはリモートデバイスの電源を切るのに最適な方法です。