Smartmontools 是一个开源的软件包,主要用于通过自我监控、分析和报告技术(SMART)来控制和监控存储系统(例如硬盘和固态硬盘)。SMART 是一种内置在大多数现代硬盘(包括 ATA/SATA、SCSI/SAS 和 NVMe 硬盘)中的技术,可以帮助检测和预测硬盘故障。Smartmontools 提供了两个主要工具:smartctl 和 smartd,

GitHub - smartmontools/smartmontools: Official read only mirror of the smartmontools project SVN

smartmontools

Introduction | Alexander Shaduri

https://github.com/ashaduri/gsmartcontrol/releases/tag/v2.0.2

 

日期 事件描述
2025年2月24日 Alexander Shaduri 发布了 GSmartControl 2.0.2 版本(这是一个 smartctl 的图形用户界面)。
2024年11月26日 Alexander Shaduri 发布了 GSmartControl 2.0.1 版本(这是一个 smartctl 的图形用户界面)。
2024年1月3日 项目 Trac 和 Wiki 升级到最新的 1.6 版本。
2023年9月16日 如果使用相同的 SOURCE_DATE_EPOCH、构建配方和工具链,现在在 builds.smartmontools.org 的 CI 构建可以重复生成。
2023年8月1日 发布了 Smartmontools 7.4 版本。请查看 NEWS 文件和票据报告,了解更改和新功能的摘要。
2023年6月30日 macOS 上的 CI 构建(builds.smartmontools.org)现在支持 arm64 和 x86_64 架构,i386 需要从源代码构建。未来的发布构建也将如此。
2022年10月10日 smartmontools 首次发布的 20 周年纪念 - 另见 smartmontools 历史。
2022年2月28日 发布了 Smartmontools 7.3 版本。
2022年2月4日 Alexander Shaduri 发布了 GSmartControl 1.1.4 版本(这是一个 smartctl 的图形用户界面)。
2021年10月23日 如果 smartd 与 GNU mailutils < 3.13 一起使用,则存在安全问题。有关详细信息和各种可能的修复,请参阅票据 #1535。
2020年12月30日 发布了 Smartmontools 7.2 版本。
2019年12月30日 发布了 Smartmontools 7.1 版本。
2018年12月30日 发布了 Smartmontools 7.0 版本。

Smartmontools 是一个开源的软件包,主要用于通过自我监控、分析和报告技术(SMART)来控制和监控存储系统(例如硬盘和固态硬盘)。SMART 是一种内置在大多数现代硬盘(包括 ATA/SATA、SCSI/SAS 和 NVMe 硬盘)中的技术,可以帮助检测和预测硬盘故障。Smartmontools 提供了两个主要工具:smartctlsmartd,它们分别用于手动检查硬盘健康状况和自动监控硬盘。

怎么样

  1. 功能强大:通过 smartctl 工具,用户可以手动查看硬盘的健康状态、温度、SMART 信息以及进行硬盘自检。smartd 工具则提供了定期监控硬盘状态的功能,帮助及时检测到潜在的硬盘故障。

  2. 跨平台支持:Smartmontools 支持多种操作系统,包括 Linux、FreeBSD、NetBSD、OpenBSD、Darwin(macOS)、Solaris、Windows 等。这意味着无论你使用什么操作系统,都可以使用 Smartmontools 来监控硬盘。

  3. 兼容多种硬盘:它支持 ATA/SATA、SCSI/SAS 和 NVMe 硬盘,甚至支持一些 SCSI 磁带设备。这使得它能够兼容广泛的硬件配置。

为什么

  1. 预警功能:Smartmontools 可以通过读取硬盘的 SMART 信息,提供有关硬盘健康状态的早期警告。这意味着如果硬盘即将发生故障,用户可以提前知道,并采取相应的措施,如备份数据或更换硬盘。

  2. 提高硬盘的使用寿命:通过监控硬盘的健康状态,用户可以避免硬盘在临近故障时继续使用,减少数据丢失的风险。

  3. 适用于各种系统和硬件:它支持多个操作系统和硬件类型,适用于不同的用户和应用场景,无论是个人电脑、服务器还是专业存储系统,都能使用 Smartmontools 进行硬盘监控。

总之,Smartmontools 是一款非常实用的工具,适合需要监控硬盘健康状况的用户,尤其是对那些运行关键任务系统的用户来说,提前预警硬盘问题是非常重要的。


Smartmontools 的功能可以分为以下几个主要类别:

1. 硬盘健康监控与诊断

  • smartctl 是 Smartmontools 的核心工具,提供对硬盘的全面监控和诊断功能。它可以读取硬盘的 SMART 信息,显示硬盘的健康状态、温度、使用时间、坏道信息等。
  • 主要功能:
    • 读取 SMART 属性:显示硬盘的详细 SMART 属性,包括各项健康参数(如读取错误、温度、工作小时数等)。
    • 运行自检(Self-test):可以启动硬盘的内部自检程序,如短时间自检和长时间自检,以检测硬盘是否存在潜在问题。
    • 查看详细错误信息:列出硬盘的历史错误记录,帮助诊断硬盘是否有故障的迹象。
    • 温度监控:显示硬盘的工作温度,帮助用户保持硬盘在合理的工作温度范围内。

