【问题标题】:How can I identify USB Storage "volume name" under Linux?如何在 Linux 下识别 USB 存储“卷名”?
【发布时间】:2015-09-22 15:03:48
【问题描述】:

我正在尝试编写一个脚本来列出已连接的 USB 列表,如下所示:

  • MyFlash - 威刚
  • BootUSB - 威刚
  • MyBackup - SAN 磁盘

但我不知道如何识别连接的USB设备是存储设备,以及它的卷名。

欢迎使用 C/C++、Python 或 Node.js 帮助,但仅限 Linux 操作系统。

我正在寻找使用代码挂载和重新挂载,但我认为为此使用 Linux 命令会很容易。

【问题讨论】:

  • 我很确定类似的外部设备会显示在“sda、sdb 等”列表下。
  • 我知道@durbnpoisn,但我正在看Linux如何用它的名字挂载它,Linux有一个地方可以获取USB存储信息。到目前为止,使用 usb-devices 命令行,我可以知道连接的设备是一个 usb-storage。但是卷名,我还在找。
  • 你是指/dev/disk/by-label/*的符号链接吗?
  • @rodrigo,嗯,我现在才发现,任何(以前)标记为连接到您系统的 USB 存储都将在 /dev/disk/by-label/ 下获得其标签作为符号链接.如果之前没有标记,系统不会为其创建
  • 但我不知道为什么如果我为 USB 存储进行 umount,它的符号标签会被删除。我也看不到有关我的平板电脑的任何详细信息。

标签: linux usb udev


【解决方案1】:

试一试:

udevadm info -a -n /dev/usbdevice

更多信息:

udevinfo -q all -n /dev/sda

更多信息:

lsusb -v
lshw

【讨论】:

  • 我应该在哪个部分查找,我找不到我的 USB 名称
  • $ udevadm info -a -n /dev/sdb | less 然后开始搜索usb名字,找不到了。
  • 好吧@Matt,我在此部分下找到了USB闪存名称 ID_FS_LABEL=MULTIBOOT 和 ID_FS_LABEL_ENC=MULTIBOOT 这仅在安装USB存储时可用。当我卸载时,这部分会消失。 Linux 是如何知道这个名字的 :) :)
  • @Matt,当我第一次连接(NTFS)usb 时,我将它标记为 /dev/disk/by-label/FlashName
  • 任何未标记的 USB 存储,系统将其命名为以下格式:“ GB Volume”
【解决方案2】:

使用命令blkid(8) 来识别系统中可见/格式化分区的 UUID、文件系统类型、卷标等。系统脚本使用它来收集信息和挂载文件系统,因此您在解析其输出时不会遇到任何问题。

【讨论】:

    【解决方案3】:

    如果已经挂载并且是您可以看到的以下任何类型的分区:

    mount -l|grep -E 'fuseblk|vfat|ext4'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-19
      • 2013-12-22
      • 1970-01-01
      • 2019-04-11
      • 1970-01-01
      • 2013-12-21
      • 2014-07-08
      • 1970-01-01
      相关资源
      最近更新 更多