# smartmontools Home Page

Welcome! This is the home page for the smartmontools package.

NEWS:

- Smartmontools 5.37 (experimental) was released 2006-12-20, see NEWS and CHANGELOG for details.
- New RAID controller support (CCISS and HighPoint on Linux, 3ware on Windows) was added, see below.

Please report problems (or success!) with the new release to the smartmontools-support mailing list.

The smartmontools package contains two utility programs (smartctl and smartd) to control and monitor storage systems using the Self-Monitoring, Analysis and Reporting Technology System (SMART) built into most modern ATA and SCSI hard disks. In many cases, these utilities will provide advanced warning of disk degradation and failure.

Smartmontools is originally derived from the Linux smartsuite package, and includes support for ATA/ATAPI-3 to -7 disks and SCSI disk and tape devices. It should run on any modern Darwin (Mac OSX), Linux, FreeBSD, NetBSD, OpenBSD, Solaris, OS/2, eComStation or Windows system. Alternatively, it can also be run from one of the bootable CDs or floppies containing smartmontools.

For printing convenience, everything except for the example output is on a single page.

- Monitoring Hard Disks with SMART (Linux Journal, January 2004, page 74)
- How to download and install smartmontools
- Serious Problem Reports (system lockup, etc.)
- Frequently Asked Questions
- SCSI disks and tapes (TapeAlert)
- FireWire, USB, and SATA disks/tapes
- How does smartmontools differ from smartsuite?
- Useful references on SMART and ATA/ATAPI-5, -6, and -7
- Example output from smartmontools smartctl utility
- CVS repository and SourceForge's Project Page
- Mailing List Information and Archives (Archive has Search Box in top left corner). Alternative (and usually up to date) archives.
- Current smartctl, smartd, and smartd.conf HTML man pages generated from CVS.

How to download and install smartmontools

There are different ways to get and install smartmontools. You can use any of the procedures below (the fourth is for Debian Linux only). Just after "Method 6" below are some instructions for trying out smartmontools once you have completed the installation. The INSTALL file contains additional information.

First Method (Redhat/Fedora Linux) - Install from the RPM file

- Starting with smartmontools release 5.37, RPM files are no longer available at the smartmontools project download page. Refer to the package download location of your distribution.

- Download the latest binary RPM file (`smartmontools*.rpm`) for your distribution. Don't get the SRPM file (`*.src.rpm`).

- Install it using RPM. You must be root to do this:

      su root (enter root password)
      rpm -ivh smartmontools-5.32.i386.rpm

  For most users, this is all that is needed.
- If you receive an error message, you have probably previously installed the `smartsuite` package, or RedHat's `kernel-utils` package, which provide older versions of the `smartd` and `smartctl` utilities. In this case you should use the `--nodeps` or `--force` arguments of rpm to replace these two utilities:

      rpm -ivh --nodeps --force smartmontools-5.32.i386.rpm

- If you want to remove the package (`rpm -e smartmontools`) and your system does not have `chkconfig` installed, you may need to use:

      rpm -e --noscripts smartmontools

Second Method (Linux/Solaris/FreeBSD/NetBSD/OpenBSD/Cygwin) - Install from the source tarball

- Download the latest source tarball from here. Note: you probably want the most recent stable release. Stable releases have even-numbered extensions, and unstable experimental releases have odd-numbered extensions.
- Uncompress the tarball:

      tar zxvf smartmontools-5.32.tar.gz

- The previous step created a directory called `smartmontools-5.32` containing the code. Go to that directory, build, and install:

      cd smartmontools-5.32
      ./configure
      make
      make install

- Note that the `./configure` step above is not possible for releases <=5.1-18, you have to edit the Makefile by hand to change installation paths. For releases >=5.19, `./configure` can take optional arguments. These optional arguments are fully explained in the INSTALL file. The most important one is `--prefix` to change the default installation directories.

  Please note that the default installation location changed in versions >=5.31. If you don't pass any arguments to `./configure` all files will reside under /usr/local to not interfere with files from your distribution. For more detailed information please also refer to the INSTALL document.

- To compile from another directory (avoids overwriting virgin files from the smartmontools package) replace `./configure [options]` by:

      mkdir objdir
      cd objdir
      ../configure [options]

- To install to another destination (useful for testing and to avoid overwriting an existing smartmontools installation) replace `make install` by:

      make DESTDIR=/home/myself/smartmontools-test install

  Use a full path: `~/smartmontools-test` won't work.
- Unless the destination directory is your home directory (or a location that you have write permission) only root can do `make install`

Third Method (Darwin/FreeBSD/Linux/NetBSD/OpenBSD/Solaris/Cygwin) - Install from the CVS repository

- Due to the new SourceForge CVS architecture, the hostname for CVS access has changed from `cvs.sourceforge.net` to `smartmontools.cvs.sourceforge.net`. To update a copy of smartmontools checked out before 2006-05-12, change all the `*/CVS/Root` files accordingly.