2. 硬盘监控自动化

  • smartd 是 Smartmontools 中的守护进程工具,它用于自动监控硬盘健康并定期生成报告。
  • 主要功能:
    • 定期监控:smartd 可以定时检查多个硬盘的健康状态,确保硬盘在运行过程中不出现故障。
    • 邮件提醒:当硬盘出现问题或健康状态异常时,smartd 可以通过邮件通知管理员或用户。
    • 日志记录:smartd 可以将硬盘的监控结果记录到日志文件中,方便用户查看历史监控数据。

3. 硬盘的SMART属性分析

  • Smartmontools 提供了对硬盘各类 SMART 属性的读取与分析,SMART 属性包括:
    • Reallocated Sectors Count(重新分配扇区计数):硬盘在遇到坏道时会将数据重新分配到备用扇区,数量越多,意味着硬盘可能有较多的物理损坏。
    • Current Pending Sector Count(当前待处理扇区计数):表示硬盘中待处理的潜在坏道。
    • Uncorrectable Sector Count(不可修正扇区计数):记录硬盘上无法修复的坏道数量。
    • Temperature:硬盘的工作温度,过高的温度可能会影响硬盘的性能和寿命。
    • Power-On Hours:硬盘开机运行的总时间,反映硬盘的使用年限。

4. 硬盘的自检功能

  • 通过 smartctl,用户可以发起不同类型的硬盘自检:
    • 短时间自检:快速检查硬盘的基本功能,通常持续几分钟。
    • 长时间自检:全面检查硬盘的健康状况,可能需要数小时。
    • 传输模式检查:检查硬盘在数据传输中的性能和错误。

5. 支持多种硬盘接口

  • Smartmontools 支持多种硬盘接口,包括:
    • ATA/SATA:常见的传统硬盘接口,Smartmontools 支持对这些硬盘的全面监控。
    • SCSI/SAS:用于高性能服务器和工作站的硬盘接口,Smartmontools 支持对这些硬盘的诊断。
    • NVMe:新一代高速存储设备接口,Smartmontools 对 NVMe 硬盘也提供支持。
    • USB 外接硬盘:支持通过 USB 连接的外部硬盘监控。

6. 硬盘的健康预警与告警

  • Smartmontools 的核心目标之一是帮助用户通过硬盘健康预警防止数据丢失。
  • 通过读取 SMART 属性和历史记录,工具可以预测硬盘可能发生的故障,并给出提前警告。
  • 用户可以配置告警规则,比如当硬盘温度过高、坏道数增加、读取错误频繁时,自动发送邮件或报警。

7. 硬盘性能分析

  • 通过读取和分析 SMART 信息,Smartmontools 可以对硬盘的性能进行一定程度的评估,尤其是对硬盘的工作负载、健康状况、故障频率等进行量化,帮助用户判断硬盘是否需要更换。

8. 硬盘的健康报告和日志

  • Smartmontools 生成的报告和日志是其重要的功能之一。通过这些报告,用户可以:
    • 查看硬盘的健康历史记录。
    • 获取实时或定期的健康状态报告。
    • 分析硬盘可能存在的潜在故障,帮助决策是否进行硬盘更换或备份。

总之,Smartmontools 的功能可以帮助用户有效地监控和诊断硬盘的健康状况,预防硬盘故障,并在故障发生前提前获取警告,减少数据丢失的风险。


Smartmontools 可以应用于多个场景,尤其是在需要保证数据安全性和硬盘可靠性的重要系统中。以下是一些典型的应用场景:

1. 个人计算机和工作站

  • 硬盘健康监控:普通用户可以使用 Smartmontools 定期检查硬盘的健康状况,尤其是在使用较老的硬盘或 SSD 时,提前发现潜在的故障问题,避免因硬盘故障导致数据丢失。
  • 系统性能评估:通过分析硬盘的 SMART 属性,用户可以了解硬盘的工作负荷和温度等信息,优化系统性能。
  • 温度管理:对硬盘温度的监控非常关键,特别是高性能的机械硬盘或 SSD。Smartmontools 可以帮助用户控制硬盘工作在合理的温度范围内,延长硬盘使用寿命。

2. 企业服务器和数据中心

  • 大规模硬盘监控:在拥有大量硬盘的企业服务器和数据中心,Smartmontools 可以用来批量监控硬盘的健康状况,提前发现潜在故障,避免关键服务器出现硬盘故障导致的服务中断。
  • 自动化报告和报警:通过 smartd 守护进程,企业可以自动化监控硬盘的健康状况,并在出现问题时通过邮件或日志进行通知。这有助于 IT 部门及时进行硬件更换,避免数据丢失或服务中断。
  • 预测性维护:根据硬盘的 SMART 数据,IT 管理员可以预测硬盘故障的概率,提前进行硬盘替换,确保服务器的高可用性。

3. 存储设备与 NAS(网络附加存储)

  • 家庭存储和媒体服务器:家庭用户或小型办公室使用 NAS 设备时,可以利用 Smartmontools 定期监控硬盘的健康状态,确保存储数据的安全性,尤其是保存重要数据、家庭照片、视频文件等。
  • RAID 系统监控:在 RAID 配置中,Smartmontools 可以监控每个硬盘的健康状况,并通过日志记录发现潜在的硬盘故障,提前处理避免数据丢失。

4. 高性能计算环境

  • 高负载硬盘监控:在高性能计算环境(如 HPC、云计算平台等)中,硬盘的健康状况尤为重要。Smartmontools 可以监控硬盘的健康状态和负载情况,确保计算任务不会因硬盘故障而受到影响。
  • 数据读写性能监测:对硬盘的读写性能进行监控,发现性能瓶颈,帮助优化系统配置,提升计算效率。

