2013-01-22 3 views
1

Linux 배포판 (수정 된 Ubuntu 10.04)에 USB 저장 장치 (usb 스틱)가 마운트되었는지 확인하려고합니다. 순간 내가 lsusb -v 명령을 사용하고 난에 interesed 해요 USB 장치의 버스, 장치 및 ID를 얻기 위해 구문 분석usb가 lsusb 데이터를 사용하여 마운트되었는지 확인

버스 :. 001 DEVICE : 008 ID 0781 : 5560 샌 디스크 사 . . .

필자가 원하는 것은 lsusb -v에서 얻은 데이터를 사용하여 해당 usb가 마운트되었는지 여부를 결정하는 것입니다.

나는이 분야에서 실제로 (필자의 무릎에서 끝이났다) 어떤 포인터라도 감사 할 것입니다. 나는 여기와 다른 사이트들을 보았고 흥미로운 것들을 배웠지 만, 정말로 나를 가까이에 가져다주지는 않습니다. 나는/proc/mount에서 usb가 마운트되었지만 can/proc/mount에서 얻을 수있는 정보와 lsusb로 얻은 정보가 일치하지 않음을 알 수있다. 서로를 매치시킬 수있다.

FYI : 응용 프로그램은 python으로 작성되었으며 pyUSB와 같은 외부 라이브러리를 사용할 수 없다는 제약이 있습니다. 내가 말했듯이 어떤 조언/도움을 주시면 감사하겠습니다.

건배

+0

나는 다시 수 있습니다. 메시지 로그를 사용하여이 작업을 수행하는 방법을 찾았습니다. –

답변

1

내 제안은 USB 장치가 장착 된 것인지를 결정하기 위하여 dmesg 명령과 함께 lsusb을 사용하는 것이다.

여기 내 우분투 컴퓨터에서 출력되는 lsusbdmesg의 샘플 출력입니다. dmesg의 출력은 모든 장착 파일 시스템을 나열한다 인수없이 lsusb

[email protected]:~$ lsusb 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub 
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub 
Bus 002 Device 002: ID 0e0f:0003 VMware, Inc. Virtual Mouse 
Bus 002 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub 
Bus 001 Device 005: ID 0781:5530 SanDisk Corp. Cruzer U3 4gb SDCZ36 

[email protected]:~$ dmesg | tail 
[1084707.969418] usb 1-1: new high speed USB device number 5 using ehci_hcd 
[1084708.119662] scsi5 : usb-storage 1-1:1.0 
[1084709.120841] scsi 5:0:0:0: Direct-Access  SanDisk Cruzer   1.19 PQ: 0 ANSI: 5 
[1084709.125158] sd 5:0:0:0: Attached scsi generic sg2 type 0 
[1084709.130677] sd 5:0:0:0: [sdb] 31266816 512-byte logical blocks: (16.0 GB/14.9 GiB) 
[1084709.138819] sd 5:0:0:0: [sdb] Write Protect is off 
[1084709.138821] sd 5:0:0:0: [sdb] Mode Sense: 43 00 00 00 
[1084709.146812] sd 5:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA 
[1084709.186467] sdb: sdb1 
[1084709.215365] sd 5:0:0:0: [sdb] Attached SCSI removable disk 
[email protected]:~$ 
0

mount 의해보고 장치 번호 및 제품/벤더 정보를 포함한다. 예 :

~ » mount                                             [email protected] 
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime) 
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel) 
devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=3988728k,nr_inodes=997182,mode=755) 
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000) 
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel) 
tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,mode=755) 
/dev/sda1 on/type ext4 (rw,relatime,seclabel,data=ordered) 

귀하의 USB 디스크 장치를 아는 사람은 다음과 같습니다. /dev/sdb, 당신은 출력에서 ​​검색을 시도 할 수 있습니다 :

mount | grep '/dev/sdb' 
0

당신은 사용할 수 있습니다 : 나는 방법을 알아낼 수 있다면

numberOfUsb=$(lspci | grep -c USB) 
echo "Number of USB controller found: $numberOfUsb" 

parsedId=`lspci | grep -m 8 USB | sed "s/ .*//"`