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 장치를 "제거"하는 두 가지 주요 방법이 있습니다. 사용하는 옵션은 사용하는 파일 관리자에 따라 다릅니다!

첫 번째는 "소프트 배출"입니다. 이것이 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이는 원격 장치의 전원을 끄는 좋은 방법입니다.

관련 정보