5. 虚拟化环境(如 VMware, KVM, Hyper-V)

  • 虚拟机存储监控:在虚拟化环境中,多个虚拟机共享物理存储设备,Smartmontools 可以帮助监控这些存储设备的健康状况,防止因硬盘故障导致虚拟机的数据丢失或服务中断。
  • 存储池监控:在虚拟化系统中,存储池的健康对系统的稳定性至关重要。Smartmontools 可以实时监控硬盘健康,及时更换故障硬盘,保证存储池的稳定运行。

6. SSD(固态硬盘)监控

  • SSD 健康检查:对于使用 SSD 的系统,Smartmontools 可以监控 SSD 的健康状态,包括写入次数(TBW)、剩余寿命等指标,提前预测 SSD 的故障,并进行备份与替换。
  • 延长 SSD 寿命:通过监控 SSD 的工作负载和温度,用户可以采取适当的措施减少对 SSD 的写入负荷,延长其使用寿命。

7. 开发与测试环境

  • 硬盘故障模拟:在开发或测试阶段,Smartmontools 可以用来模拟硬盘故障情景,测试系统的容错能力和数据恢复方案。
  • 硬盘性能评估与调优:开发人员可以使用 Smartmontools 进行硬盘性能分析,了解硬盘的健康状况和潜在问题,从而优化硬盘的配置和系统性能。

8. 备份与数据保护

  • 定期健康检查:定期使用 Smartmontools 检查备份硬盘或存储设备的健康状况,确保备份数据在硬盘故障时不会丢失。
  • 故障预测与数据恢复:通过监控硬盘的 SMART 信息,预见硬盘故障,提前做好数据迁移或备份计划,防止在硬盘损坏时丢失重要数据。

9. 个人云存储和文件服务器

  • 自建云存储:对于使用自建云存储的用户,可以通过 Smartmontools 检查硬盘健康,防止硬盘故障影响文件存储和访问。
  • 长时间运行的文件服务器:文件服务器需要长时间稳定运行,Smartmontools 通过监控硬盘的健康状况,可以避免硬盘故障导致文件丢失。

总的来说,Smartmontools 适用于任何需要监控硬盘健康和性能的场景,尤其是对数据安全和系统稳定性要求较高的环境。它帮助用户及时发现硬盘问题,采取预防措施,确保系统正常运行并减少数据丢失的风险。


关于 Smartmontools

Smartmontools 软件包包含两个实用程序(smartctl 和 smartd),用于控制和监控存储设备的健康状况。这些工具基于现代硬盘普遍支持的 自我监测、分析与报告技术(SMART),可对大多数 ATA/SATA、SCSI/SAS 和 NVMe 硬盘进行监控。在许多情况下,它们能提前预警磁盘性能下降或故障。

功能与支持

  • 设备支持

    • ATA/SATA、SCSI/SAS 和 NVMe 硬盘

    • SCSI/SAS 磁带设备

  • 跨平台兼容

    • 支持 Linux、FreeBSD、NetBSD、OpenBSD、Darwin(macOS)、Solaris、Windows、Cygwin、OS/2、eComStation、QNX 等系统

    • 可通过多种 Live CD/DVD 光盘直接运行


重要链接


许可协议

Smartmontools 采用 GNU GPL 第 2 版 开源协议。


核心价值

通过监控硬盘 SMART 数据,Smartmontools 帮助用户:

  • 预防数据丢失:提前发现潜在硬盘故障

  • 优化维护计划:基于健康状态调整运维策略

  • 支持广泛设备:覆盖主流存储接口与操作系统

(建议开发者、系统管理员及存储运维团队使用此工具进行硬件健康管理。)


关于 Smartmontools

Smartmontools 包含两个实用程序(smartctl 和 smartd),用于控制和监控存储系统,这些系统使用大多数现代 ATA/SATA、SCSI/SAS 和 NVMe 硬盘内置的自我监控、分析和报告技术(SMART)。在许多情况下,这些工具能够提前警告磁盘退化和故障。

Smartmontools 最初源自 Linux smartsuite 包,实际上支持 ATA/SATA、SCSI/SAS 和 NVMe 硬盘,同时也支持 SCSI/SAS 磁带设备。它应该能够在任何现代的 Linux、FreeBSD、NetBSD、OpenBSD、Darwin(macOS)、Solaris、Windows、Cygwin、OS/2、eComStation 或 QNX 系统上运行。Smartmontools 还可以从许多不同的 Live CD/DVD 上运行。


smartmontools 版本 7.4

主要更新内容

  • 构建环境

    • Docker 镜像现基于 Debian 12(原为 Ubuntu 18.04),用于 CI 和发布构建。

    • macOS:CI 和发布构建支持 x86_64 和 arm64 目标平台,32 位平台需自行编译源码。

  • smartctl 功能增强

    • NVMe 支持

      • -t short-t long 和 -X 支持 NVMe 设备。

      • -l selftest 支持 NVMe 自检日志。

      • -l error 新增对 NVMe 错误日志条目显示错误消息。

      • -l farm 支持显示希捷(Seagate)专有的 FARM(Field Access Reliability Metrics)日志(ATA/SCSI 驱动器)。

      • -l genstats 新增 SCSI 通用统计和性能日志页

      • -i 和 --identify 支持 ACS-4/5/6 增强协议。

      • -c 新增 NVMe 2.0 能力标志

      • -g security 的 JSON 输出新增 ata_security.master_password_id;明文输出在非默认值时显示主密码 ID。

      • -q noserial 同时抑制 NVMe 命名空间的 IEEE EUI-64 输出。

      • -j 支持 NVMe 设备的 -l error 和 -l selftest JSON 输出。

      • JSON/YAML 字符串中避免无效 UTF-8 序列。

      • 修复 SCSI JSON 输出中的异常问题。

      • 将 JSON 字段 scsi_temperature 重命名为 temperature(修复回归问题)。

      • 针对 ATA 设备,-a 建议使用 -x(因 -a 仅显示旧版 SMART 信息)。

  • smartd 改进

    • 若 NVMe 错误日志新条目未指示设备问题,不再记录 LOG_CRIT 警告。

    • 检测到误将 smartd_warning 脚本作为 -M exec 参数使用时发出警告。

    • 不再将版权信息行写入 syslog

    • smartd.conf 配置:

      • -M always 立即发送提醒邮件(无延迟)。

      • -M diminishing 限制邮件延迟至 32 天。

  • 平台与协议修复

    • ATA

      • 修复大端主机(big endian)上扩展自检日志的解码问题。

      • 扩展 -d jmb39x-q,... 和 -d jms56x,... 设备的 LBA 范围从 33-62 至 1-255。

      • -d intelliprop,N 现会返回弃用提示,需使用 -d intelliprop,N,force 强制启用。

      • 新增 -d usbasm1352r,N 支持 ASMedia ASM1352R USB 转 SATA RAID 桥接器

    • SCSI

      • 修复错误计数器和非介质错误日志页可能的数据损坏问题。

      • 新增更多 "Informational Exceptions" 错误描述字符串。

      • 初步支持 REPORT SUPPORTED OPERATION 命令。

      • 重构 SCSI 调试输出。

    • NVMe

      • 新增 NVMe 状态值的错误消息。

      • 修复大端主机读取错误日志后的崩溃问题。

  • 驱动数据库更新

    • 新增 HDD、SSD 和 USB 设备的支持信息。

    • update-smart-drivedb 脚本修复

      • 修复 sed 语法兼容性问题(需在 } 前添加 ; 或完全省略 ;)。

      • 替换不常用的 bash 语法。

  • 编译与配置

    • configure 默认启用 --with-nvme-devicescan(Darwin 和 FreeBSD 现默认启用,仅 NetBSD 禁用)。

    • 若支持且未预定义,自动设置 _FORTIFY_SOURCE=3

    • 修复 libsystemd-dev 安装且 LDFLAGS=-static 时的编译失败问题。

    • 修复无遗留 getdtablesize() 系统的编译问题。

    • SVN 快照预发布版本现显示 pre-VERSION 版本号,JSON 输出中标记 smartctl.pre_release=true

  • 平台特定更新

    • Linux

      • 新增 -d sssraid 支持 3SNIC RAID 控制器

      • -d marvell 现返回弃用提示,需使用 -d marvell,force 强制启用。

      • 通用 SCSI 代码默认使用 SG_IO_V3,不再回退至废弃的 SCSI_IOCTL_SEND_COMMAND(仅 -d 3ware 和 -d marvell,force 仍使用此 ioctl)。

      • smartd

        • 当注册大量设备时,避免 systemd 单元启动超时。

        • 若未检测到设备且使用 -q *nodev0* 选项,systemd 不再报告服务失败。

    • Solaris SPARC

      • 移除旧版 ATA 支持,弃用 --with-solaris-sparc-ata 配置选项。

    • Windows

      • 新增 IOCTL_STORAGE_PROTOCOL_COMMAND 支持 NVMe 自检。

      • 安装程序默认使用 64 位可执行文件。

      • 修复使用增强时区语法时的虚假本地时间显示问题。

      • 若使用某些 MinGW-w64 版本,提供旧版 Windows 兼容性补丁。


