USB 저장 장치가 논리적으로 연결 해제될 수 있습니다. 장치는 여전히 연결되어 있지만 운영 체제에 표시되지 않습니다(예: 아래 목록에 표시되지 않음 /proc/bus/usb
). 다른 유형의 USB나 기타 이동식 장치에서도 이런 일이 발생할 수 있습니다. 예를 들어 다음과 같은 일이 발생할 수 있습니다.
- 노틸러스가 USB 저장 장치를 마운트 해제한 후;
- VirtualBox가 USB 저장 장치를 요청한 후(게스트에 연결되면 장치가 Linux 호스트에서 사라지고 게스트에서 분리되면 자동으로 다시 나타나지 않습니다).
드라이버나 하드웨어에서 무슨 일이 일어나고 있으며, 가장 중요한 것은 (물리적으로 장치를 뽑았다가 다시 연결하지 않고) 장치를 논리적으로 다시 연결할 수 있는 방법입니까?
이 문제는 설치와 관련이 없다는 점에 유의하세요. "논리적으로 연결이 끊어진" 상태에서 커널은 USB 버스에 아무것도 없다고 생각합니다(물론 항목도 없습니다 /dev
).
답변1
장치가 연결된 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 메일링 리스트에서 자세한 내용을 찾을 수 있습니다.이 스레드예를 들어.
답변2
udevadm info -a -n /dev/sdb
이제 커널을 확인해 보세요. 예를 들어 Front UIP의 포트 2에 연결되면 1-1.2가 되고, Front 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
연결된 장치나 허브를 재설정하면 장치가 다시 나타납니다. 이를 수행하는 작은 프로그램은 다음과 같습니다.
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 허브는 거의 없으며 지원하는 허브를 찾기도 어렵습니다. 제조사는 광고를 하지 않습니다. 많은 허브도 이에 대해 거짓말을 하고 있습니다. 예를 들어 "lsusb -v"를 실행하면 "wHubCharacteristic"에 광고된 "포트별 전원 전환"을 볼 수 있지만 실제로는 작동하지 않습니다. 칩셋이 이를 지원할 수도 있지만 제조업체에서는 칩셋을 통하지 않고 포트 전원 핀을 전원에 직접 연결하는 것이 더 쉽고 저렴합니다.
답변4
다음은 USB 장치의 연결을 끊습니다.
sudo eject /dev/sde
다음은 USB 장치를 다시 연결합니다.
sudo eject -t /dev/sde
위의 내용은 내 Linux Mint에서 작동합니다.