smartmontools是用于评估硬盘物理健康状况的开源工具集,通过安装、识别设备、验证SMART支持、执行短自检及分析属性值等步骤,可全面检测磁盘状态。

如果您需要评估硬盘的物理健康状况,smartmontools 是一个开源工具集,可用于读取和解析磁盘内置的 S.M.A.R.T. 数据。以下是使用 smartmontools 检查磁盘状态的具体操作步骤:
一、安装 smartmontools
在大多数 Linux 发行版中,smartmontools 并未默认安装,需通过系统包管理器手动安装。该工具包含 smartctl(命令行核心)和 smartd(后台监控守护进程)。
1、在 Debian 或 Ubuntu 系统上执行:sudo apt update && sudo apt install smartmontools
2、在 CentOS 或 RHEL 8+ 系统上执行:sudo dnf install smartmontools
3、在 Arch Linux 系统上执行:sudo pacman -S smartmontools
二、识别待检测磁盘设备名
运行 smartctl 前必须确认目标磁盘的设备路径(如 /dev/sda、/dev/nvme0n1),错误指定设备可能导致无法获取数据或误操作。
1、列出所有块设备及其型号:lsblk -d -o NAME,MODEL,SIZE,TRAN
2、筛选出 ATA/SATA 接口磁盘:sudo smartctl --scan
3、查看 NVMe 设备列表:sudo nvme list
三、获取磁盘基本信息与 S.M.A.R.T. 支持状态
此步骤用于验证磁盘是否启用 S.M.A.R.T. 功能,并确认其是否支持健康数据读取,避免后续操作无效。
1、检查 /dev/sda 是否支持并启用了 S.M.A.R.T.:sudo smartctl -i /dev/sda
基于apache和php,简单监测服务器状态,包括服务器使用的系统,核心版本,服务器硬件信息详细信息,同时还有网络设备的使用情况,以及内存的使用情况,磁盘信息等,在页面最顶端可以选择页面的风格以及语言。
2、若输出中显示 SMART support is: Available - device has SMART capability 和 SMART support is: Enabled,则可继续;否则需启用:sudo smartctl -s on /dev/sda
四、执行短自检与读取详细健康报告
短自检(Short Self-Test)通常耗时 2 分钟以内,可快速发现常见故障迹象;结合详细属性表(-a 参数)可综合判断磁盘当前状态。
1、启动短自检:sudo smartctl -t short /dev/sda
2、等待自检完成(约 120 秒)后,读取完整 S.M.A.R.T. 报告:sudo smartctl -a /dev/sda
3、重点关注输出中的 SMART overall-health self-assessment test result: PASSED 行;若为 FAILED,则磁盘存在严重风险。
五、监控关键属性值与阈值告警
S.M.A.R.T. 属性表中多个原始值(RAW_VALUE)对应磁盘磨损、重映射扇区、校验错误等物理指标,需比对临界值(THRESH)判断是否异常。
1、提取 ID 5(Reallocated_Sector_Ct)、ID 187(Reported_Uncorrect)、ID 198(Offline_Uncorrect)三项关键属性:sudo smartctl -A /dev/sda | grep -E "^(5|187|198)"
2、若任一属性的 RAW_VALUE 非零且 VALUE 小于 THRESH,则表示该指标已触发预警;例如:5 Reallocated_Sector_Ct 0x0033 099 099 010 PREFAIL Always - 12 中 RAW_VALUE=12 表明已有 12 个扇区被重映射。
3、检查当前自检日志摘要:sudo smartctl -l selftest /dev/sda









