smartmontools
是一个控制和监视存储系统的智能自我监测分析和报告技术(S.M.A.R.T.)的工具集。通过smartmontools
,用户可以获取硬盘的健康状况,预测硬盘故障,从而避免数据丢失。
Linux smartmontools命令介绍
smartmontools
包含两个主要的工具:smartctl
和smartd
。smartctl
用于在命令行中检查硬盘的S.M.A.R.T.属性和运行自测试。smartd
则是一个守护进程,用于定期监控硬盘的S.M.A.R.T.属性,当检测到硬盘可能出现问题时会发送警告。
Linux smartmontools命令适用的Linux版本
smartmontools
广泛适用于各种Linux发行版,安装方法如下:
# 基于apt的发行版(如Debian、Ubuntu、Raspbian、Kali Linux等)
sudo apt-get update && sudo apt-get install smartmontools
# 基于yum的发行版(如RedHat,CentOS 7等)
sudo yum update && sudo yum install smartmontools
# 基于dnf的发行版(如Fedora,CentOS 8等)
sudo dnf update && sudo dnf install smartmontools
# 基于apk的发行版(如Alpine Linux)
sudo apk add smartmontools
# 基于pacman的发行版(如Arch Linux)
sudo pacman -Syu && sudo pacman -S smartmontools
# 基于zypper的发行版(如openSUSE)
sudo zypper ref && sudo zypper in smartmontools
# 基于pkg的FreeBSD发行版
sudo pkg update && sudo pkg install smartmontools
# 基于Homebrew的OS X/macOS发行版
brew update && brew install smartmontools
Linux smartmontools命令的基本语法
基本语法为:
smartctl [选项] [设备]
Linux smartmontools命令的常用选项或参数说明
参数/选项 | 说明 |
---|---|
-a | 显示所有S.M.A.R.T.信息 |
-H | 显示健康状况 |
-i | 显示硬盘基础信息 |
-t | 指定自测试类型(short, long, conveyance) |
-C | 自测试过程中显示进度 |
-l | 显示日志(error, selftest, selective) |
-s | 设置自测试计时(off, on, daily, weekly) |
-T | 设置容错等级(normal, permissive) |
-A | 显示所有属性的原始值 |
-f | 刷新缓冲区 |
-B | 使用偏移量调整属性阈值 |
--scan | 扫描所有设备 |
Linux smartmontools命令实例详解
实例1:检查硬盘健康状况
[linux@bashcommandnotfound.cn ~]$ smartctl -H /dev/sda
这个命令会输出硬盘的健康状态。
实例2:显示硬盘的详细信息
[linux@bashcommandnotfound.cn ~]$ smartctl -a /dev/sda
这个命令会显示硬盘的所有S.M.A.R.T.信息,包括硬盘健康状况、各项测试结果等。
实例3:启动硬盘的短时自测试
[linux@bashcommandnotfound.cn ~]$ smartctl -t short /dev/sda
这个命令会启动一个短时自测试,这个测试通常在几分钟内完成。
实例4:查看硬盘自测试日志
[linux@bashcommandnotfound.cn ~]$ smartctl -l selftest /dev/sda
执行此命令将显示硬盘的自测试日志,包括之前执行的测试结果。
实例5:扫描并显示系统中所有的存储设备
[linux@bashcommandnotfound.cn ~]$ smartctl --scan
此命令用于列出系统中识别的所有存储设备,包括硬盘和固态硬盘。
实例6:显示特定硬盘的基础信息
[linux@bashcommandnotfound.cn ~]$ smartctl -i /dev/sdb
这个命令将会显示/dev/sdb
硬盘的基本信息,如制造商、型号、序列号、固件版本等。
实例7:检查并显示硬盘属性的原始值
[linux@bashcommandnotfound.cn ~]$ smartctl -A /dev/sda
执行此命令会显示硬盘/dev/sda
的所有S.M.A.R.T.属性以及它们的原始值(raw values),这些值通常用于专业的硬盘分析。
实例8:对硬盘进行长时自测试
[linux@bashcommandnotfound.cn ~]$ smartctl -t long /dev/sda
这个命令会启动一个长时自测试,这个测试可能需要几个小时来完成,具体取决于硬盘的大小和速度。
实例9:设置硬盘的自测试计划
[linux@bashcommandnotfound.cn ~]$ smartctl -s on /dev/sda
此命令将开启硬盘/dev/sda
上的自动测试功能,使得硬盘可以按照预设的时间表自行执行测试。
实例10:检查硬盘错误日志
[linux@bashcommandnotfound.cn ~]$ smartctl -l error /dev/sda
此命令将显示硬盘/dev/sda
的错误日志,这通常包含硬盘在操作过程中遇到的错误记录。
实例11:查看特定硬盘的S.M.A.R.T.测试状态
[linux@bashcommandnotfound.cn ~]$ smartctl -c /dev/sdb
这个命令将会显示/dev/sdb
硬盘的S.M.A.R.T.能力和测试状态,包括支持的测试类型和预定的测试时间表。
实例12:检查S.M.A.R.T.支持和启用状态
[linux@bashcommandnotfound.cn ~]$ smartctl -i /dev/sda | grep 'SMART support is:'
通过管道和grep
的组合,这个命令检查并显示硬盘/dev/sda
S.M.A.R.T.的支持和启用状态。
实例13:启动硬盘的传输模式自测试
[linux@bashcommandnotfound.cn ~]$ smartctl -t conveyance /dev/sda
这个命令会启动一个传输模式自测试,这种测试通常用于检查硬盘在运输过程中是否受损。
实例14:启用S.M.A.R.T.自动测试
[linux@bashcommandnotfound.cn ~]$ smartctl -s on -o on -S on /dev/sda
此命令将开启/dev/sda
硬盘的S.M.A.R.T.自动测试,自动离线数据收集,以及自动保存设备的属性值。
实例15:禁用S.M.A.R.T.自动测试
[linux@bashcommandnotfound.cn ~]$ smartctl -s off /dev/sda
如果你希望关闭硬盘/dev/sda
的S.M.A.R.T.自动测试,可以使用这个命令。
注意事项
- 使用
smartctl
进行硬盘检测需要有root权限。 - 并非所有硬盘都支持S.M.A.R.T.,在使用
smartctl
之前,应确保硬盘支持此功能。 - S.M.A.R.T.数据并不总是百分之百准确预测硬盘故障,它是一个预测工具,并不能保证硬盘在未来的任何时间点都不会出现故障。
- 在运行硬盘自测试时,可能会对硬盘性能有轻微影响,因此建议在系统空闲时进行测试。
- 在对硬盘进行任何重要操作前,务必备份数据。
smartd
守护进程需要单独配置,通常在/etc/smartd.conf
文件中设置。
评论区