在硬盘上寻找命令

Seek Command on hard disk

我在硬盘上搜索有问题

我想知道如何在不读取或写入硬盘驱动器的情况下进行一系列 SEEK 操作。就像论文"Modeling Hard-Disk Power Consumption"中的工作一样。我需要一个工具、一个接口或一个命令来寻找磁盘上的指定地址,如 LBA 或柱面地址。

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

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

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

这至少部分是为什么此类设备在 Linux 上显示为名为 /dev/sdX 的 SCSI 磁盘以及相应的 "SCSI generic" 设备位于 /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 设备上得不到很好的支持。