SMART Error Log Reporting

Top  Previous  Next

IDE type disk drives, whether they use serial ATA (SATA) or parallel ATA (PATA or just ATA) interfaces, offer an abundance of diagnostic and reporting capability.  They are part of the SMART command set which is supported in all but the earliest generation of ATA disk drives.  The error logging contains volatile and non-volatile information and you can somewhat equate that to the log page reporting found in SCSI family disk drives.

 

This feature was released in version 1.23.

 

Usage:

smartmon-ux -O [options] [device_list]

 

Sample Output:

[root@morph smartmon]# ./smartmon-ux -O

SMARTMon-ux [Release 1.23, Build 07-DEC-2003] - Copyright 2003 SANtools, Inc. http://www.SANtools.com

Discovered Maxtor 6Y080M0 S/N "Y3JRAGXE" on /dev/hda (SMART Enabled)

 Cumulative errors recorded by disk:               0

 

Discovered SEAGATE ST39102LC S/N "LJT22233" on /dev/sda (SMART enabled)(8683 MB)

 

Discovered SEAGATE ST39102LC S/N "ZJ904241" on /dev/sdb (SMART enabled)(8683 MB)

 

Program Ended.

 

Analysis:   Note that this command was issued on a system that had two SCSI disks and an ATA disk.  The ATA disk at /dev/hda reported no errors, and the two SCSI Seagate disks ignored the command entirely since the SMART Error Log Reporting is a feature that is unique to SATA and PATA disks.

 

[root@rh90 smartmon]# ./smartmon-ux -O

SMARTMon-ux [Release 1.23, Build 07-DEC-2003] - Copyright 2003 SANtools, Inc. http://www.SANtools.com

