我正在尝试验证支持多种格式安全擦除的驱动器。该格式在供应商特定的 ATA-8 数据包中指定。我们的技术人员非常巧妙地解决了这个问题,他们使用协议测试仪drivemaster创建一个“接近”所需数据包,然后使用SATA分析仪的错误注入功能将数据包修改为正确的格式。
现在,客户需要一个 Linux 实用程序,以便他们可以测试功能。我当然更喜欢一种更直接的方法来测试未来供应商特定的命令。
一般来说,我想知道 Linux 中是否有一个实用程序,我可以使用它通过直接执行协议(ATA、SATA 等)来对驱动器进行驱动器验证。
如果这种类型的支持内置于脚本语言(python 或 perl 等)中,那么也许只是关于哪种语言在 Linux 下对此类工作提供最佳支持的一些建议。这将节省我研究最佳路径的时间。
谢谢,
布莱恩
答案1
我不太确定您正在考虑哪种“验证”。您想要测试与数据完整性相关的问题,还是想要检查其运行状况,或者想要直接使用驱动器?
对于一些可能有帮助的直接想法:该软件包gsmartcontrol
是软件包的前端smartmontools
,其中包含smartctl
主要处理驱动器 SMART 功能(包括报告、日志记录和自测试)的 CLI 工具。
hdparm
如果您谈到直接处理硬盘驱动器,这是我想到的第一个工具。它可以绕过常用的 Linux 驱动程序,向驱动器发出一系列直接 S/ATA 命令。这些功能包括获取驱动器信息/标识(从设备本身)、读取和设置多个扇区计数(IDE 块模式)、直接从磁盘读取特定扇区的内容以及设置设备的电源状态(例如使其立即停止旋转)等。
如果这不是您想要的,也请在问题中澄清。
有什么需要补充的吗?
接下来的内容使这个“答案”质量相当低
因为请求是如此低级(请参阅评论),所以我只是添加了一些可能有趣的链接,因为我不知道存在任何用于基本上低级硬件测试的常见用户空间软件。进行了一些搜索,发现如果需要在此处编写自定义软件,以下内容可能会很有用:
请注意,所有这些资源都围绕 2.6 内核,该内核已有 16 年的历史了!
https://www.oreilly.com/library/view/linux-device-drivers/0596005903/ch14.html《Linux 设备模型》
https://www.oreilly.com/library/view/linux-device-drivers/0596005903/ch16.html”
https://www.kernel.org/doc/html/latest/userspace-api/ioctl/hdio.html总结了上一篇文章中提到的内核 (v2.6) HDIO 功能。
https://www.kernel.org/doc/html/latest/block/data-integrity.html
这就是我所能提供的全部内容,没有任何该领域的个人经验和更具体的信息(例如,它实际上是硬盘驱动器还是 SDD?)。