在硬盘上查找命令



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

我想知道如何在硬盘上进行一系列的SEEK操作。这就像教皇"硬盘功耗建模"中的工作一样。我需要一个工具、一个接口或一个命令来查找磁盘上的指定地址,比如LBA或柱面地址。

我想在不传输数据的情况下使用这个命令来计算硬盘的寻道距离。因为我需要根据实验绘制一条搜索距离和能量的曲线。

SEEK命令和柱面格式的搜索距离是我需要的。linux和windows都可以。请帮我一下。

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

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

因此,您需要的两个部分是如何对Linux的SG设备进行编程:

  • Linux SCSI通用(sg(HOWTO
  • 关于将/dev/sdX映射到/dev/sgN的SO答案并不完全令人信服

以及SCSI标准。这些都是T10发布的昂贵的专有标准,但一些创造性的搜索查询应该会发现你起草或以其他方式伪造副本。对SCSI的描述一般称为"信息技术-SCSI主命令-4(SPC-4(",与硬盘和类似介质有关的命令是"信息技术-SCSI块命令-2(SBC-2("。(这些命令的未来版本将被称为SPC-5、-6等。(后一份文档中描述了查找的特定命令,您想要的命令被称为SEEK(10(。SEEK(6(是一个只支持小磁盘的旧命令,在非SCSI设备上可能不太支持。

最新更新