侧边栏壁纸
Linux入门自学网博主等级

每日学一条Linux命令,终成Linux大神

  • 累计撰写 725 篇文章
  • 累计创建 143 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux smartmontools教程:硬盘健康检测与监控全攻略(附实例详解和注意事项)

smartmontools是一个控制和监视存储系统的智能自我监测分析和报告技术(S.M.A.R.T.)的工具集。通过smartmontools,用户可以获取硬盘的健康状况,预测硬盘故障,从而避免数据丢失。

Linux smartmontools命令介绍

smartmontools包含两个主要的工具:smartctlsmartdsmartctl用于在命令行中检查硬盘的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/sdaS.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.自动测试,可以使用这个命令。

注意事项

  1. 使用smartctl进行硬盘检测需要有root权限。
  2. 并非所有硬盘都支持S.M.A.R.T.,在使用smartctl之前,应确保硬盘支持此功能。
  3. S.M.A.R.T.数据并不总是百分之百准确预测硬盘故障,它是一个预测工具,并不能保证硬盘在未来的任何时间点都不会出现故障。
  4. 在运行硬盘自测试时,可能会对硬盘性能有轻微影响,因此建议在系统空闲时进行测试。
  5. 在对硬盘进行任何重要操作前,务必备份数据。
  6. smartd守护进程需要单独配置,通常在/etc/smartd.conf文件中设置。
0

评论区