- One of the really cool things about CVS is that you can get any version of the code you want, from the first release up the the most current development version. And it's trivial, because each release is tagged with a name like `RELEASE_5_1_18`. You can see what the different names are by looking at the CVS repository. You'll see the tag names in the little scroll window where it says "Show only files with tag". All you need to do to get the latest development code is (but note that the development code may be unstable, and that the documentation and code may be inconsistent):

      cvs -d:pserver:anonymous@smartmontools.cvs.sourceforge.net:/cvsroot/smartmontools login (when prompted for a password, just press Enter)
      cvs -d:pserver:anonymous@smartmontools.cvs.sourceforge.net:/cvsroot/smartmontools co sm5

- To instead get the 5.1-16 release:

      cvs -d:pserver:anonymous@smartmontools.cvs.sourceforge.net:/cvsroot/smartmontools co -r RELEASE_5_1_16 sm5

- This will create a subdirectory called `sm5/` containing the code. Go to that directory, build, and install:

      cd sm5
      ./autogen.sh
      ./configure
      make
      make install

  - See notes under Second method - install from source tarball for different options to `./configure` and other useful remarks.
  - Skip `./autogen.sh` and `./configure` for tagged releases <= 5.1-18 (RELEASE_5_X_Y, where X = 0 or 1 and Y = 0 to 18).
  - If you get the current sources (`cvs co` with no arguments or do `cvs up -A`) then you will need those two additional steps.
- To update your sources to the 5.1-18 release:

      cd sm5
      cvs up -r RELEASE_5_1_18

- To update any tagged release to the latest development code:

      cd sm5
      cvs up -A

Fourth Method (Debian Linux) - Install the Debian package

- The latest version of the smartmontools package in .deb format is available at the Debian smartmontools package page. This package is for the (unreleased) unstable distribution.
- If you're running Debian stable please download a backport to stable here. These packages are provided by www.backports.org.
- You can then install the package using:

      dpkg -i smartmontools_5.36-1_i386.deb

  If you prefer to fetch the packages using apt, please read the instructions at backports.org.

Fifth Method (Windows with Cygwin installed) - Install the Cygwin package

- Starting with CVS snapshot 2005-11-15, smartmontools is part of the Cygwin distribution. A list of available smartmontools packages and their contents is here.

- To update your installation, click on the "Install or update now!" link on the Cygwin web page. This downloads `setup.exe` to your system. Then, run setup and answer all of the questions. Select smartmontools package in the "Utils" category.

- The optional source package (`smartmontools-*-src.tar.bz2`) can be used to build both the Cygwin and the Windows binary packages on Cygwin. Refer to the file `/usr/share/doc/Cygwin/smartmontools-*.README` for details.

Sixth Method (Windows) - Install the Windows package

- Download and run the latest smartmontools NSIS-installer (`*.win32-setup.exe`) from here.
  - The default install type "Full" creates start menu shortcuts including an uninstaller, and adds the install directory to the PATH variable.
  - Select install type "Extract files only" to disable these extra components.
  - Virus scanners occasionally produce false positive virus reports for NSIS-installers, see the NSIS False Positives page. If this is the case for the smartmontools installer, please send a report to the smartmontools-support mailing list.

- Starting with smartmontools release 5.37, the Windows package is no longer provided as a ZIP archive (`*.win32.zip`).
  If the self extracting installer cannot be used for some reason, the files may also be unpacked by a recent version of 7-Zip.

- More recent (and probably unstable) Windows test releases build from CVS snapshots are available here.

After installing it using Method 1, 2, 3, 4 or 5 above, you can read the man pages, and try out the commands:

    man smartd.conf
    man smartctl
    man smartd
    /usr/sbin/smartctl -s on -o on -S on /dev/hda (only root can do this)
    /usr/sbin/smartctl -a /dev/hda (only root can do this)

Note that the default location for the manual pages are `/usr/share/man/man5` and `/usr/share/man/man8`. If "`man`" doesn't find them, then you may need to add `/usr/share/man` to your `MANPATH` environment variable.

The Windows package (see Method 6 above) provides preformatted man pages in `*.html` and `*.txt` format.

Serious Problem Reports

If a serious problem gets reported to us, it gets added to the WARNINGS file in smartmontools. So far there are only a few problem systems listed.

Frequently Asked Questions

If your question is not here, please email me.

- Is the smartmontools File Download/Mail List/Mail Archive/CVS server broken?

  SourceForge is a free service, which supports a very large number of users and projects. Please check the SourceForge Site Status Page to see the maintenance schedule and to learn if SourceForge is experiencing unscheduled system outages or other problems.

  Alternative mailing-list archives are provided by Gmane and MARC (smartmontools-support and smartmontools-database).

- What do I do if I have problems, or need support? Suppose I want to become a developer, or suggest some new extensions?

  First, search the support mailing list archives to see if your question has been answered. Instructions are in the following paragraph. If you don't find an answer there, then please send an email to the smartmontools-support mailing list. This is a moderated forum: you are not required to subscribe to the list in order to post your question.

  To search the email archives, first go to the mailing list archive. In the top left corner you will see a search box: use Mailing List as the type of search. This tool works very well.

  Note that from time to time SourceForge has mailing list problems and you'll get a message telling you that Either your mailing list name was misspelled or your mailing list has not been archived yet. If this list has just been created, please retry in 2-4 hours. If this happens, you'll have to try again later. Or use alternative (and usually up to date) email archives.

