我正在尝试确定是否在Linux发行版(已修改的Ubuntu 10.04)上安装了USB存储设备(usb stick)。 目前我使用lsusb -v命令并解析它以获取我所介入的USB设备的总线,设备和ID。
总线:001设备:008 ID 0781:5560 SanDisk Corp. 。 。
我理想的是能够使用我从lsusb -v获得的数据来确定是否已安装该USB。
我之前从来没有真正摆弄过这个区域(它刚好在我的腿上),任何指针都会受到赞赏。我看过这里和其他网站,并学到了一些有趣的东西,但没有什么真正让我更接近。我可以在/ proc / mount中看到usb已挂载,但是无法使用lsusb获得的信息与我在cat / proc / mount中获得的信息相匹配,因为这将构成我需要的应用程序的一部分能够匹配彼此。
仅供参考:应用程序是用python编写的,我受限于无法使用pyUSB等外部库。正如我所说,任何指针/帮助将不胜感激。
干杯
答案 0 :(得分:1)
我的建议是将lsusb
与dmesg
命令结合使用,以确定是否已安装USB设备。
这是'来自我的Ubuntu机器的lsusb
和dmesg
的示例输出。 dmesg
的输出包括lsusb
dbala@ubuntu:~$ 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
dbala@ubuntu:~$ 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
dbala@ubuntu:~$
答案 1 :(得分:0)
mount
将列出所有已安装的文件系统。例如:
~ » mount wangbin@dhcp12-241
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'
答案 2 :(得分:0)
您可以使用:
numberOfUsb=$(lspci | grep -c USB)
echo "Number of USB controller found: $numberOfUsb"
parsedId=`lspci | grep -m 8 USB | sed "s/ .*//"`