smartmontools-7.4-1.win32-setup.exe 更新记录:

  • CI 和发布构建所使用的 Docker 镜像现在基于 Debian 12,而不是 Ubuntu 18.04。
  • macOS:CI 和发布构建现在为 x86_64 和 arm64 目标生成。32 位平台需要从源代码编译。
  • smartctl -t short、-t long 和 -X:增加了对 NVMe 的支持。
  • smartctl -l selftest:增加了对 NVMe 的支持。
  • smartctl -l farm:打印 Seagate 的厂商特定的“Field Access Reliability Metrics”(FARM)日志,适用于 ATA 和 SCSI 驱动器。
  • smartctl -l error:现在还会为每个 NVMe 错误信息日志条目打印错误消息。
  • smartctl -l genstats:打印 SCSI 一般统计信息和性能日志页面。
  • smartctl -i 和 --identify:ACS-4/5/6 增强功能。
  • smartctl -c:新增 NVMe 2.0 功能标志。
  • smartctl -g security:将 ata_security.master_password_id 添加到 JSON 输出中。如果设置为非默认值,则明文输出显示主密码 ID。
  • smartctl -q noserial:现在还会抑制输出 NVMe Namespace IEEE EUI-64。
  • smartctl -j:-l error 和 -l selftest 的 JSON 输出(适用于 NVMe 设备)。
  • smartctl -j:避免在 JSON/YAML 字符串中出现无效的 UTF-8 序列。
  • smartctl -j:修复了在 SCSI JSON 输出过程中出现的虚假异常。
  • smartctl -j:将 JSON 元素 scsi_temperature 改回 temperature(回归修复)。
  • smartctl -a:现在建议使用 -x 参数来获取 ATA 设备的详细信息,因为 -a 仅提供传统的 SMART 信息。
  • smartd:如果 NVMe 错误信息日志的新条目没有指示设备问题,则不再发出 LOG_CRIT 警告。
  • smartd:现在可以检测到不小心使用 smartd_warning 脚本作为 -M exec 参数的情况。
  • smartd:不再将 Copyright... 行写入 syslog。
  • smartd.conf -M always:发送提醒电子邮件时没有任何延迟。
  • smartd.conf -M diminishing:将电子邮件延迟限制为 32 天。
  • ATA:修复了在大端主机上解码扩展自检日志的问题。
  • ATA:增强了设备类型 -d jmb39x-q,... 和 -d jms56x,... 的 LBA 范围,从 33-62 增加到 1-255。
  • ATA:设备类型 -d intelliprop,N 现在会显示弃用消息,已添加 -d intelliprop,N,force 标志以强制使用。
  • ATA/USB:设备类型 -d usbasm1352r,N,适用于 ASMedia ASM1352R USB 到 SATA RAID 桥接器。
  • SCSI:修复了可能出现的错误计数器和非介质错误日志页面的损坏问题。
  • SCSI:增加了更多的“信息异常”字符串。
  • SCSI:增加了对 REPORT SUPPORTED OPERATION 命令的初步支持。
  • SCSI:初步重构了 SCSI 调试输出。
  • NVMe:为 NVMe 状态值增加了错误消息。
  • NVMe:修复了在大端主机上读取错误信息日志后的崩溃问题。
  • 更新了 HDD、SSD 和 USB 的驱动器数据库。
  • update-smart-drivedb:修复了要求在 } 前加分号或完全不支持分号的 sed 版本的语法问题。
  • update-smart-drivedb:替换了通常不会执行的 bashism。
  • configure:现在 --with-nvme-devicescan 的默认值是 yes,适用于 Darwin 和 FreeBSD,仍然是 no,只有在 NetBSD 上。
  • configure:如果支持且未预定义,则会定义 _FORTIFY_SOURCE=3。
  • configure:如果安装了 libsystemd-dev 并使用 LDFLAGS=-static,将不再失败。
  • 为没有传统 getdtablesize() 的系统提供了编译修复。
  • 从 SVN 快照中的预发布版本现在会显示 "pre-VERSION" 版本信息,并在 JSON 输出中显示 smartctl.pre_release=true。
  • Linux:设备类型 -d sssraid,适用于 3SNIC RAID 控制器。
  • Linux:设备类型 -d marvell 现在会显示弃用消息,已添加 -d marvell,force 标志以强制使用。
  • Linux:通用 SCSI 代码现在默认使用 SG_IO_V3,不再回退到弃用的 SCSI_IOCTL_SEND_COMMAND(但此 ioctl 仍然用于 -d 3ware 和 -d marvell,force)。
  • Linux smartd:现在在注册并首次检查多个设备时,防止系统启动超时。
  • Linux smartd:如果没有设备且使用了 -q nodev0 选项,systemd 不再报告服务失败。
  • Solaris SPARC:已删除对传统 ATA 的支持。删除了配置选项 --with-solaris-sparc-ata。
  • Windows:为 NVMe 自检增加了 IOCTL_STORAGE_PROTOCOL_COMMAND 变体。
  • Windows:安装程序现在默认使用 64 位可执行文件。
  • Windows:如果使用增强的时区语法,则不再打印错误的本地时间。
  • Windows:为保持与旧版本的 Windows 向后兼容,添加了针对某些版本 MinGW-w64 的解决方法。

smartctl 7.4 2023-08-01 r5530 [x86_64-w64-mingw32-2022-b26100] (sf-7.4-1)
版权所有 (C) 2002-23, Bruce Allen, Christian Franke, www.smartmontools.org

使用方法:
smartctl [选项] 设备


显示信息选项

-h, --help, --usage
显示帮助信息并退出

-V, --version, --copyright, --license
显示许可证、版权和版本信息并退出

-i, --info
显示设备的身份信息

--identify[=[w][nvb]]
显示IDENTIFY DEVICE数据中的字和位(ATA)

-g NAME, --get=NAME
获取设备设置:all, aam, apm, dsn, lookahead, security,
wcache, rcache, wcreorder, wcache-sct

-a, --all
显示设备的所有SMART信息

-x, --xall
显示设备的所有信息

--scan
扫描设备

--scan-open
扫描设备并尝试打开每个设备


SMARTCTL运行时行为选项

-j, --json[=cgiosuvy]
以JSON或YAML格式输出

-q TYPE, --quietmode=TYPE (ATA)
设置smartctl的安静模式,选项包括:errorsonly, silent, noserial

-d TYPE, --device=TYPE
指定设备类型,包括:ata, scsi[+TYPE], nvme[,NSID], sat[,auto][,N][+TYPE], usbasm1352r,N, usbcypress[,X], usbjmicron[,p][,x][,N], usbprolific, usbsunplus, sntasmedia, sntjmicron[,NSID], sntrealtek, jmb39x[-q],N[,sLBA][,force][+TYPE], jms56x,N[,sLBA][,force][+TYPE], aacraid,H,L,ID, areca,N[/E], auto, test