- What are the future plans for smartmontools?

  My plan is that smartmontools-5.x will support ATA/ATAPI-5 disks. Eventually, we'll do smartmontools-6.x to support ATA/ATAPI-6 disks, smartmontools-7.x for the ATA/ATAPI-7 standard, and so on. The "x" will denote revision level, as bugs get found and fixed, and as enhancements get added. If it's possible to maintain backwards compatibility, that would be nice, but I don't know if it will be possible or practical.

- Why are you doing this?

  My research group at U. Wisconsin - Milwaukee runs a beowulf cluster with 600 ATA-5 and -6 disks (300 IBM and 300 Maxtor). We have more than 50 TB of data stored on the system. I also help out with a cluster at the Albert Einstein Institute that has 540 IBM ATA-6 disks (65 TB total). It's nice to have advanced warning when a disk is going to fail.

- Where can I find distribution-specific bug reports?

  The smartmontools package supports a number of different operating systems. Some of those operating systems are also distributed by multiple sources, and some of these maintain a database of bug reports. Here are links:

  - Redhat/Fedora Bugzilla Database (Linux)
  - Debian Bug Database (Linux)
  - Gentoo Bug Database (Linux)
  - NetBSD smartctl bug database
  - NetBSD smartd bug database
  - NetBSD smartmontools bug database

  If you can provide additional distribution or OS-specific bug-database links, please send an email to smartmontools-support.

- I see some strange output from smartctl. What does it mean?

  The raw SMART attributes (temperature, power-on lifetime, and so on) are stored in vendor-specific structures. Sometime these are strange. Hitachi disks (at least some of them) store power-on lifetime in minutes, rather than hours (see next question below). IBM disks (at least some of them) have three temperatures stored in the raw structure, not just one. And so on. If you find strange output, or unknown attributes, please send an email to smartmontools-support and we'll help you try and figure it out.

- Why is my disk temperature s reported by smartd as 150 Celsius?

  It's not. Please read the end of the smartd man page (NOTES). For example, in the message:
  'Device: /dev/hda, SMART Attribute: 194 Temperature_Celsius changed from 94 to 93'
  the value given is the 'Normalized' not the 'Raw' Attribute value (the disk temperature in this case is about 22 Celsius). The '-R' and '-r' Directives modify this behavior, so that the information is printed with the Raw values as well, for example:
  'Device: /dev/hda, SMART Attribute: 194 Temperature_Celsius changed from 94 [Raw 22] to 93 [Raw 23]'
  Here the Raw values are the actual disk temperatures in Celsius. The way in which the Raw values are printed, and the names under which the Attributes are reported, is governed by the various '-v Num,Description' Directives described in the smartd man page. Please see the smartctl manual page for further explanation of the differences between Normalized and Raw Attribute values.

- What are the operating system requirements?

  Please see the first section of the INSTALL file.

- What Attributes does smartmontools not yet recognize?

  From Maxtor disks (99), (100), and (101). These are not used by Maxtor in SMART revision 5. They will be used in SMART revision 6, but the engineering group has not yet decided what to monitor with these Attributes.

- My Maxtor/Hitachi/Fujitsu disk is only a few days old, yet smartctl reports its age (Attribute 9) as thousands of hours!

  On recent disks, Maxtor has started to use Attribute 9 to store the power-on disk lifetime in minutes rather than hours. In this case, use the:
  `-v 9,minutes`
  option to correctly display hours and minutes.

  Some models of Fujitsu disks use Attribute 9 to store the power-on disk lifetime in seconds. In that case, use the:
  `-v 9,seconds`
  option to correctly display hours, minutes and seconds.

- The power-on timer (Attribute 9 raw value) on my Maxtor disk acts strange.

  There are three related problems with Maxtor's SMART firmware:

  1 - On some Maxtor disks, the raw value of Attribute 9 (Power On Time) is supposed to be minutes. But it advances at an unpredictable rate, always more slowly than one count per minute. This is because when the disk is in idle mode, the counter stops advancing. This is only supposed to happen in standby mode. This will be corrected in Maxtor product lines released after October 2004.

  2 - In Maxtor disks that use the raw value of Attribute 9 as a minutes counter, only two bytes (of the six available) are used to store the raw value. So it resets to zero once every 65536=2^16 minutes, or about once every 1092 hours. This is fixed in all Maxtor disks manufactured after July 2003, where the raw value was extended to four bytes.

  3 - In Maxtor disks that use the raw value of Attribute 9 as a minutes counter, the hour time-stamps in the self-test and ATA error logs are calculated by right shifting 6 bits. This is equivalent to dividing by 64 rather than by 60. As a result, the hour time stamps in these logs advance 7% more slowly than they should. Thus, if you do self-tests once per week at the same time, instead of the time-stamps being 168 hours apart, they are 157 hours apart. This is also fixed in all Maxtor disks manufactured after July 2003.

