In this section we introduce the different methods of testing, S.M.A.R.T. can do.
The choice1 of the word testing for the online and offline tests, is unfortunate, and often leads to confusion. In fact these first two categories could have been more accurately described as online and offline data collection.
The results of the collection are reflected in the values of the SMART Attributes. Thus, if problems or errors are detected, the values of these attributes will go below their failure thresholds; some types of errors may also appear in the SMART error log. Call smartctl with option '-l error' to check the log entries.
Some SMART attribute values are updated only during off-line data collection activities; the rest are updated during normal operation of the device or during both normal operation and off-line testing.
To see, by which actions the attributes are updated, call smartctl with option '-A'.
# smartctl -A /dev/sda smartctl version 5.38 [i386-redhat-linux-gnu] Copyright (C) 2002-8 Bruce Allen Home page is http://smartmontools.sourceforge.net/ === START OF READ SMART DATA SECTION === SMART Attributes Data Structure revision number: 10 Vendor Specific SMART Attributes with Thresholds: ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 1 Raw_Read_Error_Rate 0x000f 057 048 006 Pre-fail Always - 123453991 3 Spin_Up_Time 0x0003 097 097 000 Pre-fail Always - 0 4 Start_Stop_Count 0x0032 100 100 020 Old_age Always - 20 5 Reallocated_Sector_Ct 0x0033 100 100 036 Pre-fail Always - 0 7 Seek_Error_Rate 0x000f 090 060 030 Pre-fail Always - 940448850 9 Power_On_Hours 0x0032 082 082 000 Old_age Always - 16352 10 Spin_Retry_Count 0x0013 100 100 097 Pre-fail Always - 0 12 Power_Cycle_Count 0x0032 099 099 020 Old_age Always - 1913 194 Temperature_Celsius 0x0022 050 056 000 Old_age Always - 50 195 Hardware_ECC_Recovered 0x001a 057 048 000 Old_age Always - 123453991 197 Current_Pending_Sector 0x0012 100 100 000 Old_age Always - 0 198 Offline_Uncorrectable 0x0010 100 100 000 Old_age Offline - 0 199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always - 0 200 Multi_Zone_Error_Rate 0x0000 100 253 000 Old_age Offline - 0 202 TA_Increase_Count 0x0032 100 253 000 Old_age Always - 0
Look at the values in column UPDATED. Attributes labeled with value 'Offline' are only updated by offline tests. Attributes labeled 'Always' are updated by both methods 'Online' and 'Offline' tests.
So in the example above, the values of the two attributes Offline_Uncorrectable and Multi_Zone_Error_Rate will only reflect the actual state, if you enable the automatic offline test or just called it manually.
[1] The authors of the SFF-8035i and ATA specification named it so.
The so called online test, has no effect on the performance of the device.
It is turned on by option '-s on'.
The offline test can, in principle, degrade the device performance.
The '-o on' option causes this offline testing to be carried out, automatically, on a regular scheduled basis. Normally, the disk will suspend offline testing while disk accesses are taking place, and then automatically resume it when the disk would otherwise be idle, so in practice it has little effect.
Note that with '-t offline' option, a one-time offline test can also be carried out immediately upon receipt of a user command.
Note that the SMART automatic offline test command is listed as "Obsolete" in every version of the ATA and ATA/ATAPI Specifications. It was originally part of the SFF-8035i Revision 2.0 specification, but was never part of any ATA specification. However it is implemented and used by many vendors. [Good documentation can be found in IBM's Official Published Disk Specifications. For example the IBM Travelstar 40GNX Hard Disk Drive Specifications (Revision 1.1, 22 April 2002, Publication # 1541, Document S07N-7715-02) page 164. You can also read the SFF-8035i Specification -- see REFERENCES below.] You can tell if automatic offline testing is supported by seeing if this command enables and disables it, as indicated by the 'Auto Offline Data Collection' part of the SMART capabilities report (displayed with '-c').
The third category of testing (and the only category for which the word 'testing' is really an appropriate choice) is self testing. It is only performed (immediately) when a command to run it is issued. The '-t' and '-X' options can be used to carry out and abort such self-tests.
The tests check the electrical and mechanical performance as well as the read performance of the disk. Their results and any errors detected during the tests are reported in the Self Test Error Log, which can be examined using the '-l selftest' option.
Note that on some disks the progress of the self-test can be monitored by watching this log during the self-test; with other disks use the '-c' option to monitor progress.
If the '-c' option to smartctl shows that the device has the "Suspend Offline collection upon new command" capability then you can track the progress of the Immediate Offline test using the '-c' option to smartctl.
If the '-c' option show that the device has the "Abort Offline collection upon new command" capability then most commands will abort the Immediate Offline Test, so you should not try to track the progress of the test with '-c', as it will abort the test.