在硬盘上寻求命令

时间:2015-01-19 11:03:38

标签: disk seek

我在寻找硬盘时遇到了问题。

我想知道如何在硬盘上读取或写入时进行一系列SEEK操作。它就像纸张中的工作"建模硬盘功耗"。我需要一个工具,一个接口或一个命令来寻找磁盘上的指定地址,如LBA或柱面地址。

我想在没有数据传输的情况下使用此命令找出硬盘的搜索距离。因为我需要根据实验绘制寻道距离和能量的曲线。

SEEK命令和圆柱形搜索距离是我需要的。 linux和windows都可以。请帮我一把。

1 个答案:

答案 0 :(得分:1)

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

至少部分原因是这些设备在Linux上显示为名为/ dev / sdX的SCSI磁盘,在/ dev / sgN中具有相应的“SCSI通用”设备。 FreeBSD提供了类似的API,MS-DOS和Windows都有ASPI和朋友,除非你编写自己的内核驱动程序,否则你在MacOS X上运气不好(对于Yosemite,请将其签名。)

所以你需要的两件事就是如何编写Linux的SG设备:

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