-T TYPE, --tolerance=TYPE (ATA)
容忍度:normal, conservative, permissive, verypermissive

-b TYPE, --badsum=TYPE (ATA)
设置坏校验和的处理方式:warn, exit, ignore

-r TYPE, --report=TYPE
报告事务(参见手册页)

-n MODE[,STATUS[,STATUS2]], --nocheck=MODE[,STATUS[,STATUS2]] (ATA, SCSI)
如果是以下情况,则不进行检查:never, sleep, standby, idle(参见手册页)


设备功能启用/禁用命令

-s VALUE, --smart=VALUE
启用/禁用设备上的SMART(on/off)

-o VALUE, --offlineauto=VALUE (ATA)
启用/禁用设备上的自动离线测试(on/off)

-S VALUE, --saveauto=VALUE (ATA)
启用/禁用设备上的属性自动保存(on/off)

-s NAME[,VALUE], --set=NAME[,VALUE]
启用/禁用/更改设备设置:aam,[N|off], apm,[N|off],
dsn,[on|off], lookahead,[on|off], security-freeze,
standby,[N|off|now], wcache,[on|off], rcache,[on|off],
wcreorder,[on|off[,p]], wcache-sct,[ata|on|off[,p]]


读取和显示数据选项

-H, --health
显示设备的SMART健康状态

-c, --capabilities (ATA, NVMe)
显示设备的SMART能力

-A, --attributes
显示设备的SMART厂商特定属性和值

-f FORMAT, --format=FORMAT (ATA)
设置属性的输出格式:old, brief, hex[,id|val]

-l TYPE, --log=TYPE
显示设备日志。TYPE:error, selftest, selective, directory[,g|s],
xerror[,N][,error], xselftest[,N][,selftest], background,
sasphy[,reset], sataphy[,reset], scttemp[sts,hist],
scttempint,N[,p], scterc[,N,M][,p|reset], devstat[,N], defects[,N],
ssd, gplog,N[,RANGE], smartlog,N[,RANGE], nvmelog,N,SIZE
tapedevstat, zdevstat, envrep, farm

-v N,OPTION, --vendorattribute=N,OPTION (ATA)
设置厂商属性N的显示选项(参见手册页)

-F TYPE, --firmwarebug=TYPE (ATA)
使用固件错误的解决方法:none, nologdir, samsung, samsung2, samsung3, xerrorlba, swapid

-P TYPE, --presets=TYPE (ATA)
驱动器特定的预设:use, ignore, show, showall

-B [+]FILE, --drivedb=[+]FILE (ATA)
从FILE读取并替换[添加]驱动器数据库
[默认路径:+C:/Users/Administrator/Downloads/smartmontools7.4/bin/drivedb-add.h
然后是C:/Users/Administrator/Downloads/smartmontools7.4/bin/drivedb.h]


设备自检选项

-t TEST, --test=TEST
执行测试。TEST:offline, short, long, conveyance, force, vendor,N,
select,M-N, pending,N, afterselect,[on|off]

-C, --captive
在受限模式下执行测试(与 -t 一起使用)

-X, --abort
中止任何非受限模式下的设备测试


SMARTCTL 示例

smartctl -a /dev/sda
(打印所有SMART信息)

smartctl --smart=on --offlineauto=on --saveauto=on /dev/sda
(启用第一个磁盘上的SMART)

smartctl -t long /dev/sda
(执行扩展的磁盘自检)

smartctl --attributes --log=selftest --quietmode=errorsonly /dev/sda
(打印自检和属性错误)

smartctl -a /dev/sda
(打印物理磁盘 0 上的所有信息)

smartctl -A /dev/hdb,3
(打印3ware 9000 RAID上的物理驱动器 3 的属性)

smartctl -A /dev/tw_cli/c0/p1
(使用 tw_cli 打印3ware控制器 0,端口 1 的属性)

smartctl --all --device=areca,3/1 /dev/arcmsr0
(打印第1个 Areca RAID控制器的第3个ATA磁盘的所有SMART信息)


ATA SMART访问方法和排序可以通过在设备名称后加修饰符来指定:
/dev/hdX:[saicm],其中
s: SMART_* IOCTLs,
a: IOCTL_ATA_PASS_THROUGH,
i: IOCTL_IDE_PASS_THROUGH,
f: IOCTL_STORAGE_,
m: IOCTL_SCSI_MINIPORT_

默认情况下,系统使用 /dev/sdX:pasifm


这段翻译涵盖了 smartctl 命令的各种选项和使用方法,适用于磁盘和存储设备的SMART检测和管理。


smartctl 7.4 2023-08-01 r5530 [x86_64-w64-mingw32-2022-b26100] (sf-7.4-1)
Copyright (C) 2002-23, Bruce Allen, Christian Franke, www.smartmontools.org

Usage: smartctl [options] device

============================================ SHOW INFORMATION OPTIONS =====

  -h, --help, --usage
         Display this help and exit

  -V, --version, --copyright, --license
         Print license, copyright, and version information and exit

  -i, --info
         Show identity information for device

  --identify[=[w][nvb]]
         Show words and bits from IDENTIFY DEVICE data                (ATA)

  -g NAME, --get=NAME
        Get device setting: all, aam, apm, dsn, lookahead, security,
        wcache, rcache, wcreorder, wcache-sct

  -a, --all
         Show all SMART information for device

  -x, --xall
         Show all information for device

  --scan
         Scan for devices

  --scan-open
         Scan for devices and try to open each device

