USB 장치 번호에서 USB 장치 이름을 얻는 방법

USB 장치 번호에서 USB 장치 이름을 얻는 방법

내 (여러) USB 드라이브 중 하나가 dmesg에서 이 오류를 보고합니다.

usb 5-1: device descriptor read/8, error -110

모든 USB 장치의 /dev/sdX 이름을 찾는 방법은 무엇입니까?

반대의 경우: 장치의 /dev/sdX 이름이 주어지면 해당 장치의 USB 번호를 어떻게 알 수 있습니까?

업데이트: 여기에는 많은 훌륭한 답변이 제공되었습니다. 이 정보가 와 같은 표준 도구에서 제공되었으면 좋겠지만 lsusb안타깝게도 아직은 제공되지 않습니다. @sudodus의 답변이 모든 드라이브 이름을 얻는 질문에 가장 잘 대답하는 것 같아서 보상을 선택했습니다.

답변:

더 깔끔한 출력을 생성하려면 약간 더 긴 이 명령을 권장합니다.

find /sys/ -name dev -path '*usb*block*' | grep -v "sd../" | grep -Po "\/usb.*\/sd."

답변1

sysfs에서 이 장치 찾기

# cd /sys/bus/usb/devices/5-1

할당된 모든 블록 장치 찾기

# find . -name dev -path '*block*'
./5-1:1/.../block/sdc/sdc2/dev
./5-1:1/.../block/sdc/dev
./5-1:1/.../block/sdc/sdc1/dev

답변2

제목에 명시된 문제에 대한 좋은 답변이 귀하가 보고한 버그로 인해 정확한 문제를 해결하는 데 도움이 되지 않을 것 같습니다.

usb 5-1: device descriptor read/8, error -110

커널이 문제의 USB 장치를 올바르게 식별할 수 없어서 발생하는 치명적인 오류입니다. 따라서 적절한 드라이버를 연결하여 /sys 트리를 채울 수 없습니다. /dev/sd*에 대한 항목을 찾지 마십시오. 아무것도 없을 것입니다!

USB 오류 -110은 "전송이 완료되기 전에 시간 초과가 경과되었습니다.".이에 대한 가능한 이유는... 엄청납니다.
그러나 키보드, 마우스, 웹캠과 같은 다른 USB 장치는 말할 것도 없고 7개의 USB 드라이브가 연결된 시스템을 작성하고 있다는 점을 고려하면... 가장 가능성 있는 원인은 호스트 컴퓨터가 장치에 충분한 전력을 공급할 수 없다는 것입니다.

확인하는 가장 좋은 방법은 모든 USB 장치(드라이브뿐만 아니라 결국 관련 장치가 드라이브라는 정보를 얻지 못했기 때문에)를 분리하고 차례로 연결하여 메일을 확인하는 것입니다.
물론 실제로 특별히 까다로운 장치를 구입하지 않는 한, 범인은 단일 장치가 아니라 모든 장치의 모음이라는 것을 알게 될 것입니다.

답변3

컴퓨터에서 USB 대용량 저장 장치(USB 플래시 드라이브 및 USB 연결 SSD)를 사용하여 몇 가지 테스트를 수행한 결과 출력이 다음과 같이 나타났습니다.

find /sys/ -name dev -path '*usb*block*'

/dev/sdX장치의 USB 번호를 장치 이름과 일치시키는 데 도움이 됩니다 .


또 다른 방법은 명령 lsblk줄을 일치 lsusb시키고 "모델/제품" 및 "일련 번호" 태그로 식별하는 것입니다.

lsblk -do name,model,serial,hotplug|grep -e HOTPLUG$ -e 1$

sudo lsusb -v |grep -i -e '^BUS .* Device' -e product -e serial

관련 정보