
Command-Line Invocation and Application Notes
IDE 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.
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. |
| • | This function works with SPARC Solaris, Windows family operating system, LINUX, and OS X. |
Page url: http://www.santools.com/santool/index.html?errorlogs.htm