================================== SMARTCTL RUN-TIME BEHAVIOR OPTIONS =====

  -j, --json[=cgiosuvy]
         Print output in JSON or YAML format

  -q TYPE, --quietmode=TYPE                                           (ATA)
         Set smartctl quiet mode to one of: errorsonly, silent, noserial

  -d TYPE, --device=TYPE
         Specify device type to one of:
         ata, scsi[+TYPE], nvme[,NSID], sat[,auto][,N][+TYPE], usbasm1352r,N, usbcypress[,X], usbjmicron[,p][,x][,N], usbprolific, usbsunplus, sntasmedia, sntjmicron[,NSID], sntrealtek, jmb39x[-q],N[,sLBA][,force][+TYPE], jms56x,N[,sLBA][,force][+TYPE], aacraid,H,L,ID, areca,N[/E], auto, test

  -T TYPE, --tolerance=TYPE                                           (ATA)
         Tolerance: normal, conservative, permissive, verypermissive

  -b TYPE, --badsum=TYPE                                              (ATA)
         Set action on bad checksum to one of: warn, exit, ignore

  -r TYPE, --report=TYPE
         Report transactions (see man page)

  -n MODE[,STATUS[,STATUS2]], --nocheck=MODE[,STATUS[,STATUS2]] (ATA, SCSI)
         No check if: never, sleep, standby, idle (see man page)

============================== DEVICE FEATURE ENABLE/DISABLE COMMANDS =====

  -s VALUE, --smart=VALUE
        Enable/disable SMART on device (on/off)

  -o VALUE, --offlineauto=VALUE                                       (ATA)
        Enable/disable automatic offline testing on device (on/off)

  -S VALUE, --saveauto=VALUE                                          (ATA)
        Enable/disable Attribute autosave on device (on/off)

  -s NAME[,VALUE], --set=NAME[,VALUE]
        Enable/disable/change device setting: aam,[N|off], apm,[N|off],
        dsn,[on|off], lookahead,[on|off], security-freeze,
        standby,[N|off|now], wcache,[on|off], rcache,[on|off],
        wcreorder,[on|off[,p]], wcache-sct,[ata|on|off[,p]]

======================================= READ AND DISPLAY DATA OPTIONS =====

  -H, --health
        Show device SMART health status

  -c, --capabilities                                            (ATA, NVMe)
        Show device SMART capabilities

  -A, --attributes
        Show device SMART vendor-specific Attributes and values

  -f FORMAT, --format=FORMAT                                          (ATA)
        Set output format for attributes: old, brief, hex[,id|val]

  -l TYPE, --log=TYPE
        Show device log. TYPE: error, selftest, selective, directory[,g|s],
        xerror[,N][,error], xselftest[,N][,selftest], background,
        sasphy[,reset], sataphy[,reset], scttemp[sts,hist],
        scttempint,N[,p], scterc[,N,M][,p|reset], devstat[,N], defects[,N],
        ssd, gplog,N[,RANGE], smartlog,N[,RANGE], nvmelog,N,SIZE
        tapedevstat, zdevstat, envrep, farm

  -v N,OPTION , --vendorattribute=N,OPTION                            (ATA)
        Set display OPTION for vendor Attribute N (see man page)

  -F TYPE, --firmwarebug=TYPE                                         (ATA)
        Use firmware bug workaround:
        none, nologdir, samsung, samsung2, samsung3, xerrorlba, swapid

  -P TYPE, --presets=TYPE                                             (ATA)
        Drive-specific presets: use, ignore, show, showall

  -B [+]FILE, --drivedb=[+]FILE                                       (ATA)
        Read and replace [add] drive database from FILE
        [default is +C:/Users/Administrator/Downloads/smartmontools7.4/bin/drivedb-add.h
         and then    C:/Users/Administrator/Downloads/smartmontools7.4/bin/drivedb.h]

============================================ DEVICE SELF-TEST OPTIONS =====

  -t TEST, --test=TEST
        Run test. TEST: offline, short, long, conveyance, force, vendor,N,
                        select,M-N, pending,N, afterselect,[on|off]

  -C, --captive
        Do test in captive mode (along with -t)

  -X, --abort
        Abort any non-captive test on device

=================================================== SMARTCTL EXAMPLES =====

  smartctl -a /dev/sda                       (Prints all SMART information)

  smartctl --smart=on --offlineauto=on --saveauto=on /dev/sda
                                              (Enables SMART on first disk)

  smartctl -t long /dev/sda              (Executes extended disk self-test)

  smartctl --attributes --log=selftest --quietmode=errorsonly /dev/sda
                                      (Prints Self-Test & Attribute errors)
  smartctl -a /dev/sda
             (Prints all information for disk on PhysicalDrive 0)
  smartctl -a /dev/pd3
             (Prints all information for disk on PhysicalDrive 3)
  smartctl -a /dev/tape1
             (Prints all information for SCSI tape on Tape 1)
  smartctl -A /dev/hdb,3
                (Prints Attributes for physical drive 3 on 3ware 9000 RAID)
  smartctl -A /dev/tw_cli/c0/p1
            (Prints Attributes for 3ware controller 0, port 1 using tw_cli)
  smartctl --all --device=areca,3/1 /dev/arcmsr0
           (Prints all SMART info for 3rd ATA disk of the 1st enclosure
            on 1st Areca RAID controller)

  ATA SMART access methods and ordering may be specified by modifiers
  following the device name: /dev/hdX:[saicm], where
  's': SMART_* IOCTLs,         'a': IOCTL_ATA_PASS_THROUGH,
  'i': IOCTL_IDE_PASS_THROUGH, 'f': IOCTL_STORAGE_*,
  'm': IOCTL_SCSI_MINIPORT_*.
  The default on this system is /dev/sdX:pasifm


