This is the home page for smartmontools. 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 (S.M.A.R.T.) built into most modern ATA and SCSI hard disks. It is derived from the smartsuite package, and includes support for ATA/ATAPI-5 disks. It should run on any modern Linux system.
For printing convenience, everything except for the example output is on a single page.
There are three different ways to get and install smartmontools. You can use any one of these three procedures. Just after "Method 3" below are some instructions for trying out smartmontools once you have completed the installation.
First Method - Install from the RPM filesu root (enter root password) rpm -ivh smartmontools-5.0-1.i386.rpmFor most users, this is all that is needed.
rpm -ivh --nodeps --force smartmontools-5.0-1.i386.rpm
rpm -e --noscripts smartmontools
tar zxvf smartmontools-5.0-1.tar.gz
cd smartmontools-5.0-1 make make install (only root can do this)
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_0_26. 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:
cvs -d: pserver:anonymous@cvs.smartmontools.sourceforge.net:/cvsroot/smartmontools login (when prompted for a password, just press Enter) cvs -d: pserver:anonymous@cvs.smartmontools.sourceforge.net:/cvsroot/smartmontools co sm5
cvs -d :pserver:anonymous@cvs.smartmontools.sourceforge.net:/cvsroot/smartmontools co -r RELEASE_5_0_26 sm5
This will create a subdirectory called sm5/ containing the code. Go to that directory, build, and install:
cd sm5 make make install (only root can do this)
cd sm5 cvs up -r RELEASE_5_0_30
cd sm5 cvs up -A
man 8 smartctl man 8 smartd /usr/sbin/smartctl -etf /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 in /usr/share/man/man8. If "man" does not find the manual pages, then you may need to add /usr/share/man to your MANPATH environment variable.
If a serious problem gets reported to us, it gets added to the WARNINGS file in smartmontools. So far the only problem report is about a SCSI RAID controller.
Frequently Asked QuestionsIf your question is not here, please email me.
Please send an email to the smartmontools-support mailing list. Please take a look through the archives to see if your question has been answered.
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.
My research group runs a beowulf cluster with 300 ATA-5 disks. We have more than 20 TB of data stored on the system. It's nice to have advanced warning when a disk is going to fail.
The raw S.M.A.R.T. 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. 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.
From a Hitachi disk: (230)(250)
If you can attach names/meanings to these attributes, please send me a note to smartmontools-support.
smartd: Reading Device /dev/sdv modprobe: modprobe: Can't locate module block-major-65
This is because when smartd starts, it looks for all ATA and SCSI devices to monitor (matching the pattern /dev/hd[a-z] or /dev/sd[a-z]). The log messages appear because your system doesn't have most of these devices.
The latest release of smartd can use a configuration file /etc/smartd.conf to specify which devices to include or exclude from start-up search.
Apparently some of the older S.M.A.R.T. firmware on IBM disks can interfere with the regular operation of the disk. If you have this problem, here is an IBM DISK FIRMWARE UPGRADE that fixes the problem.
I have access to a number of systems with ATA S.M.A.R.T. disks, but I don't have any access to systems with SCSI, FireWire, USB, and SATA S.M.A.R.T. devices. I'd be very grateful to find someone who could help me test the smartmontools code on them. Since it's derived from the smartsuite package, it should initially work about the same way with SCSI devices as the smartsuite tools did.
I'd be especially happy if someone would like to take on the task, as a developer, of maintaining the SCSI code. Do you have a beowulf cluster with a few hundred SCSI disks? Please volunteer !
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.
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 S.M.A.R.T. 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,-Q, -L,-f, -F, -U, -P and -m options), updated documentation, and also fixes small technical bugs in smartsuite. 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.
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.
If you are having trouble understanding the output of smartctl or smartd, please first read the manual pages:
man 8 smartctl man 8 smartd
If you'd like to know more about S.M.A.R.T., then the following references may be helpful: