Update SmartMonTools Database on FreeNAS 0.7

Logo FreeNAS


I’ve been running a NAS at home for years.

I recently added 2 new 2TB disks, that were not recognized by SMART.

Device Model:     ST2000DM001-1ER164
Serial Number:    W4Z103H5
Firmware Version: CC25
User Capacity:    2,000,398,934,016 bytes
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   9
ATA Standard is:  Not recognized. Minor revision code: 0x001f
Local Time is:    Sun May 15 15:17:35 2016 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled


Here is how to solve this issue:

SmartMonTools software is regularly updating its packages. And upgrading database is as simple as upgrading the software itself.

Unfortunately, if you are using FreeNAS, in an old (but effective) version as I do (version 0.7.2, based on FreeBSD 7.3), you are stuck with a certain revision of this binary.
On my PC this is SmartMonTools v5.4:

freenas:/usr/local/etc# smartctl -V
smartctl 5.40 2010-10-16 r3189 [FreeBSD 7.3-RELEASE-p3 i386] (local build)
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net

smartctl comes with ABSOLUTELY NO WARRANTY. This is free
software, and you are welcome to redistribute it under
the terms of the GNU General Public License Version 2.
See http://www.gnu.org for further details.

smartmontools release 5.40 dated 2010-10-16 at 16:34:38 UTC
smartmontools SVN rev 3189 dated 2010-10-16 at 16:35:49
smartmontools build host: i386-portbld-freebsd7.3
smartmontools build configured: 2010-11-03 00:19:07 UTC
smartctl compile dated Nov  3 2010 at 01:19:24
smartmontools configure arguments:  '--with-docdir=/usr/local/share/doc/smartmontools' '--disable-sample' '--disable-dependency-tracking' '--disable-drivedb' '--prefix=/usr/local' '--mandir=/usr/local/man' '--infodir=/usr/local/info/' '--build=i386-portbld-freebsd7.3' 'build_alias=i386-portbld-freebsd7.3' 'CXX=c++' 'CXXFLAGS=-O -fno-strict-aliasing -pipe -Wno-write-strings' 'CC=cc' 'CFLAGS=-O -fno-strict-aliasing -pipe -Wno-write-strings'

On FreeNAS, it seems to be compiled with a pre-defined version of the database.
Usually, this database is located in a file : drivedb.h, usually located under /usr/share/…

On FreeNAS, you can save a file, name “smart_drivedb.h” (be careful on the name !), if you locate it under /usr/local/etc.
That should make the trick.
(Note: I used a “strings smartctl” on a Linux box, to identify where it was expecting the file to be located…)

But you cannot use the latest drivedb.h file from Sourceforge ! Because it looks like the format of the file has changed when moving to the new 6.x branch of development…
I managed to use the latest 5.4x branch release with success (5.43).
Go to Sourceforge repository, and download the file in the appropriate directory of your FreeNAS.

Et voilà !

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.