【问题标题】:Seek Command on hard disk在硬盘上查找命令
【发布时间】:2015-01-19 11:03:38
【问题描述】:

我在硬盘驱动器上查找时遇到问题。

我想知道如何在不读取或写入硬盘驱动器的情况下执行一系列 SEEK 操作。就像论文“建模硬盘功耗”中的工作一样。我需要一个工具、一个接口或一个命令来寻找磁盘上的指定地址,如 LBA 或柱面地址。

我想在不传输数据的情况下使用此命令计算硬盘的寻道距离。因为我需要根据实验画出寻道距离和能量的曲线。

我需要一个 SEEK 命令和柱面格式的寻道距离。 linux和windows都可以。请帮我一把。

【问题讨论】:

    标签: disk seek


    【解决方案1】:

    查找不是通常的块设备 API 的一部分,因此您需要发出特定于设备的命令来执行查找。为方便起见,USB 和 IDE/SATA 都选择使用 SCSI 命令集来执行此类命令,因此您需要参考 SCSI 标准。

    这至少部分地解释了为什么此类设备在 Linux 上显示为名为 /dev/sdX 的 SCSI 磁盘,而相应的“SCSI 通用”设备位于 /dev/sgN。 FreeBSD 提供了类似的 API,MS-DOS 和 Windows 有 ASPI 和朋友,除非你编写自己的内核驱动程序,否则你在 MacOS X 上不走运(对于 Yosemite,请签名。)

    所以你需要的两部分是如何对 Linux 的 SG 设备进行编程:

    ...和 ​​SCSI 标准。这些是由T10 发布的昂贵的专有标准,但一些有创意的搜索查询应该会找到您草稿或其他古怪的副本。一般描述 SCSI 的一种称为“信息技术 - SCSI Primary Commands - 4 (SPC-4)”以及与硬盘和类似媒体相关的是“Information Technology - SCSI Block Commands - 2 (SBC-2)"。(这些的未来版本将称为 SPC-5、-6 等)用于查找的具体命令在后一个文档中进行了描述,您想要的称为 SEEK( 10). SEEK(6) 是一个遗留命令,只支持小磁盘,在非 SCSI 设备上可能得不到很好的支持。

    【讨论】:

    • 非常感谢。我会阅读您列出的文档。我之前看过 SCSI 命令,但不太确定。谢谢你说清楚。
    猜你喜欢
    • 2010-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-15
    • 2013-03-18
    • 2015-11-16
    相关资源
    最近更新 更多