Discovered ExcelStor Technology ES3220 S/N "KF11MPL" on /dev/hdc (SMART Enabled)

 

 Cumulative errors recorded by disk:               157 (Last 5 entries only)

   Error #(157) Contents of registers when command register was written:

    Device state field byte and description:       00 (Unknown)

    Timestamp (lifetime powered-up hours):         9999

    ERROR Register:                                04

    STATUS Register:                               00

    SECTOR Register:                               00

    LBA LOW Register:                              00

    LBA MIDDLE Register:                           00

    LBA HIGH Register:                             00

    DEVICE Register:                               E0

    Extended error bytes:                          00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

    Listing of previous 5 commands executed before error (reverse-sequential):

      Time(secs) Command  Feature   Sector  LBA Low  LBA Mid LBA High   Device  DevCtrl  Command Description

      ---------  -------  -------   ------  -------  ------- --------   ------  -------  ------------------------

        0.009       F8       00       00       00       00       00       E0       00    READ NATIVE MAX ADDRESS

        0.009       10       00       3F       00       00       00       A0       00    RECALIBRATE

        0.009       91       00       3F       3F       FF       3F       AF       00    INITIALIZE DEVICE PARAMETERS

        0.048       EF       03       42       00       00       00       A0       00    SET FEATURES [Set transfer mode]

        0.044       EC       00       00       00       00       00       A0       00    IDENTIFY DEVICE

   Error #(156) Contents of registers when command register was written:

    Device state field byte and description:       00 (Unknown)

    Timestamp (lifetime powered-up hours):         9996

    ERROR Register:                                04

    STATUS Register:                               00

    SECTOR Register:                               00

    LBA LOW Register:                              00

    LBA MIDDLE Register:                           00

    LBA HIGH Register:                             00

    DEVICE Register:                               E0

    Extended error bytes:                          00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

    Listing of previous 5 commands executed before error (reverse-sequential):

      Time(secs) Command  Feature   Sector  LBA Low  LBA Mid LBA High   Device  DevCtrl  Command Description

      ---------  -------  -------   ------  -------  ------- --------   ------  -------  ------------------------

        0.057       F8       00       00       00       00       00       E0       00    READ NATIVE MAX ADDRESS

        0.055       10       00       3F       00       00       00       A0       00    RECALIBRATE

        0.055       91       00       3F       3F       FF       3F       AF       00    INITIALIZE DEVICE PARAMETERS

        0.030       EF       03       42       00       00       00       A0       00    SET FEATURES [Set transfer mode]

        0.025       EC       00       00       00       00       00       A0       00    IDENTIFY DEVICE

   Error #(155) Contents of registers when command register was written:

    Device state field byte and description:       00 (Unknown)

    Timestamp (lifetime powered-up hours):         9992

    ERROR Register:                                04

    STATUS Register:                               00

    SECTOR Register:                               00

    LBA LOW Register:                              00

    LBA MIDDLE Register:                           00

    LBA HIGH Register:                             00

    DEVICE Register:                               E0

    Extended error bytes:                          00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

    Listing of previous 5 commands executed before error (reverse-sequential):

      Time(secs) Command  Feature   Sector  LBA Low  LBA Mid LBA High   Device  DevCtrl  Command Description

      ---------  -------  -------   ------  -------  ------- --------   ------  -------  ------------------------

        0.043       F8       00       00       00       00       00       E0       00    READ NATIVE MAX ADDRESS

        0.043       10       00       3F       00       00       00       A0       00    RECALIBRATE

        0.043       91       00       3F       3F       FF       3F       AF       00    INITIALIZE DEVICE PARAMETERS

        0.016       EF       03       42       00       00       00       A0       00    SET FEATURES [Set transfer mode]

        0.011       EC       00       00       00       00       00       A0       00    IDENTIFY DEVICE

   Error #(154) Contents of registers when command register was written:

    Device state field byte and description:       00 (Unknown)

    Timestamp (lifetime powered-up hours):         9990

    ERROR Register:                                04

    STATUS Register:                               00

    SECTOR Register:                               00

    LBA LOW Register:                              00

    LBA MIDDLE Register:                           00

    LBA HIGH Register:                             00

    DEVICE Register:                               E0

    Extended error bytes:                          00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

    Listing of previous 5 commands executed before error (reverse-sequential):

      Time(secs) Command  Feature   Sector  LBA Low  LBA Mid LBA High   Device  DevCtrl  Command Description

      ---------  -------  -------   ------  -------  ------- --------   ------  -------  ------------------------

        0.042       F8       00       00       00       00       00       E0       00    READ NATIVE MAX ADDRESS

        0.042       10       00       3F       00       00       00       A0       00    RECALIBRATE

        0.042       91       00       3F       3F       FF       3F       AF       00    INITIALIZE DEVICE PARAMETERS

        0.017       EF       03       42       00       00       00       A0       00    SET FEATURES [Set transfer mode]

        0.012       EC       00       00       00       00       00       A0       00    IDENTIFY DEVICE

   Error #(153) Contents of registers when command register was written:

    Device state field byte and description:       00 (Unknown)

    Timestamp (lifetime powered-up hours):         9981

    ERROR Register:                                04

    STATUS Register:                               00

    SECTOR Register:                               00

    LBA LOW Register:                              00

    LBA MIDDLE Register:                           00

    LBA HIGH Register:                             00

    DEVICE Register:                               E0

    Extended error bytes:                          00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

    Listing of previous 5 commands executed before error (reverse-sequential):

      Time(secs) Command  Feature   Sector  LBA Low  LBA Mid LBA High   Device  DevCtrl  Command Description

      ---------  -------  -------   ------  -------  ------- --------   ------  -------  ------------------------

        0.049       F8       00       00       00       00       00       E0       00    READ NATIVE MAX ADDRESS

        0.049       10       00       3F       00       00       00       A0       00    RECALIBRATE

        0.049       91       00       3F       3F       FF       3F       AF       00    INITIALIZE DEVICE PARAMETERS

        0.023       EF       03       42       00       00       00       A0       00    SET FEATURES [Set transfer mode]

        0.018       EC       00       00       00       00       00       A0       00    IDENTIFY DEVICE

 Note:  All ATA registers represented by single HEX byte. The timestamp represents the elapsed

   time in seconds since previous power=on. This wraps back to zero approximately every 50 days because that

   represents 2 ^ 32 milliseconds. Only the last 5 errors are retained by the disk drive per ANSI specification.

 

