【问题标题】:How do I get the Hard Drive serial number of a USB drive on OS X?如何在 OS X 上获取 USB 驱动器的硬盘驱动器序列号?
【发布时间】:2013-04-27 04:30:09
【问题描述】:

我查看了 IOKit 中的 DADiskCopyDescription 和枚举 IOUSBDevice,但都没有向我提供 USB 硬盘驱动器的序列号。后者提供的 USB 序列号与其硬盘序列号不同。我如何得到它(在 c/c++ 中,而不是通过 shell)?

【问题讨论】:

标签: c++ c macos


【解决方案1】:

您基本上要问的是“我如何通过 USB 直接与硬盘驱动器通信?”

答案是:这取决于 USB 控制器。并非所有控制器都支持您的请求。

必须满足以下条件:

  1. USB 桥接器必须支持 ATA 直通(如果是 ATA)
  2. 主机操作系统必须支持 SCSI
  3. 操作系统必须提供 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...
猜你喜欢
  • 1970-01-01
  • 2011-08-06
  • 2011-03-24
  • 2012-05-24
  • 2012-08-07
  • 2015-07-05
  • 2017-02-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多