smartd 7.4 2023-08-01 r5530 [x86_64-w64-mingw32-2022-b26100] (sf-7.4-1)
版权所有 (C) 2002-23, Bruce Allen, Christian Franke, www.smartmontools.org

用法: smartd [选项]

  -A PREFIX, --attributelog=PREFIX
        将属性信息记录到 {PREFIX}MODEL-SERIAL.TYPE.csv

  -B [+]FILE, --drivedb=[+]FILE
        从 FILE 读取并替换 [添加] 驱动器数据库
        [默认路径为 +C:/Users/Administrator/Downloads/smartmontools7.4/bin/drivedb-add.h
         然后是    C:/Users/Administrator/Downloads/smartmontools7.4/bin/drivedb.h]

  -c NAME|-, --configfile=NAME|-
        读取配置文件 NAME 或标准输入
        [默认路径为 C:/Users/Administrator/Downloads/smartmontools7.4/bin/smartd.conf]

  -d, --debug
        以调试模式启动 smartd

  -D, --showdirectives
        打印配置文件中的指令并退出

  -h, --help, --usage
        显示此帮助信息并退出

  -i N, --interval=N
        设置磁盘检查之间的间隔为 N 秒,N >= 10

  -l local[0-7], --logfacility=local[0-7]
        将日志记录到 "./smartd.log"、标准输出、标准错误 [默认使用事件日志]

  -p NAME, --pidfile=NAME
        将 PID 文件写入 NAME

  -q WHEN, --quit=WHEN
        在以下情况退出:nodev[0]、errors[,nodev0]、nodev[0]startup、never、onecheck、showtests

  -r, --report=TYPE
        针对以下类型报告事务:ioctl[,N]、ataioctl[,N]、scsiioctl[,N]、nvmeioctl[,N]

  -s PREFIX, --savestates=PREFIX
        将磁盘状态保存到 {PREFIX}MODEL-SERIAL.TYPE.state

  -w NAME, --warnexec=NAME
        在警告时运行可执行文件 NAME
        [默认路径为 C:/Users/Administrator/Downloads/smartmontools7.4/bin/smartd_warning.cmd]

  -u MODE, --warn-as-user=MODE
        使用修改后的访问令牌运行警告脚本:restricted、unchanged

  --service
        作为 Windows 服务运行(请参阅手册页),使用以下命令安装:
          smartd install [选项]
        使用以下命令删除服务:
          smartd remove

  -V, --version, --license, --copyright
        打印许可证、版权和版本信息

这是 smartd 工具的命令行帮助信息,提供了关于如何使用 smartd 及其各种选项的详细说明。


smartd 7.4 2023-08-01 r5530 [x86_64-w64-mingw32-2022-b26100] (sf-7.4-1)
Copyright (C) 2002-23, Bruce Allen, Christian Franke, www.smartmontools.org

Usage: smartd [options]

  -A PREFIX, --attributelog=PREFIX
        Log attribute information to {PREFIX}MODEL-SERIAL.TYPE.csv

  -B [+]FILE, --drivedb=[+]FILE
        Read and replace [add] drive database from FILE
        [default is +C:/Users/Administrator/Downloads/smartmontools7.4/bin/drivedb-add.h
         and then    C:/Users/Administrator/Downloads/smartmontools7.4/bin/drivedb.h]

  -c NAME|-, --configfile=NAME|-
        Read configuration file NAME or stdin
        [default is C:/Users/Administrator/Downloads/smartmontools7.4/bin/smartd.conf]

  -d, --debug
        Start smartd in debug mode

  -D, --showdirectives
        Print the configuration file Directives and exit

  -h, --help, --usage
        Display this help and exit

  -i N, --interval=N
        Set interval between disk checks to N seconds, where N >= 10

  -l local[0-7], --logfacility=local[0-7]
        Log to "./smartd.log", stdout, stderr [default is event log]

  -p NAME, --pidfile=NAME
        Write PID file NAME

  -q WHEN, --quit=WHEN
        Quit on one of: nodev[0], errors[,nodev0], nodev[0]startup, never, onecheck, showtests

  -r, --report=TYPE
        Report transactions for one of: ioctl[,N], ataioctl[,N], scsiioctl[,N], nvmeioctl[,N]

  -s PREFIX, --savestates=PREFIX
        Save disk states to {PREFIX}MODEL-SERIAL.TYPE.state

  -w NAME, --warnexec=NAME
        Run executable NAME on warnings
        [default is C:/Users/Administrator/Downloads/smartmontools7.4/bin/smartd_warning.cmd]

  -u MODE, --warn-as-user=MODE
        Run warning script with modified access token: restricted, unchanged

  --service
        Running as windows service (see man page), install with:
          smartd install [options]
        Remove service with:
          smartd remove

  -V, --version, --license, --copyright
        Print License, Copyright, and version information


 

posted @ 2025-03-25 15:28  suv789  阅读(1197)  评论(0)    收藏  举报