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:中断正在运行的后台测试。
如何使用
- 识别硬盘:在运行
smartctl命令前,需要知道要检测的硬盘设备名称(例如/dev/sda、/dev/sdb)。您可以使用lsblk命令来列出系统中的所有硬盘设备。 - 运行命令:根据您想执行的操作,选择并运行相应的命令。例如,要查看
/dev/sda的全部信息,您需要输入smartctl -a /dev/sda。 - 分析结果:仔细查看命令的输出,特别是健康状况 (
PASSED或Failure),自检结果,以及错误日志。
验证与自查
sudo smartctl -H /dev/sda输出SMART overall-health self-assessment test result: PASSED- 执行
sudo smartctl -t short /dev/sda后,等待数分钟再执行sudo smartctl -l selftest /dev/sda,确认自检结果为Completed without error sudo smartctl -A /dev/sda中Reallocated_Sector_Ct(重映射扇区数)保持稳定不增长- 检测前先用
lsblk确认设备名,避免测错磁盘(尤其注意 NVMe 设备名为/dev/nvme0n1形式)