Smartctl (Self-Monitoring, Analysis and Reporting Technology) 是 UNIX 和 Linux 等操作系统中的命令行工具,用于执行 SMART 工作,如打印 SMART 自检和谬误日志,启用和禁用 SMART 自动测试,设施自检。

Smartctl 在物理 Linux 服务器上很有用,能够查看智能磁盘的谬误和坏扇区,并提取无关硬件 RAID 前面应用的磁盘的信息。

装置 Smartctl

对于 Ubuntu 零碎

$ sudo apt-get install smartmontools

对于 Redhat / CentOS 零碎

# yum install smartmontools

启动Smartctl 服务

对于 Ubuntu 零碎

$ sudo /etc/init.d/smartmontools start

对于 CentOS / RHEL 零碎

# service smartd start ; chkconfig smartd on

(1) 查看硬盘是否开启 Smart Capability 性能

root@linuxtechi:~# smartctl -i /dev/sdbsmartctl 6.2 2013-07-26 r3841 [x86_64-linux-3.13.0-32-generic] (local build)Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org=== START OF INFORMATION SECTION ===Model Family:     Seagate Momentus 5400.6Device Model:     ST9320325ASSerial Number:    5VD2V59TLU WWN Device Id: 5 000c50 020a37ec4Firmware Version: 0002BSM1User Capacity:    320,072,933,376 bytes [320 GB]Sector Size:      512 bytes logical/physicalRotation Rate:    5400 rpmDevice is:        In smartctl database [for details use: -P show]ATA Version is:   ATA8-ACS T13/1699-D revision 4SATA Version is:  SATA 2.6, 1.5 Gb/sLocal Time is:    Sun Nov 16 12:32:09 2014 ISTSMART support is: Available - device has SMART capability.SMART support is: Enabled

Where ‘/dev/sdb’ is your hard disk. Last Two lines in above output shows that SMART capability is enable for the device.

(2) 启用硬盘的 Smart Capability

root@linuxtechi:~# smartctl -s on /dev/sdbsmartctl 6.2 2013-07-26 r3841 [x86_64-linux-3.13.0-32-generic] (local build)Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org=== START OF ENABLE/DISABLE COMMANDS SECTION ===SMART Enabled.

(3) 禁用硬盘的 Smart Capability 性能

root@linuxtechi:~# smartctl -s off  /dev/sdbsmartctl 6.2 2013-07-26 r3841 [x86_64-linux-3.13.0-32-generic] (local build)Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org=== START OF ENABLE/DISABLE COMMANDS SECTION ===SMART Disabled. Use option -s with argument 'on' to enable it.

(4) 显示硬盘 Smart 的详细信息

root@linuxtechi:~# smartctl -a /dev/sdb              // For IDE driveroot@linuxtechi:~# smartctl -a -d ata /dev/sdb       // For SATA drive

(5) 显示磁盘的整体健康情况

root@linuxtechi:~# smartctl -H  /dev/sdbsmartctl 6.2 2013-07-26 r3841 [x86_64-linux-3.13.0-32-generic] (local build)Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org=== START OF READ SMART DATA SECTION ===SMART overall-health self-assessment test result: PASSEDWarning: This result is based on an Attribute check.Please note the following marginal Attributes:ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE190 Airflow_Temperature_Cel 0x0022   067   045   045    Old_age   Always   In_the_past 33 (Min/Max 25/33)

(6) 应用多头和空头选项测试硬盘驱动器。

Long Test

root@linuxtechi:~# smartctl --test=long /dev/sdbsmartctl 6.2 2013-07-26 r3841 [x86_64-linux-3.13.0-32-generic] (local build)Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===Sending command: "Execute SMART Extended self-test routine immediately in off-line mode".Drive command "Execute SMART Extended self-test routine immediately in off-line mode" successful.Testing has begun.Please wait 102 minutes for test to complete.Test will complete after Sun Nov 16 14:29:43 2014Use smartctl -X to abort test.

OR We can redirect test output to a log file , as shown below

root@linuxtechi:~# smartctl --test=long /dev/sdb > /var/log/long.text

Short Test