- The time stamps in the self-test log of my Western Digital (WD) disk don't correspond to the power-on time when the test was run

  The self-test log timestamps in many WD disks roll back to zero every 1092 hours (65536 minutes). This problem is due to a WD firmware bug. The power-on lifetime in hours is correctly stored in Attribute 9. However when the power-on lifetime is calculated for self-test log entries, the lifetime in minutes is put into a 16-bit register then divided by 60. The 16-bit register overflows and wraps around every 1092 hours.

  For WD drives that exhibit this firmware bug, the relationship between Attribute 9's raw value (H) and the time-stamps in the self-test log (h) are given by:
  Let H = power on hours as shown by Attribute 9 (correct)
  Let M = 60*H (power on minutes, correct)
  Let m = M mod 65536 (incorrect value of power on minutes)
  Let h = m/60 (incorrect value of power on hours, shown in self-test log)

- The (normalized) WORST Attribute values of my Western Digital (WD) disk are larger than the (normalized) CURRENT Attribute values

  Western Digital firmware initializes SMART Attributes 10, 11, and 199 after either 120 spin-ups or 8 power-on hours. Until that time, they have the uninitialized value 253.

- Where can I find manufacturer-specific disk-testing utilities?

  A good listing of such utilities can be found here. Unfortunately most of these are for MS operating systems, but most can be run from a MS-DOS boot disk. The UBCD (Ultimate Boot CD) includes most of these disk-testing utilities and many other useful diagnostic tools ready to boot from CD or USB memory stick. The UBCD can be customized by adding other images, like one containing smartmontools.

  Note: if you do run one of these utilities, and it identifies the meanings of any SMART Attributes that are not known to smartmontools, please report them to the mailing list above.

  These utilities have an important role to fill. If your disk has bad sectors (for example, as revealed by running self-tests with smartmontools) and the disk is not able to recover the data from those sectors, then the disk will not automatically reallocate those damaged sectors from its set of spare sectors, because forcing the reallocation to take place may entail some loss of data. Because the commands that force such reallocation are Vendor Specific, most manufactuers provide a utility for this purpose. It may cause data loss but can repair damaged sectors (at least, until it runs out of replacement sectors).

- When I run `smartd`, the SYSLOG `/var/log/messages` contains messages like this:

      smartd: Reading Device /dev/sdv
      modprobe: modprobe: Can't locate module block-major-65

  This is because when `smartd` starts, if there is no configuration file, it looks for all ATA and SCSI devices to monitor (matching the pattern `/dev/hd[a-t]` or `/dev/sd[a-z]`). The log messages appear because your system doesn't have most of these devices.

  The solution is simple: use the `smartd` configuration file `/etc/smartd.conf` to specify which devices to monitor.

- What's the story on IBM SMART disks?

  Apparently some of the older SMART firmware on IBM disks can interfere with the regular operation of the disk. If you have this problem, here are some links:
  Geocities Site, IBM Site #1, IBM Site #2
  to an IBM Firmware Upgrade that fixes the problem.

- How can I check that the package hasn't been tampered with?

  Since the `smartmontools` utilities run as root, you might be concerned about something harmful being embedded within them. Starting with release 5.19 of `smartmontools`, the .rpm files and tarball have been GPG signed. The tarball's fingerprint is given in a file on the release page with a name like `smartmontools-5.32.tar.gz.asc`. Please verify these using the Smartmontools GPG Signing Key (current) Smartmontools GPG Signing Key (before 2005)

