我试图验证一个驱动器,支持多种格式的安全擦除。该格式在特定于供应商的ATA-8数据包中指定。我们的技术人员非常巧妙地解决了这个问题,方法是使用协议测试器驱动程序创建一个与所需数据包“接近”的数据包,然后使用SATA分析器的错误注入功能将数据包修改为正确的格式。
现在,客户正在请求一个Linux实用程序,以便他们能够测试该功能。当然,我更喜欢一种更直截了当的方法来测试将来特定于供应商的命令。
通常,我想知道Linux中是否有一个实用程序,可以通过直接执行协议(ATA、SATA等)在驱动器上进行驱动器验证。
如果这种类型的支持内置于脚本语言(python或perl等)中。然后,也许只是提供一点建议,说明在Linux下哪种语言对这类工作有最好的支持。这将节省我研究最好的道路的时间。
谢谢,
布赖恩
发布于 2020-01-16 00:29:20
我不太确定你在考虑哪种“验证”。您是要测试与数据完整性相关的问题,还是要检查它的健康状况,还是要直接使用该驱动器?
对于一些可能有用的即时想法:包gsmartcontrol是smartmontools包的前端,它包含smartctl CLI工具,主要用于处理驱动器的智能特性,包括报告、日志记录和自我测试。
如果你说到直接处理硬盘的话,hdparm是第一个出现在我脑海中的工具。它可以向驱动器发出一系列直接的S/ATA命令,绕过通常的Linux驱动程序。这些功能包括获取驱动器信息/标识(从设备本身)、读取和设置多扇区计数(IDE块模式)、直接从磁盘读取特定扇区的内容以及设置设备的功率状态(例如,使其立即旋转)等。
如果这不是你想要的,也请在问题中澄清。
--这是完全明智的。
下一个内容使得这是一个相当低质量的“答案”。
由于请求是如此低级别(请参阅注释),我只是添加了一些潜在的有趣的链接,因为我不知道有任何普通的用户空间软件存在,基本上是低级别的硬件测试。已经进行了一些搜索,如果需要在这里编写自定义软件,那么下面的内容可能会很有用:
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?)
https://unix.stackexchange.com/questions/562357
复制相似问题