root@linuxtechi:~# smartctl --test=short /dev/sdbsmartctl 6.2 2013-07-26 r3841 [x86_64-linux-3.13.0-32-generic] (local build)Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===Sending command: "Execute SMART Short self-test routine immediately in off-line mode".Drive command "Execute SMART Short self-test routine immediately in off-line mode" successful.Testing has begun.Please wait 1 minutes for test to complete.Test will complete after Sun Nov 16 12:51:45 2014Use smartctl -X to abort test.

OR

root@linuxtechi:~# smartctl --test=short /dev/sdb > /var/log/short.text

留神: 短测试最多须要 2 分钟,而长测试没有工夫限度,因为它读取和验证整个磁盘的每个段。

(7) 查看硬盘自检后果

root@linuxtechi:~# smartctl -l selftest /dev/sdbsmartctl 6.2 2013-07-26 r3841 [x86_64-linux-3.13.0-32-generic] (local build)Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org=== START OF READ SMART DATA SECTION ===SMART Self-test log structure revision number 1Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error# 1  Short offline       Completed: read failure       90%       492         210841222# 2  Extended offline    Completed: read failure       90%       492         210841222

(8) 估算执行测试的工夫

root@linuxtechi:~# smartctl -c  /dev/sdbsmartctl 6.2 2013-07-26 r3841 [x86_64-linux-3.13.0-32-generic] (local build)Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org=== START OF READ SMART DATA SECTION ===General SMART Values:Offline data collection status:  (0x00)    Offline data collection activity                    was never started.                    Auto Offline Data Collection: Disabled.Self-test execution status:      ( 121)    The previous self-test completed having                    the read element of the test failed.Total time to complete Offline data collection:         (    0) seconds.Offline data collectioncapabilities:              (0x73) SMART execute Offline immediate.                    Auto Offline data collection on/off support.                    Suspend Offline collection upon new                    command.                    No Offline surface scan supported.                    Self-test supported.                    Conveyance Self-test supported.                    Selective Self-test supported.SMART capabilities:            (0x0003)    Saves SMART data before entering                    power-saving mode.                    Supports SMART auto save timer.Error logging capability:        (0x01)    Error logging supported.                    General Purpose Logging supported.Short self-test routine recommended polling time:      (   1) minutes.Extended self-test routinerecommended polling time:      ( 102) minutes.Conveyance self-test routinerecommended polling time:      (   2) minutes.SCT capabilities:            (0x103b)    SCT Status supported.                    SCT Error Recovery Control supported.                    SCT Feature Control supported.                    SCT Data Table supported.

(9) 显示磁盘的谬误日志

root@linuxtechi:~# smartctl -l error  /dev/sdbSample Outputsmartctl 6.2 2013-07-26 r3841 [x86_64-linux-3.13.0-32-generic] (local build)Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org=== START OF READ SMART DATA SECTION ===SMART Error Log Version: 1ATA Error Count: 5    CR = Command Register [HEX]    FR = Features Register [HEX]    SC = Sector Count Register [HEX]    SN = Sector Number Register [HEX]    CL = Cylinder Low Register [HEX]    CH = Cylinder High Register [HEX]    DH = Device/Head Register [HEX]    DC = Device Command Register [HEX]    ER = Error register [HEX]    ST = Status register [HEX]Powered_Up_Time is measured from power on, and printed asDDd+hh:mm:SS.sss where DD=days, hh=hours, mm=minutes,SS=sec, and sss=millisec. It "wraps" after 49.710 days.Commands leading to the command that caused the error were:  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name  -- -- -- -- -- -- -- --  ----------------  --------------------  25 da 08 e7 e5 a5 4c 00      00:30:44.515  READ DMA EXT  25 da 08 df e5 a5 4c 00      00:30:44.514  READ DMA EXT  25 da 80 5f e5 a5 4c 00      00:30:44.502  READ DMA EXT  25 da f0 5f e6 a5 4c 00      00:30:44.496  READ DMA EXT  25 da 10 4f e6 a5 4c 00      00:30:44.383  READ DMA EXT

我的开源我的项目

  • course-tencent-cloud(酷瓜云课堂 - gitee仓库)
  • course-tencent-cloud(酷瓜云课堂 - github仓库)