- Is there a bootable standalone CD or floppy that contains smartmontools?

  If you have a system that is showing signs of disk trouble (for example, it's unbootable and the console is full of disk error messages) it can be handy to have a version of smartmontools that can be run off of a bootable CD or floppy to examine the disk's SMART data and run self-tests. This is also useful if you want to run Captive Self-Tests (the `-C` option of `smartctl` ) on disks that can not easily be unmounted, such as those hosting the Operating System files. Or you can use this to run `smartctl` on computers that don't use Linux as the day-to-day operating system.

  Here is a list of such bootable CDs:

  - Fedora Core 7 Live Bootable CD
  - LNX-BBC Bootable CD
  - Stresslinux Bootable CD
  - RIP (Recovery Is Possible) Bootable CD
  - SystemRescueCd
  - STUX Bootable CD
  - Knoppix (Debian/testing based CD)
  - Gentoo Installer LiveCD
  - grml Linux Live-CD (Debian/unstable based CD with many packages, smartmontools is also included in grml-small)
  - S.M.A.R.T. Linux (a bootable FLOPPY containing smartmontools!)
  - BackTrack (Slackware based CD with Security and Forensics tools)
  - INSERT (Inside Security Rescue Toolkit) (Knoppix based CD)
  - Smartctl Plugin for BartPE bootable live windows CD
  - See also note about UBCD above

  Please let me know if there are others, and I will add them to this list.

- Can I monitor disks behind RAID controllers?

  RAID controllers typically simulate a (logical) disk for each array of (physical) disks to the OS. Access to SMART functionality relies on ATA or SCSI pass through I/O controls providing direct access to each physical disk. But the standard I/O controls available are usually not designed to make this distinction between logical and physical disks. Therefore, smartmontools has to use vendor specific I/O controls. Support for disks behind RAID controllers is highly dependent on both platform and controller type.

  - 3ware RAID controllers are supported on Linux since smartmontools release 5.1-18. Support for char devices /dev/tw* was added in release 5.33.

  - 3ware support on FreeBSD is available since release 5.33, multiple controller and char device support was added in release 5.36.

  - 3ware 9000 support for Windows was added 2006-09-27, the corresponding 3ware driver 9.4.0 was released 2006-11-01.

  - HighPoint RocketRAID support for Linux was added 2006-08-25.

  - CCISS (Compaq Smart Array Controller) support for Linux was added 2006-10-09.

  The recent additions are included in smartmontools release 5.37.

  See INSTALL file for information about kernel and driver requirements on your platform, and the man pages for controller specific smartmontools options or directives (`-d 3ware,N`, `-d cciss,N`, `-d hpt,L/M/N`).

- Does it work on Windows?

  Yes, finally it does. A windows port of smartctl 5.26 by Christian Franke was first checked in 2004/02/23 on CVS branch RELEASE_5_26_WIN32_BRANCH and has been merged to the CVS trunk later.

  The Cygwin environment can be used to built both Cygwin and Windows (using MinGW) versions of smartctl and smartd. Installation instructions for binary distributions can be found here and here.

- Why did the release version scheme change?

  It was non-standard. So with the move to GNU Autoconf and GNU Automake it changed from 5.X-Y (where X and Y are one or more digits) to 5.Y. Starting with the first release, and moving forward in time, the releases are numbered as follows:
  `5.0-1, 5.0-2, ..., 5.0-45, 5.1-1, ..., 5.1-18, 5.19, 5.20, ...`

- My ATA drive is not in the smartctl/smartd database. Does this break anything? How do I get it added?

  If your drive is not in the database, then the names of the Attributes (displayed in the `ATTRIBUTE_NAME` column of `smartctl -A /dev/hd?`) and the format of the the raw Attribute values shown in the `RAW_VALUE` column may be incorrect. This is mostly cosmetic: the essential drive health monitoring/testing functionality of smartmontools does not depend upon the database.

  If your drive is not in the database, pleaes check here to be sure that you are using the latest smartmontools release. Each new release has additional drives added to the database. Please do not submit a new drive for the database without checking to see if it is already in the database of the current smartmontools release version.

  If your drive is not in the database of the current release, to have it added to the database, first use the command:
  `smartctl -t short /dev/hd?`
  to run a short self-test on the drive, and wait a few minutes for the test to complete. Then email the entire output from:
  `smartctl -a /dev/hd?`
  to smartmontools-database as a plain-text ASCII email attachment (file type: ".txt"). The timestamp in the self-test log will help us to determine whether Attribute 9 is being used to store the lifetime in hours, minutes, or seconds.

  If you need to use any of the vendor-specific display options (`-v` options) with the drive, or if any of the Attributes are behaving strangely, please include that information as well.

- My ATA drive is failing its self-tests, but its SMART health status is 'PASS'. What's going on?

  If your ATA drive supports self-tests, you should run them on a regular basis, for example one per week:
  `smartctl -t long /dev/hd?`
  After the test has completed, you should examine the results with:
  `smartctl -l selftest /dev/hd?`

  If the drive fails a self-test, but still has 'PASS' SMART health status, this usually means that there is a corrupted (uncorrectable=UNC) sector on the disk. This means that the ECC data stored at that sector is not consistent with the user data stored at that sector, and an attempt to read the sector fails with a UNC error. This can be a one-time transient effect: a sudden power failure while the disk was writing to the sector corrupted the ECC code or data, but the sector could correctly store new data. Or it can be a permanent effect: the magnetic media has been damaged by a bit of dust, and the sector could not correctly store new data.

  If the disk can read the sector of data a single time, and the damage is permanent, not transient, then the disk firmware will mark the sector as 'bad' and allocate a spare sector to replace it. But if the disk can't read the sector even once, then it won't reallocate the sector, in hopes of being able, at some time in the future, to read the data from it. A write to an unreadable (corrupted) sector will fix the problem. If the damage is transient, then new consistent data will be written to the sector. If the damange is permanent, then the write will force sector reallocation. Please see Bad block HOWTO for instructions about how to force this sector to reallocate (Linux only).

  The disk still has passing health status because the firmware has not found other signs of trouble, such as a failing servo.

  Such disks can often be repaired by using the disk manufaturer's 'disk evaluation and repair' utility. Beware: this may force reallocation of the lost sector and thus corrupt or destroy any file system on the disk. See Bad block HOWTO for generic Linux instructions.

- smartd is warning that my ATA disk has unreadable or uncorrectable or pending sectors. What's going on?

  Disk drives store data in blocks (sectors) of 512 bytes. Each 512 bytes has additional bytes appended to it (usually 40 to 60) which are used internally by the disk firmware for error checking/detection and correction. These are called ECC bytes.

  Sometimes the data in a sector gets corrupted. This can happen because a speck of dust scratched the disk, or because the disk was powered down while writing data to that sector, or for other reasons. Usually the ECC bytes can be used to correct the corrupted data. However if the ECC bytes are inconsistent or can't be used to correct the bad data, then the 512 bytes of data are lost. Such a sector is called unreadable or uncorrectable.

  If your disk has an unreadable sector, this means that some of your data can't be retrieved. You can force the disk to replace the unreadable sector with a spare good sector, but only at the price of losing the 512 bytes of data forever.

  Disks with uncorrectable sectors can often be repaired by using the disk manufaturer's 'disk evaluation and repair' utility (see previous FAQ entry). Beware: this may force reallocation of the lost sector and thus corrupt or destroy any file system on the disk. See Bad block HOWTO for generic Linux instructions.

  Normally when an uncorrectable sector is found, the disk puts this onto a 'pending sector list' to indicate that it should be replaced with a spare good sector. However this replacement won't take place until either the disk can read the data on the bad sector, or is commanded to write new data to that bad sector.

- My computer's BIOS has a SMART enable/disable setting. What does it do, and how should I set it?

  Some type of BIOS can check the SMART health status of a disk at bootup: the equivalent of '`smartctl -H /dev/hd?`'. This one-time check on bootup is done if the BIOS SMART setting is set to 'ENABLE', and is not done if the setting is set to 'DISABLE'.

  If this one-time check is done, and the disk's health status is found to be 'FAIL', then typically the BIOS will display an error message and refuse to boot the machine.

  For the proper functioning of smartmontools, either BIOS setting may be used.

- My Fedora Core Linux system displays the startup message: smartd [FAILED]

  Fedora Core is distributed with a smartd configuration file /etc/smartd.conf that monitors the first IDE disk /dev/hda. If this device does not exist (or lacks SMART capability) you will get the error message above. Look in SYSLOG (/var/log/messages) for additional details about what is going wrong.

  The solution: If your system has only SCSI disks, or has IDE disk(s) on a non-primary controller, just edit /etc/smartd.conf to reflect the correct location of the drive(s). Please also read the 'smartd.conf' man page for additional information.

- Attribute 194 (Temperature Celsius) behaves strangely on my Seagate disk

  Some Seagate disks store the current temperature Celsius in both the RAW and NORMALIZED Attribute 194 values, and the maximum lifetime temperature in Celsius in the WORST value. Since cooler is better, this means that in this case, lower NORMALIZED Attribute values are farther from failure, and that over time the WORST Attribute values get larger, not smaller (as with other Attributes).

- What's this smartctl message mean?: Warning: ATA error count 9 inconsistent with error log pointer 5

  The ATA error log is stored in a circular buffer, and the ATA specifications are unambiguous about how the entries should be ordered. This warning message means that the disk's firmware does not strictly obey the ATA specification regarding the ordering of the error log entries in the circular buffer. Smartmontools will correct for this oversight, so this warning message can be safely ignored by users. (On the other hand, firmware engineers: please read the ATA specs more closely then fix your code!).

- On Windows, smartctl aborts with the message "...SMART_GET_VERSION failed". What is going wrong?

  A failing SMART_GET_VERSION call means that the device driver does not implement the I/O controls (see below) to access ATA SMART functionality.

  Some Windows drivers for (S)ATA controllers are implemented as SCSI class drivers. This is usually the case for drivers which support RAID. Unfortunately, such drivers do not support the ATA specific SMART I/O controls.

- On Windows, smartctl prints the message: "...Log Read failed: Function not implemented". What is going wrong?

  This means that the device driver does not support the command SMART READ LOG. The message does not indicate a hard disk problem! It does also not mean that the disk itself does not support SMART logs. It may still be possible to read the logs with a Linux version of smartmontools run from some bootable CD.

  To access ATA SMART functionality on Windows, smartmontools uses the I/O control calls SMART_RCV_DRIVE_DATA and SMART_SEND_DRIVE_CMD. These calls were available since Win95 OSR2. An example program from Microsoft can be found here (the related KB article 208048 is no longer available).

  Starting with NT4, these calls do more restrictive parameter checks. In particular, the command codes for SMART READ LOG and ABORT SELF-TEST are not accepted. To perform these functions, smartmontools uses the undocumented functions SCSIOP_ATA_PASSTHROUGH (NT4) or IOCTL_IDE_PASS_THROUGH (2000/XP) instead. An example program using these calls can be found here, a related newsgroup thread is here.

  Unfortunately, these undocumented functions are not implemented in most vendor specific ATA device drivers. Smartctl prints a "Function not implemented" message in this case.

  A new I/O control call IOCTL_ATA_PASS_THROUGH is available since Win2003 and XP SP2. It should be supported by most new drivers. Experimental code using this call was added 2006-04-27 and is included in smartmontools release 5.37.

SCSI disks and tapes (TapeAlert)

Smartmontools for SCSI disks and tapes (including medium changers) is discussed on a separate page.

FireWire, USB, and SATA disks/systems

As for USB and FireWire (IEEE 1394) disks and tape drives, the news is not good. They appear to the operating system as SCSI devices but their implementations do not usually support those SCSI commands needed by smartmontools. A consortium associated with IEEE 1394 certified some external enclosures (containing a ATA disk and a protocol bridge) as being compliant to the relevant standards. Even still, that compliance means that they tend to only support the bare minimum of commands needed for device operation (i.e. SMART support is an unsupported extra). Hopefully external USB and Firewire devices will support SAT in the future, see below.

Smartmontools should work correctly with SATA drives under both Linux 2.4 and 2.6 kernels. Depending on which subsystem the SATA controller is in (i.e. drivers/ide, drivers/ata or libata (under drivers/scsi) a SATA drive will appear as /dev/hd* or /dev/sd*. Either way, smartmontools should be able to figure out what is going on and act accordingly. In some cases smartmontools may need a hint in the form of a '-d sat' or '-d ata' option on the smartctl command line or in the /etc/smartd.conf file. There may be a hint to add one of those options in the log file when smartd is run as a daemon or on the command line with smartctl. The '-d ata' option means that even though the drive has a SCSI device name, treat it as an ATA disk. Unfortunately such an approach doesn't often work. The next paragraph has more information about '-d sat'.

The SCSI to ATA Translation (SAT) standard (ANSI INCITS 431-2007) may solve many problems in this area. It defines how SCSI commands will be translated to the corresponding ATA commands and defines a pass-through mechanism. ATA commands are conveyed natively by two transports: parallel and serial ATA. SCSI commands can be conveyed by many transports: the veteran SCSI Parallel Interface (SPI), Fibre Channel (FC), Infiniband (SRP), Serial Attached SCSI (SAS), IP (iSCSI and iSER), USB (mass storage), and IEEE 1394 (SBP) to name some. Due to their cost and storage capacity, more and more ATA disks (especially SATA disks) are appearing "behind" a SCSI transport. This is especially true of the SAS transport which can painlessly accomodate both SAS and SATA disks. Enter another acronym: SATL which stands for SCSI to ATA Translation Layer. In Linux libata has a SATL in it. Some SAS host bus adapters have a SATL in their firmware. FC might have a SATL in a switch. Perhaps in the future USB and IEEE 1394 enclosures will have a SATL in them. Starting from smartmontools versions 5.36 and 5.37, no matter where a SATL is, irrespective of the operating system in use, the user should have less problems with ATA disks, no matter which transport is involved. As always, it helps to know a little of what is happening under the covers. The '-d sat' option instructs smartctl and smartd to assume a SATL is in place and act accordingly. The smartctl command can often detect a SATL and autoconfigure while in smartmontools version 5.37 smartd often needs a hint.

How does smartmontools differ from smartsuite?

The smartsuite code was originally developed as a Senior Thesis by Michael Cornwell at the Concurrent Systems Laboratory (now part of the Storage Systems Research Center), Jack Baskin School of Engineering, University of California, Santa Cruz. You can find some information about the original smartsuite project here: Press Release 1, Press Release 2, Press Release 3.

According to SSRC smartsuite is no longer maintained; the last release was in 2001.

Smartmontools was derived directly from smartsuite. It differs from smartsuite in that it supports the ATA/ATAPI-5 standard. So for example `smartctl` from smartsuite has no facility for printing the SMART self-test logs, and doesn't print timestamp information in the most usable way. The `smartctl` utility in smartmontools has added functionality for this (`-q, -l selftest,-S, -T, -v and -m` options), updated documentation, and also fixes small technical bugs in smartsuite. [One example: smartsuite does not actually use the ATA SMART RETURN STATUS command to find out the health status of a disk. It instead tries to infer this from the SMART Attribute values.] See the CHANGELOG file in CVS for a summary of what's been done. The `smartd` utility differs from the smartsuite `smartd` in major ways. First, it prints somewhat more informative error messages to the syslog. Second, on startup it looks for a configuration file `/etc/smartd.conf`, and if `smartd` finds this file, it monitors the list of devices therein, rather than querying all IDE and SCSI devices on your system. (If the configuration file does not exist, then it does query all IDE and SCSI devices.) Also, it's a well-behaved daemon and doesn't leave open file descriptors and other detrius behind. In addition, the `smartmontools` version of `smartd` can be instructed (via Directives in the configuration file) to monitor for changes in a number of different disk properties: the SMART status, failure or prefailure attributes going below threshold, new errors appearing in the ATA Error Log or the SMART Self-Test Log, and so on. `smartd` can also send an email warning or run a user-specified executable if it detects a problem with the disk.

The other principle difference is that smartmontools is an OpenSource development project, meaning that we keep the files in CVS, and that other developers who wish to contribute can commit changes to the archive. If you would like to contribute, please write to to smartmontools-support.

But the bottom line is that the code in smartmontools is derived directly from smartsuite and is similar. The smartsuite package can be found here.

Useful references on SMART and the ATA/ATAPI standards

If you are having trouble understanding the output of smartctl or smartd, please first read the manual pages installed on your system:

    man 8 smartctl
    man 8 smartd
    man 5 smartd.conf

Here are on-line versions of the smartmontools man pages:
smartctl manual page
smartd manual page
smartd.conf manual page
Note that these are the manual pages for the current version of smartmontools in the developers CVS repository; they might not correspond to the (possibly older) version of smartmontools installed on your system. So the manual pages installed on your system should be regarded as definitive for your installation.

If you'd like to know more about SMART, then the following references may be helpful:

- Monitoring Hard Disks with SMART (Linux Journal, Jan 2004)
- Soyez Smart (Francais) from GNU Linux Magazine France n°68,
- Vorbeugen statt Crash (Deutsch) from LinuxUser 2004/10
- Crash Prevention (English version of above) from Linux Magazine Dec 2004
- Wikipedia articles about SMART: English, Deutsch, Español, Français, Italiano, Japanese, Nederlands, Polski, Português, Russian, Slovenčina, Svenska
- ATA References:
  - The homepage of the T13 project.
  - The ATA-3 revision 7b (working draft) (last specification of SMART Attributes and Thresholds, removed before final standard was published!)
  - The ATA/ATAPI-4 revision 18 (final draft) (SMART Attributes and Thresholds no longer specified)
  - The ATA/ATAPI-5 revision 3 (final draft) (start with Section 8.41)
  - The ATA/ATAPI-6 revision 3b (final draft)
  - The ATA/ATAPI-7 revision 4b (final draft) Volume 1 (has SMART documentation), Volume 2, Volume 3
  - The ATA/ATAPI-8 Command Set revision 3f (working draft)
  - The ATA/ATAPI-8 SMART Attribute Annex (proposal) (now split into 3 parts: Overview, Assignment, List).
  - See also other subdirectories here.
- SCSI References:
  - The homepage of the T10 project.
  - The SCSI-2 draft by the T10 project.
  - See also other subdirectories here.
- The original SMART specification is SFF-8035i from the Small Form Factors (SFF) Committee.
  - Here is the SFF "link" (they have "expired" the document).
  - Version 1.0 of SFF-8035i "Self-Monitoring, Analysis and Reporting Technology (S.M.A.R.T.)".
  - Revision 2.0 of SFF-8035i "Self-Monitoring, Analysis and Reporting Technology (S.M.A.R.T.)".
  - Revision 1.4 of SFF-8055i "S.M.A.R.T. Applications Guide for the ATA and SCSI Interfaces"
- From the UCSD SMART Project:
  - Bayesian Approaches to Failure Prediction for Disk Drives
  - Improved Disk-Drive Failure Warnings
- From the Seagate Corporation:
  - Enhanced SMART - Get SMART For Reliability
  - Playing it SMART (HTML Version)
  - Enhanced Drive Self-Test
- Specifying Reliability in the Disk Drive Industry: No More MTBF's, Jon G. Elerath (IBM Storage Systems Division) in Proceedings of the IEEE 2000 Annual Reliability and Maintainability Symposium, pg 194, 0-7803-5848-1/00/$10.00.
- Zbigniew Chlondowski's SMART Information Site. This includes a useful list of Attributes and their meanings.

Example output from smartmontools smartctl utility:

- MAXTOR 4K080H4 80 GB 5400 RPM
- MAXTOR 4K080H4 80 GB 5400 RPM (has failing SMART status - reallocated sector count)
- MAXTOR 4K080H4 80 GB 5400 RPM (has had failing SMART test in the past. Look at the Seek Error Rate)
- MAXTOR 4K080H4 80 GB 5400 RPM (has failing SMART status, some failed self-tests)
- MAXTOR 4K080H4 80 GB 5400 RPM (has failing SMART status - calibration retry count)
- MAXTOR 4K080H4 80 GB 5400 RPM (has failing SMART status - calibration retry count)
- MAXTOR 4K080H4 80 GB 5400 RPM (failing self-tests. Note Current_Pending_Sector raw value and Uncorrectable (UNC) read errors)
- MAXTOR 6L080J4 80 GB 7200 RPM
- MAXTOR 6L080J4 80 GB 7200 RPM
- Maxtor 98196H8 80 GB 5400 RPM
- Maxtor 4R080J0 Note: Attribute 9 (lifetime) stored in minutes!
- IBM IC35L120AVVA07 (GXP 120 series) 120 GB 7200 RPM (note 3 temperatures)
- IBM IC35L120AVVA07 (GXP 120 series) 120 GB 7200 RPM (note 3 temperatures)
- IBM IC35L120AVV207 (GXP 180 series) 120 GB 7200 RPM (note 3 temperatures)
- IBM IC35L120AVV207 (GXP 180 series) (failing SMART status and self-tests)
- HITACHI_DK23BA-20 Hitachi 20 GB Laptop Disk
- HITACHI_DK23AA-12B Really sick failing Hitachi Laptop Disk
- TOSHIBA MK2018GAS Toshiba 20 GB Laptop Disk
- TOSHIBA MK6021GAS Toshiba 60 GB Laptop Disk (note 3 temperatures)
- Fujitsu MHR2040AT Fujitsu Laptop Disk (has failing SMART status - write error count)
- Fujitsu MHR2020AT Fujitsu Laptop Disk (has failing SMART status and self-tests)
- Western Digital WD2500JB Western Digital Disk (failing SMART status and self-tests)
- Western Digital WD800JD Western Digital Disk (failing SMART status - too may reallocated sectors, and self-tests)

Maintained by: Bruce Allen
Copyright (C) 2002-5 Bruce Allen
Last updated: `$Date: 2007/10/26 21:49:03 $`
CVS tag: `$Id: index.html,v 1.219 2007/10/26 21:49:03 ballen4705 Exp $`

Hosted by
Validate XHTML 1.0 Transitional.
Check/Validate all links on this page.