如何在 Cygwin 中确定 USB 记忆棒的序列号?

如何在 Cygwin 中确定 USB 记忆棒的序列号?

我已经知道,在 Windows 中,您可以通过执行 来获取 USB 存储驱动器的卷序列号dir <drive_letter>:,其中<drive_letter>是 USB 驱动器的驱动器号。我还进行了一些搜索,发现 Linux 有一个名为 lsusb 的命令,它也会为您提供卷序列号。

Cygwin 中有相应的命令吗?我在任何安装文件中都找不到 lsusb(libusb 没有它)。

我有一个脚本,它每天运行并将文件复制到特定的 USB 记忆棒。问题是,我无法保证它是任何时候插入我电脑的唯一 USB 记忆棒,而且 Windows 会随意为 USB 记忆棒分配驱动器号。匹配卷序列号将使我能够确保我正在写入正确的 USB 驱动器。

答案1

您可以使用磁盘分区据我所知,大多数最新版本的 MS Windows 都包含此功能。我正在使用Windows 7 入门版(所以我几乎没有“专家技术工具”,比如人们认为 Windows 的“服务器”或“专业”版本会提供的工具)。尽管如此,我还是磁盘分区

请注意,你可能需要应对联合航空(用户访问控制)才能运行 diskpart,即使只是为了获取有关磁盘或分区的信息(我认为从 perl 中详细说明 UAC 超出了问题的范围 ;-)。请注意,diskpart 基本上是一个交互式工具,虽然文档描述了使用脚本来操作它,但我还没有尝试过。

答案2

您可以从 /proc/registry 获取一些可能有用的信息,例如下面最后一行是关于 USB 设备的信息:

$ more /proc/registry/HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/partmgr/Enum/*
::::::::::::::
/proc/registry/HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/partmgr/Enum/0
::::::::::::::
Root\LEGACY_PARTMGR\0000
::::::::::::::
/proc/registry/HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/partmgr/Enum/1
::::::::::::::
IDE\DiskWDC_WD2500BEVS-22UST0___________________01.01A01\4&1375d492&0&0.0.0
::::::::::::::
/proc/registry/HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/partmgr/Enum/2
::::::::::::::
USBSTOR\Disk&Ven_Brother&Prod_MFC-5860CN&Rev_1.00\8&6604242&0&BROL6F685804&0
::::::::::::::
/proc/registry/HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/partmgr/Enum/3
::::::::::::::
uuid:73656761-7465-7375-636b-0090a9b61377\UMB\3&1e7e4b7a&0&uuid:73656761-7465-7375-636b-0090a9b61377
::::::::::::::
/proc/registry/HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/partmgr/Enum/4
::::::::::::::
SD\VID_27&OID_5048&PID_SD04G&REV_3.0\5&fda7c2c&0&0
::::::::::::::
/proc/registry/HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/partmgr/Enum/5
::::::::::::::
USBSTOR\Disk&Ven_Multi&Prod_Flash_Reader&Rev_1.00\9&4b089fb&0&058F0O1111B1&0

相关内容