下面的命令是否足以定期检查磁盘的健康状况?
smartctl -H /dev/sda
输出包含如下行。
SMART overall-health self-assessment test result: PASSED
但是“自我评估测试”是什么?当我执行命令时,结果是最新的吗?
换句话说,我是否应该使用“-t short”或“-t long”进行扩展测试,然后使用“smartctl -l selftest /dev/sda”检索所需的信息?
我所需要的只是知道何时需要更换硬盘,而无需检查物理机柜上的 LED。
我尝试查看“smartmontools”的文档,但我仍然感到迷茫,并且压力很大。
提前致谢!
安德里亚
答案1
您可以快速浏览手册页的示例部分。
SMART 会实时进行测试,操作系统无法直接看到,除非系统要求这样做 - 否则,SMART 只会进行一些基本测试。但总体默认配置取决于硬盘驱动器/固态驱动器/磁带驱动器制造商所实施的配置。
请记住,当您命令 SMART 进行一些自检时,这将使用驱动器的内部 I/O 操作。这意味着,如果您命令驱动器进行长时间的自检,驱动器的性能将比平时慢,因为驱动器正在执行物理自检,检查一个又一个块...
因此,不应每次都进行长时间的自检,因为这会在测试过程中降低驱动器的性能。
您通过 smartctl 向具有 SMART 功能的驱动器发出的命令在另行命令或系统完全关闭后才有效(这意味着,发出的命令可能会在机器软重置后继续有效)。
我建议使用驱动器的默认自动设置。
在系统启动时,您曾经告诉过您的驱动器以自动方式开始定期扫描,您可以通过以下方式执行此操作:
smartctl --smart=on --offlineauto=on --saveauto=on /dev/sda
这将开始以性能友好的方式/dev/sda
在后台驱动器(操作系统不直接看到)执行几项定期和周期性的测试。
然后,您可以使用命令smartctl -H /dev/sda
、 或 来检查驱动器的运行状况smartctl --health /dev/sda
。如果此命令返回错误,这通常意味着驱动器已经出现故障或预计驱动器将在未来 24 小时内出现故障。因此,建议至少每 12 小时进行一次定期检查。当发现故障时,您可以使用smartctl -a /dev/sda
或smartctl --all /dev/sda
了解更多信息。通常,您不需要每 4 小时检查一次以上。因为自动扫描可能每 4 小时只运行一次(但这取决于制造商的默认设置)。
PS Linux 机器通常已经启用了自动 SMART 检查,使用守护进程(服务),通常命名为smartd.service
。您可以通过检查其状态systemctl status smartd.service
和/或通过查看其日志journalctl --unit smartd.service