자동으로 마운트되지 않는 여러 USB 드라이브를 연결한다고 가정 해보십시오. 어떤 장치 파일이 어떤 물리적 장치에 속하는지 어떻게 알 수 있습니까? 예를 들어 마운트 할 수 있습니까?
나는 Mac OS X를 사용하고 있지만 모든 (또는 적어도 가장 인기있는) Unix 시스템에서 작동하는 답변을 좋아합니다. 과거에 Linux 에서이 문제가있었습니다.
자동으로 마운트되지 않는 여러 USB 드라이브를 연결한다고 가정 해보십시오. 어떤 장치 파일이 어떤 물리적 장치에 속하는지 어떻게 알 수 있습니까? 예를 들어 마운트 할 수 있습니까?
나는 Mac OS X를 사용하고 있지만 모든 (또는 적어도 가장 인기있는) Unix 시스템에서 작동하는 답변을 좋아합니다. 과거에 Linux 에서이 문제가있었습니다.
답변:
유용한 정보 쿼리를 얻을 수 있습니다 udev
(거의 모든 데스크탑 유형 Linux를 사용하는 시스템에서). 예를 들어, 연결된 연결된 드라이브를 알고 싶다면 /dev/sdb
다음을 사용할 수 있습니다.
udevadm info --query=property --name=sdb
일련 번호 (ID_SERIAL_SHORT)를 포함하여 해당 장치의 속성 목록이 표시됩니다. 해당 정보가 있으면 lsusb -v
제조업체 및 제품 이름과 같은 결과를 보고 찾을 수 있습니다.
이를위한 짧은 경로는
udevadm info --query=property --name=sdb | grep "\(MODEL_ID\|VENDOR_ID\)"
$ID_VENDOR_ID:$ID_MODEL_ID
보다 짧은 출력에서 일치하는 라인을 참조하십시오 lsusb
.
또 다른 유용한 옵션은 udevadm monitor
입니다. 장치 를 연결할 때 어떤 장치 노드가 만들어 졌는지 알고 싶다면 사용하십시오 . 첫 실행
udevadm monitor --udev --subsystem-match=block
그런 다음 장치를 연결하십시오. 감지 된 블록 장치 (디스크 / 파티션)의 장치 이름이 각 출력 라인의 끝에 인쇄 된 것을 볼 수 있습니다.
다음은 .bashrc
(또는 .zshrc
)에 넣을 수있는 기능입니다 .
listusbdisks () { [[ "x $ 1"== "xv"]] && shift && 로컬 VERBOSE = -v $ {@-/ dev / sd에서 dsk에 대해?} 하다 / sbin / udevadm info --query = path --name = "$ dsk"| grep --colour = auto -q usb || 계속하다 echo "===== 장치 $ dsk는 :" (평가 $ (/ sbin / udevadm info --query = property --name = "$ dsk"| grep "\ (MODEL \ | VENDOR \) _ ID") [ "$ ID_VENDOR_ID : $ ID_MODEL_ID"== ":"] && echo "알 수 없음"|| \ lsusb $ VERBOSE -d "$ ID_VENDOR_ID : $ ID_MODEL_ID" ) grep -q "$ dsk"/ proc / mounts && echo "----- 장치가 마운트되었습니다 ----" 에코 끝난 }
다음과 같이 사용하십시오 :
listusbdisks
-모든 /dev/sdx
장치 를 인식 합니다.listusbdisks sdb
또는 listusbdisks /dev/sdb
또는 listusbdisks sdb sdc
-특정 장치에 대한 정보 만 가져옵니다.listusbdisks -v [optional devices as above]
-자세한 출력을 표시합니다 lsusb
[편집] : 많은 장치 쿼리, 마운트 확인 및의 상세 제어와 같은 기능이 추가되었습니다 lsusb
.
udev
.
lsusb
또한 선택적 프로그램입니다. 그러나 둘 다 매우 일반적입니다.
dmesg
입니다. 그러나 장치가 이미 연결되어 있고 첫 번째 장치 뒤에 더 많은 장치가 연결되어 있으면 도움이되지 않습니다. :)
모든 유닉스와 관련하여 이것이 가능하다고 생각하지 않습니다.
오늘날 일반적인 외부 버스는 IDE처럼 고정 된 번호 체계를 포트에 사용하지 않습니다. 따라서 매핑에 필요한 나머지 데이터 소스는 드라이브 제조업체 이름, 일련 번호 또는 파티션 UID입니다.
특정 머신에서 제조업체 이름이 반드시 고유하지는 않습니다 (동일한 시리즈에서 두 개의 외부 드라이브를 연결한다고 가정하면 동일하게 식별 됨). 일련 번호는 파티션 UID와 같이 "외부에서 볼 수 없습니다".
따라서 내가 생각할 수있는 유일한 범용 솔루션에 대해서는 물리적 드라이브에 일련 번호로 레이블을 지정하고 UDEV를 사용할 수있는 경우 rozcietrzewiacz의 답변에 제공된 udevadm 명령을 사용하는 것입니다.