如何在 OS X 上获取 USB 驱动器的硬盘驱动器序列号?
Posted
技术标签:
【中文标题】如何在 OS X 上获取 USB 驱动器的硬盘驱动器序列号?【英文标题】:How do I get the Hard Drive serial number of a USB drive on OS X? 【发布时间】:2013-04-27 04:30:09 【问题描述】:我查看了 IOKit 中的 DADiskCopyDescription
和枚举 IOUSBDevice
,但都没有向我提供 USB 硬盘驱动器的序列号。后者提供的 USB 序列号与其硬盘序列号不同。我如何得到它(在 c/c++ 中,而不是通过 shell)?
【问题讨论】:
Get Serial Number of USB HDD (Mac OS)的可能重复 @JohnZwinck 不,该解决方案是我在问题中引用的IOUSBDevice
。 IE。它只给USB串口,不给HD串口。
【参考方案1】:
您基本上要问的是“我如何通过 USB 直接与硬盘驱动器通信?”
答案是:这取决于 USB 控制器。并非所有控制器都支持您的请求。
必须满足以下条件:
-
USB 桥接器必须支持 ATA 直通(如果是 ATA)
主机操作系统必须支持 SCSI
操作系统必须提供 SCSI 直通 API(在 Windows 和 Linux 上是,在 MacOS X 上否)
出现另一个因素:一些控制器支持独立于驱动器制造商的直通,但一些控制器支持基于它们所控制的硬盘驱动器的不同命令。这还取决于连接的驱动器是 PATA、SATA/SAS 还是 SCSI。
至少支持上述其中一种的控制器示例包括 Sunplus SPIF215/6、SPIF225/6;智微JM20329、JM20335-39;和赛普拉斯 CY7C68300B/C (AT2LP)、CY7C68310 (ISD-300LP)。
希望我有更好的消息告诉你。
【讨论】:
有趣。 Windows 无需任何特殊工作即可为我提供正确的(驱动器)序列号。 IE。我没有任何形式的通过。 OS X 有类似的东西吗?那么,您是说在 OS X 上是不可能的吗? 我怀疑您的 USB 控制器将串行 # 请求传递到驱动器。回复:MacOSX:没有什么是不可能的,但它可能需要更多的工作。要开始使用,请查看:comments.gmane.org/gmane.linux.utilities.smartmontools/6812Until the very recent version of smartmontools (5.39), SMART through USB was not possible on Mac OS X, because the Mac OS X kernel does not support SCSI pass through...
以上是关于如何在 OS X 上获取 USB 驱动器的硬盘驱动器序列号?的主要内容,如果未能解决你的问题,请参考以下文章
为我的 Yamaha DGX-305 键盘构建 Mac OS X USB 驱动程序的参与程度如何?
os x系统菜鸟求教macbook上怎样安装secure CRT,怎样安装usb-com的驱动
Delphi - 如何获取 USB 可移动硬盘和记忆棒的列表?