Discovered Maxtor 5A250J0 S/N "A80F545E" on /dev/hdd (SMART Enabled)

 

 Cumulative errors recorded by disk:               34 (Last 5 entries only)

   Error #(34) Contents of registers when command register was written:

    Device state field byte and description:       00 (Unknown)

    Timestamp (lifetime powered-up hours):         1133

    ERROR Register:                                84 (Error: ICRC, ABORT)

    STATUS Register:                               51 (Error: DRDY, DSC, ERR)

    SECTOR Register:                               00

    LBA LOW Register:                              00

    LBA MIDDLE Register:                           00

    LBA HIGH Register:                             00

    DEVICE Register:                               E0

    Extended error bytes:                          8E A0 4C 1B 00 00 03 00 9C 0B 06 00 00 00 00 00 00 00 0C

    Listing of previous 5 commands executed before error (reverse-sequential):

      Time(secs) Command  Feature   Sector  LBA Low  LBA Mid LBA High   Device  DevCtrl  Command Description

      ---------  -------  -------   ------  -------  ------- --------   ------  -------  ------------------------

      368.768       C8       00       01       00       00       00       E0       08    READ DMA

      352.416       90       00       FF       3E       C5       FA       A0       08    EXECUTE DEVICE DIAGNOSTIC

      352.416       EC       00       00       3E       C5       FA       A0       08    IDENTIFY DEVICE

      338.032       40       00       01       3E       C5       FA       E0       08    READ VERIFY SECTOR(S)

      337.904       E3       03       00       01       4F       C2       A0       08    IDLE

   Error #(33) Contents of registers when command register was written:

    Device state field byte and description:       00 (Unknown)

    Timestamp (lifetime powered-up hours):         1133

    ERROR Register:                                84 (Error: ICRC, ABORT)

    STATUS Register:                               51 (Error: DRDY, DSC, ERR)

    SECTOR Register:                               00

    LBA LOW Register:                              80

    LBA MIDDLE Register:                           61

    LBA HIGH Register:                             0F

    DEVICE Register:                               E0

    Extended error bytes:                          18 C0 47 1B 00 00 03 00 6E 72 02 00 B0 03 00 0B 00 00 0C

    Listing of previous 5 commands executed before error (reverse-sequential):

      Time(secs) Command  Feature   Sector  LBA Low  LBA Mid LBA High   Device  DevCtrl  Command Description

      ---------  -------  -------   ------  -------  ------- --------   ------  -------  ------------------------

     1556.496       C8       00       08       80       61       0F       E0       08    READ DMA

     1556.480       C6       00       10       00       00       00       E0       08    SET MULTIPLE MODE

     1556.480       10       00       3F       00       00       00       E0       08    RECALIBRATE

     1467.984       E1       00       00       80       61       0F       E0       0E    IDLE IMMEDIATE

     1467.984       E1       00       00       80       61       0F       E0       08    IDLE IMMEDIATE

   Error #(32) Contents of registers when command register was written:

    Device state field byte and description:       00 (Unknown)

    Timestamp (lifetime powered-up hours):         1133

    ERROR Register:                                84 (Error: ICRC, ABORT)

    STATUS Register:                               51 (Error: DRDY, DSC, ERR)

    SECTOR Register:                               00

    LBA LOW Register:                              80

    LBA MIDDLE Register:                           61

    LBA HIGH Register:                             0F

    DEVICE Register:                               E0

    Extended error bytes:                          2D 66 46 1B 00 00 03 00 DF 03 04 00 B3 00 00 0B 00 00 0C

    Listing of previous 5 commands executed before error (reverse-sequential):

      Time(secs) Command  Feature   Sector  LBA Low  LBA Mid LBA High   Device  DevCtrl  Command Description

      ---------  -------  -------   ------  -------  ------- --------   ------  -------  ------------------------

     1467.920       C8       00       08       80       61       0F       E0       08    READ DMA

     1467.856       C8       00       10       80       48       54       E2       08    READ DMA

     1467.824       C8       00       08       3F       00       00       E0       08    READ DMA

     1467.760       C8       00       10       BF       60       0F       E0       08    READ DMA

     1467.696       C8       00       10       BF       60       0F       E0       08    READ DMA

   Error #(31) Contents of registers when command register was written:

    Device state field byte and description:       00 (Unknown)

    Timestamp (lifetime powered-up hours):         1133

    ERROR Register:                                84 (Error: ICRC, ABORT)

    STATUS Register:                               51 (Error: DRDY, DSC, ERR)

    SECTOR Register:                               00

    LBA LOW Register:                              BF

    LBA MIDDLE Register:                           60

    LBA HIGH Register:                             0F

    DEVICE Register:                               E0

    Extended error bytes:                          3D 65 46 1B 00 00 03 00 5E 03 07 00 17 04 00 0B 00 00 0C

    Listing of previous 5 commands executed before error (reverse-sequential):

      Time(secs) Command  Feature   Sector  LBA Low  LBA Mid LBA High   Device  DevCtrl  Command Description

      ---------  -------  -------   ------  -------  ------- --------   ------  -------  ------------------------

     1467.696       C8       00       10       BF       60       0F       E0       08    READ DMA

      907.376       C8       00       20       08       00       00       E0       08    READ DMA

      907.280       E1       00       00       00       00       00       E0       08    IDLE IMMEDIATE

      907.216       C8       00       08       00       00       00       E0       08    READ DMA

      902.432       B0       D1       01       01       4F       C2       E0       08    SMART READ ATTRIBUTE THRESHOLDS

   Error #(30) Contents of registers when command register was written:

    Device state field byte and description:       00 (Unknown)

    Timestamp (lifetime powered-up hours):         1132

    ERROR Register:                                84 (Error: ICRC, ABORT)

    STATUS Register:                               51 (Error: DRDY, DSC, ERR)

    SECTOR Register:                               00

    LBA LOW Register:                              00

    LBA MIDDLE Register:                           00

    LBA HIGH Register:                             00

    DEVICE Register:                               E0

    Extended error bytes:                          DC D7 3D 1B 00 00 03 00 5E 03 07 00 00 00 00 0B 00 00 0C

    Listing of previous 5 commands executed before error (reverse-sequential):

      Time(secs) Command  Feature   Sector  LBA Low  LBA Mid LBA High   Device  DevCtrl  Command Description

      ---------  -------  -------   ------  -------  ------- --------   ------  -------  ------------------------

      907.216       C8       00       08       00       00       00       E0       08    READ DMA

      902.432       B0       D1       01       01       4F       C2       E0       08    SMART READ ATTRIBUTE THRESHOLDS

      902.384       B0       D0       01       00       4F       C2       E0       08    SMART READ DATA

      902.336       B0       D8       00       01       4F       C2       E0       08    SMART ENABLE OPERATIONS

      823.680       C4       00       20       08       00       00       E0       08    READ MULTIPLE

 Note:  All ATA registers represented by single HEX byte. The timestamp represents the elapsed

   time in seconds since previous power=on. This wraps back to zero approximately every 50 days because that

   represents 2 ^ 32 milliseconds. Only the last 5 errors are retained by the disk drive per ANSI specification.

 

Discovered MYLEX DACARMRB S/N "0002ab5c20000080e511ab5c0000000000000000" on /dev/sda (SMART unsupported)(69423 MB)

 

Discovered MYLEX DACARMRB PSEUDO S/N " " on /dev/sdb

 

Program Ended.

 

Analysis:   Both of these drives have been used in a system for a significantly longer time, and you see they have all recorded errors. In the case of the Maxtor disk, you will see that there are also extended error bytes which are vendor-unique.

 

Notes:

The -O option may be added to the command-line with other options.  If the -O option is used, however, the program will automatically terminate after reporting all relevant information.  The program will not launch and run in the background after discovering the devices.
The -O option will only report information if the selected device is capable of reporting such information.  Disks that do not support the SMART Report Error Log will ignore the command.
The -O option reports really advanced stuff.  Many of the "errors" it reports may be perfectly normal. SANtools does not interpret this information for you, but your hardware and/or disk drive vendor or supplier should be able to analyze the information for you, provided you are having some sort of problem. If you are a storage engineer, however, you will find this feature invaluable.
The -O option can be combined with other reporting options such as -I or -S.
This function works with SPARC Solaris, Windows family operating system, LINUX, and OS X.