smartctl 使用指南

适用场景:怀疑硬盘有坏道、开机变慢或想定期体检磁盘。你会学到如何安装 smartmontools,用 smartctl 查看硬盘健康状态、执行短/长自检、查看自检结果与历史错误日志。

smartctl 是一个命令行工具,用于通过读取硬盘的 S.M.A.R.T.(自我监测、分析与报告技术)信息来检测和监测硬盘的健康状况。您可以使用它来查看硬盘的详细信息(smartctl -a /dev/sda),执行自检测试(smartctl -t long /dev/sda),查看自检结果(smartctl -l selftest /dev/sda),或查看历史错误信息(smartctl -l error /dev/sda)。

安装 smartctl

sudo apt install smartmontools

主要功能和常用命令

查看全部 SMART 信息

  • smartctl -a /dev/sda:显示硬盘的全部 SMART 数据,包括温度、健康状态等。
  • smartctl -i /dev/sda:显示硬盘的身份信息,并检查是否已启用 SMART 功能。

检查硬盘健康状态

  • smartctl -H /dev/sda:提供硬盘的整体健康状况摘要。
  • smartctl -A /dev/sda:显示 SMART 厂商属性和值。

执行和查看自检

  • smartctl -t short /dev/sda:执行一个简短的后台自检。
  • smartctl -t long /dev/sda:执行一个长时间的后台自检。
  • smartctl -C -t short /dev/sda:执行一个简短的前台自检。
  • smartctl -C -t long /dev/sda:执行一个长时间的前台自检。
  • smartctl -l selftest /dev/sda:在自检完成后,查看测试结果日志。

查看错误日志

  • smartctl -l error /dev/sda:显示硬盘的历史错误信息。

中断测试

  • smartctl -X /dev/sda:中断正在运行的后台测试。

如何使用

  1. 识别硬盘:在运行 smartctl 命令前,需要知道要检测的硬盘设备名称(例如 /dev/sda/dev/sdb)。您可以使用 lsblk 命令来列出系统中的所有硬盘设备。
  2. 运行命令:根据您想执行的操作,选择并运行相应的命令。例如,要查看 /dev/sda 的全部信息,您需要输入 smartctl -a /dev/sda
  3. 分析结果:仔细查看命令的输出,特别是健康状况 (PASSEDFailure),自检结果,以及错误日志。

验证与自查

  1. sudo smartctl -H /dev/sda 输出 SMART overall-health self-assessment test result: PASSED
  2. 执行 sudo smartctl -t short /dev/sda 后,等待数分钟再执行 sudo smartctl -l selftest /dev/sda,确认自检结果为 Completed without error
  3. sudo smartctl -A /dev/sdaReallocated_Sector_Ct(重映射扇区数)保持稳定不增长
  4. 检测前先用 lsblk 确认设备名,避免测错磁盘(尤其注意 NVMe 设备名为 /dev/nvme0n1 形式)

参考