From 587ca7d2bdb6039d7518da2ef512f8259fb57fd7 Mon Sep 17 00:00:00 2001 From: "(no author)" <(no author)@4ea69e1a-61f1-4043-bf83-b5c94c648137> Date: Fri, 30 May 2008 19:35:05 +0000 Subject: [PATCH] This commit was manufactured by cvs2svn to create tag 'WINDOWS_OK'. git-svn-id: https://smartmontools.svn.sourceforge.net/svnroot/smartmontools/tags/WINDOWS_OK@2572 4ea69e1a-61f1-4043-bf83-b5c94c648137 --- CVSROOT/checkoutlist | 13 - CVSROOT/commitinfo | 15 - CVSROOT/config | 14 - CVSROOT/cvswrappers | 23 - CVSROOT/editinfo | 21 - CVSROOT/loginfo | 29 - CVSROOT/modules | 26 - CVSROOT/notify | 12 - CVSROOT/rcsinfo | 13 - CVSROOT/taginfo | 20 - CVSROOT/verifymsg | 21 - sm5/os_win32/smartctl_vc6.dsp | 244 ++ sm5/os_win32/smartd_vc6.dsp | 268 +++ sm5/os_win32/smartmontools_vc6.dsw | 53 + sm5/os_win32/syslogevt_vc6.dsp | 148 ++ sm5/smartmontools.spec | 1976 +++++++++++++++++ www/3w-xxxx.txt | 157 -- www/BadBlockHowTo.txt | 505 ----- www/BadBlockSCSIHowTo.txt | 169 -- www/FAQ.xml | 543 ----- www/Makefile | 22 - www/SmartmontoolsSigningKey.txt | 27 - www/SmartmontoolsSigningKey_2005.txt | 27 - www/about.html | 207 -- www/badblockhowto.xml | 1233 ---------- www/css/style.css | 198 -- www/cvs-script | 6 - www/doc.html | 131 -- www/download.html | 306 --- www/examples/FUJITSU1.txt | 80 - www/examples/FUJITSU_MHR2020AT.txt | 158 -- www/examples/HITACHI_DK23AA-12B.txt | 173 -- www/examples/HITACHI_DK23BA-20-0.txt | 163 -- www/examples/IC35L120AVV207-0.txt | 67 - www/examples/IC35L120AVV207-1.txt | 191 -- www/examples/IC35L120AVVA07-0-0.txt | 69 - www/examples/IC35L120AVVA07-0-1.txt | 67 - www/examples/MAXTOR-0.txt | 139 -- www/examples/MAXTOR-1.txt | 143 -- www/examples/MAXTOR-10.txt | 188 -- www/examples/MAXTOR-2.txt | 79 - www/examples/MAXTOR-3.txt | 67 - www/examples/MAXTOR-4.txt | 65 - www/examples/MAXTOR-6.txt | 156 -- www/examples/MAXTOR-7.txt | 157 -- www/examples/MAXTOR-8.txt | 82 - www/examples/MAXTOR-9.txt | 94 - www/examples/Maxtor-5.txt | 127 -- www/examples/ST910021AS.txt | 205 -- www/examples/TOSHIBA-0.txt | 73 - www/examples/TOSHIBA-MK6021GAS.txt | 74 - www/examples/WD2500JB.txt | 192 -- www/examples/WD800JD.txt | 115 - www/examples/atapi_cdrw_smt_a.html | 32 - www/examples/ativ_36_smt_a.html | 61 - www/examples/bnch_DLT1.html | 67 - www/examples/bnch_robot.html | 64 - www/examples/ddrs_39130_smt_a.html | 82 - www/examples/hp_c5713a_smt_a.html | 13 - www/examples/mam3184_smt_a.html | 170 -- www/examples/mam3184_smt_health.html | 35 - www/examples/map3735_smt_a.html | 86 - www/examples/st318451_smt_a.html | 185 -- www/examples/st336754_smt_a.html | 130 -- www/faq.html | 775 ------- www/help.html | 164 -- www/index.html | 101 - www/links.html | 216 -- www/man5/syslog.conf.5.html | 52 - www/man7/regex.7.html | 52 - www/man8/badblocks.8.html | 52 - www/man8/ide-smart.8.html | 52 - www/man8/syslogd.8.html | 52 - www/pics/BruceAndCat_2008_04_22-sm.jpg | Bin 10863 -> 0 bytes www/pics/BruceAndCat_2008_04_22.jpg | Bin 65654 -> 0 bytes www/pics/chrfranke.jpg | Bin 8118 -> 0 bytes www/pics/datei16x16-pdf01.gif | Bin 230 -> 0 bytes www/pics/gap-woody.jpg | Bin 16915 -> 0 bytes www/pics/linkext.gif | Bin 148 -> 0 bytes www/pics/raute-blau.gif | Bin 91 -> 0 bytes www/script | 24 - www/smart_logo.gif | Bin 4512 -> 0 bytes www/smartmontools_scsi.xml | 1511 ------------- www/sphider/search.php | 145 -- www/sphider/settings/conf.php | 179 -- www/sphider/sphider-instructions.txt | 33 - www/sphider/templates/standard/footer.html | 20 - www/sphider/templates/standard/header.html | 38 - .../templates/standard/search_form.html | 33 - www/tmpl.txt | 42 - 90 files changed, 2689 insertions(+), 11128 deletions(-) delete mode 100644 CVSROOT/checkoutlist delete mode 100644 CVSROOT/commitinfo delete mode 100644 CVSROOT/config delete mode 100644 CVSROOT/cvswrappers delete mode 100644 CVSROOT/editinfo delete mode 100644 CVSROOT/loginfo delete mode 100644 CVSROOT/modules delete mode 100644 CVSROOT/notify delete mode 100644 CVSROOT/rcsinfo delete mode 100644 CVSROOT/taginfo delete mode 100644 CVSROOT/verifymsg create mode 100644 sm5/os_win32/smartctl_vc6.dsp create mode 100644 sm5/os_win32/smartd_vc6.dsp create mode 100644 sm5/os_win32/smartmontools_vc6.dsw create mode 100644 sm5/os_win32/syslogevt_vc6.dsp create mode 100644 sm5/smartmontools.spec delete mode 100644 www/3w-xxxx.txt delete mode 100644 www/BadBlockHowTo.txt delete mode 100644 www/BadBlockSCSIHowTo.txt delete mode 100644 www/FAQ.xml delete mode 100644 www/Makefile delete mode 100644 www/SmartmontoolsSigningKey.txt delete mode 100644 www/SmartmontoolsSigningKey_2005.txt delete mode 100644 www/about.html delete mode 100644 www/badblockhowto.xml delete mode 100755 www/css/style.css delete mode 100755 www/cvs-script delete mode 100644 www/doc.html delete mode 100644 www/download.html delete mode 100644 www/examples/FUJITSU1.txt delete mode 100644 www/examples/FUJITSU_MHR2020AT.txt delete mode 100644 www/examples/HITACHI_DK23AA-12B.txt delete mode 100644 www/examples/HITACHI_DK23BA-20-0.txt delete mode 100644 www/examples/IC35L120AVV207-0.txt delete mode 100644 www/examples/IC35L120AVV207-1.txt delete mode 100644 www/examples/IC35L120AVVA07-0-0.txt delete mode 100644 www/examples/IC35L120AVVA07-0-1.txt delete mode 100644 www/examples/MAXTOR-0.txt delete mode 100644 www/examples/MAXTOR-1.txt delete mode 100644 www/examples/MAXTOR-10.txt delete mode 100644 www/examples/MAXTOR-2.txt delete mode 100644 www/examples/MAXTOR-3.txt delete mode 100644 www/examples/MAXTOR-4.txt delete mode 100644 www/examples/MAXTOR-6.txt delete mode 100644 www/examples/MAXTOR-7.txt delete mode 100644 www/examples/MAXTOR-8.txt delete mode 100644 www/examples/MAXTOR-9.txt delete mode 100644 www/examples/Maxtor-5.txt delete mode 100644 www/examples/ST910021AS.txt delete mode 100644 www/examples/TOSHIBA-0.txt delete mode 100644 www/examples/TOSHIBA-MK6021GAS.txt delete mode 100644 www/examples/WD2500JB.txt delete mode 100644 www/examples/WD800JD.txt delete mode 100644 www/examples/atapi_cdrw_smt_a.html delete mode 100644 www/examples/ativ_36_smt_a.html delete mode 100644 www/examples/bnch_DLT1.html delete mode 100644 www/examples/bnch_robot.html delete mode 100644 www/examples/ddrs_39130_smt_a.html delete mode 100644 www/examples/hp_c5713a_smt_a.html delete mode 100644 www/examples/mam3184_smt_a.html delete mode 100644 www/examples/mam3184_smt_health.html delete mode 100644 www/examples/map3735_smt_a.html delete mode 100644 www/examples/st318451_smt_a.html delete mode 100644 www/examples/st336754_smt_a.html delete mode 100644 www/faq.html delete mode 100644 www/help.html delete mode 100644 www/index.html delete mode 100644 www/links.html delete mode 100644 www/man5/syslog.conf.5.html delete mode 100644 www/man7/regex.7.html delete mode 100644 www/man8/badblocks.8.html delete mode 100644 www/man8/ide-smart.8.html delete mode 100644 www/man8/syslogd.8.html delete mode 100644 www/pics/BruceAndCat_2008_04_22-sm.jpg delete mode 100644 www/pics/BruceAndCat_2008_04_22.jpg delete mode 100644 www/pics/chrfranke.jpg delete mode 100644 www/pics/datei16x16-pdf01.gif delete mode 100644 www/pics/gap-woody.jpg delete mode 100644 www/pics/linkext.gif delete mode 100644 www/pics/raute-blau.gif delete mode 100755 www/script delete mode 100644 www/smart_logo.gif delete mode 100644 www/smartmontools_scsi.xml delete mode 100644 www/sphider/search.php delete mode 100644 www/sphider/settings/conf.php delete mode 100644 www/sphider/sphider-instructions.txt delete mode 100644 www/sphider/templates/standard/footer.html delete mode 100644 www/sphider/templates/standard/header.html delete mode 100644 www/sphider/templates/standard/search_form.html delete mode 100644 www/tmpl.txt diff --git a/CVSROOT/checkoutlist b/CVSROOT/checkoutlist deleted file mode 100644 index b04b3501f..000000000 --- a/CVSROOT/checkoutlist +++ /dev/null @@ -1,13 +0,0 @@ -# The "checkoutlist" file is used to support additional version controlled -# administrative files in $CVSROOT/CVSROOT, such as template files. -# -# The first entry on a line is a filename which will be checked out from -# the corresponding RCS file in the $CVSROOT/CVSROOT directory. -# The remainder of the line is an error message to use if the file cannot -# be checked out. -# -# File format: -# -# [<whitespace>]<filename><whitespace><error message><end-of-line> -# -# comment lines begin with '#' diff --git a/CVSROOT/commitinfo b/CVSROOT/commitinfo deleted file mode 100644 index b19e7b7a6..000000000 --- a/CVSROOT/commitinfo +++ /dev/null @@ -1,15 +0,0 @@ -# The "commitinfo" file is used to control pre-commit checks. -# The filter on the right is invoked with the repository and a list -# of files to check. A non-zero exit of the filter program will -# cause the commit to be aborted. -# -# The first entry on a line is a regular expression which is tested -# against the directory that the change is being committed to, relative -# to the $CVSROOT. For the first match that is found, then the remainder -# of the line is the name of the filter to run. -# -# If the repository name does not match any of the regular expressions in this -# file, the "DEFAULT" line is used, if it is specified. -# -# If the name "ALL" appears as a regular expression it is always used -# in addition to the first matching regex or "DEFAULT". diff --git a/CVSROOT/config b/CVSROOT/config deleted file mode 100644 index ff43ec005..000000000 --- a/CVSROOT/config +++ /dev/null @@ -1,14 +0,0 @@ -# Set this to "no" if pserver shouldn't check system users/passwords -#SystemAuth=no - -# Put CVS lock files in this directory rather than directly in the repository. -#LockDir=/var/lock/cvs - -# Set `TopLevelAdmin' to `yes' to create a CVS directory at the top -# level of the new working directory when using the `cvs checkout' -# command. -#TopLevelAdmin=no - -# Set `LogHistory' to `all' or `TOFEWGCMAR' to log all transactions to the -# history file, or a subset as needed (ie `TMAR' logs all write operations) -#LogHistory=TOFEWGCMAR diff --git a/CVSROOT/cvswrappers b/CVSROOT/cvswrappers deleted file mode 100644 index 0accaf1b1..000000000 --- a/CVSROOT/cvswrappers +++ /dev/null @@ -1,23 +0,0 @@ -# This file affects handling of files based on their names. -# -# The -t/-f options allow one to treat directories of files -# as a single file, or to transform a file in other ways on -# its way in and out of CVS. -# -# The -m option specifies whether CVS attempts to merge files. -# -# The -k option specifies keyword expansion (e.g. -kb for binary). -# -# Format of wrapper file ($CVSROOT/CVSROOT/cvswrappers or .cvswrappers) -# -# wildcard [option value][option value]... -# -# where option is one of -# -f from cvs filter value: path to filter -# -t to cvs filter value: path to filter -# -m update methodology value: MERGE or COPY -# -k expansion mode value: b, o, kkv, &c -# -# and value is a single-quote delimited value. -# For example: -#*.gif -k 'b' diff --git a/CVSROOT/editinfo b/CVSROOT/editinfo deleted file mode 100644 index d78886c15..000000000 --- a/CVSROOT/editinfo +++ /dev/null @@ -1,21 +0,0 @@ -# The "editinfo" file is used to allow verification of logging -# information. It works best when a template (as specified in the -# rcsinfo file) is provided for the logging procedure. Given a -# template with locations for, a bug-id number, a list of people who -# reviewed the code before it can be checked in, and an external -# process to catalog the differences that were code reviewed, the -# following test can be applied to the code: -# -# Making sure that the entered bug-id number is correct. -# Validating that the code that was reviewed is indeed the code being -# checked in (using the bug-id number or a seperate review -# number to identify this particular code set.). -# -# If any of the above test failed, then the commit would be aborted. -# -# Actions such as mailing a copy of the report to each reviewer are -# better handled by an entry in the loginfo file. -# -# One thing that should be noted is the the ALL keyword is not -# supported. There can be only one entry that matches a given -# repository. diff --git a/CVSROOT/loginfo b/CVSROOT/loginfo deleted file mode 100644 index 20957ed84..000000000 --- a/CVSROOT/loginfo +++ /dev/null @@ -1,29 +0,0 @@ -# The "loginfo" file controls where "cvs commit" log information -# is sent. The first entry on a line is a regular expression which must match -# the directory that the change is being made to, relative to the -# $CVSROOT. If a match is found, then the remainder of the line is a filter -# program that should expect log information on its standard input. -# -# If the repository name does not match any of the regular expressions in this -# file, the "DEFAULT" line is used, if it is specified. -# -# If the name ALL appears as a regular expression it is always used -# in addition to the first matching regex or DEFAULT. -# -# You may specify a format string as part of the -# filter. The string is composed of a `%' followed -# by a single format character, or followed by a set of format -# characters surrounded by `{' and `}' as separators. The format -# characters are: -# -# s = file name -# V = old version number (pre-checkin) -# v = new version number (post-checkin) -# -# For example: -#DEFAULT (echo ""; id; echo %s; date; cat) >> $CVSROOT/CVSROOT/commitlog -# or -#DEFAULT (echo ""; id; echo %{sVv}; date; cat) >> $CVSROOT/CVSROOT/commitlog -^sm5$ /cvsroot/sitedocs/CVSROOT/cvstools/syncmail -u %{sVv} smartmontools-cvs@lists.sourceforge.net -^sm5/[_a-zA-Z0-9]*$ /cvsroot/sitedocs/CVSROOT/cvstools/syncmail -u %{sVv} smartmontools-cvs@lists.sourceforge.net -^www$ /cvsroot/sitedocs/CVSROOT/cvstools/syncmail -u %{sVv} smartmontools-cvs@lists.sourceforge.net diff --git a/CVSROOT/modules b/CVSROOT/modules deleted file mode 100644 index cb9e9efc9..000000000 --- a/CVSROOT/modules +++ /dev/null @@ -1,26 +0,0 @@ -# Three different line formats are valid: -# key -a aliases... -# key [options] directory -# key [options] directory files... -# -# Where "options" are composed of: -# -i prog Run "prog" on "cvs commit" from top-level of module. -# -o prog Run "prog" on "cvs checkout" of module. -# -e prog Run "prog" on "cvs export" of module. -# -t prog Run "prog" on "cvs rtag" of module. -# -u prog Run "prog" on "cvs update" of module. -# -d dir Place module in directory "dir" instead of module name. -# -l Top-level directory only -- do not recurse. -# -# NOTE: If you change any of the "Run" options above, you'll have to -# release and re-checkout any working directories of these modules. -# -# And "directory" is a path to a directory relative to $CVSROOT. -# -# The "-a" option specifies an alias. An alias is interpreted as if -# everything on the right of the "-a" had been typed on the command line. -# -# You can encode a module within a module by using the special '&' -# character to interpose another module into the current module. This -# can be useful for creating a module that consists of many directories -# spread out over the entire source repository. diff --git a/CVSROOT/notify b/CVSROOT/notify deleted file mode 100644 index 34f0bc288..000000000 --- a/CVSROOT/notify +++ /dev/null @@ -1,12 +0,0 @@ -# The "notify" file controls where notifications from watches set by -# "cvs watch add" or "cvs edit" are sent. The first entry on a line is -# a regular expression which is tested against the directory that the -# change is being made to, relative to the $CVSROOT. If it matches, -# then the remainder of the line is a filter program that should contain -# one occurrence of %s for the user to notify, and information on its -# standard input. -# -# "ALL" or "DEFAULT" can be used in place of the regular expression. -# -# For example: -#ALL mail %s -s "CVS notification" diff --git a/CVSROOT/rcsinfo b/CVSROOT/rcsinfo deleted file mode 100644 index 49e59f4d0..000000000 --- a/CVSROOT/rcsinfo +++ /dev/null @@ -1,13 +0,0 @@ -# The "rcsinfo" file is used to control templates with which the editor -# is invoked on commit and import. -# -# The first entry on a line is a regular expression which is tested -# against the directory that the change is being made to, relative to the -# $CVSROOT. For the first match that is found, then the remainder of the -# line is the name of the file that contains the template. -# -# If the repository name does not match any of the regular expressions in this -# file, the "DEFAULT" line is used, if it is specified. -# -# If the name "ALL" appears as a regular expression it is always used -# in addition to the first matching regex or "DEFAULT". diff --git a/CVSROOT/taginfo b/CVSROOT/taginfo deleted file mode 100644 index 274a46dd5..000000000 --- a/CVSROOT/taginfo +++ /dev/null @@ -1,20 +0,0 @@ -# The "taginfo" file is used to control pre-tag checks. -# The filter on the right is invoked with the following arguments: -# -# $1 -- tagname -# $2 -- operation "add" for tag, "mov" for tag -F, and "del" for tag -d -# $3 -- repository -# $4-> file revision [file revision ...] -# -# A non-zero exit of the filter program will cause the tag to be aborted. -# -# The first entry on a line is a regular expression which is tested -# against the directory that the change is being committed to, relative -# to the $CVSROOT. For the first match that is found, then the remainder -# of the line is the name of the filter to run. -# -# If the repository name does not match any of the regular expressions in this -# file, the "DEFAULT" line is used, if it is specified. -# -# If the name "ALL" appears as a regular expression it is always used -# in addition to the first matching regex or "DEFAULT". diff --git a/CVSROOT/verifymsg b/CVSROOT/verifymsg deleted file mode 100644 index 86f747ce2..000000000 --- a/CVSROOT/verifymsg +++ /dev/null @@ -1,21 +0,0 @@ -# The "verifymsg" file is used to allow verification of logging -# information. It works best when a template (as specified in the -# rcsinfo file) is provided for the logging procedure. Given a -# template with locations for, a bug-id number, a list of people who -# reviewed the code before it can be checked in, and an external -# process to catalog the differences that were code reviewed, the -# following test can be applied to the code: -# -# Making sure that the entered bug-id number is correct. -# Validating that the code that was reviewed is indeed the code being -# checked in (using the bug-id number or a seperate review -# number to identify this particular code set.). -# -# If any of the above test failed, then the commit would be aborted. -# -# Actions such as mailing a copy of the report to each reviewer are -# better handled by an entry in the loginfo file. -# -# One thing that should be noted is the the ALL keyword is not -# supported. There can be only one entry that matches a given -# repository. diff --git a/sm5/os_win32/smartctl_vc6.dsp b/sm5/os_win32/smartctl_vc6.dsp new file mode 100644 index 000000000..516623bb4 --- /dev/null +++ b/sm5/os_win32/smartctl_vc6.dsp @@ -0,0 +1,244 @@ +# Microsoft Developer Studio Project File - Name="smartctl_vc6" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** NICHT BEARBEITEN ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=smartctl_vc6 - Win32 Debug +!MESSAGE Dies ist kein g�ltiges Makefile. Zum Erstellen dieses Projekts mit NMAKE +!MESSAGE verwenden Sie den Befehl "Makefile exportieren" und f�hren Sie den Befehl +!MESSAGE +!MESSAGE NMAKE /f "smartctl_vc6.mak". +!MESSAGE +!MESSAGE Sie k�nnen beim Ausf�hren von NMAKE eine Konfiguration angeben +!MESSAGE durch Definieren des Makros CFG in der Befehlszeile. Zum Beispiel: +!MESSAGE +!MESSAGE NMAKE /f "smartctl_vc6.mak" CFG="smartctl_vc6 - Win32 Debug" +!MESSAGE +!MESSAGE F�r die Konfiguration stehen zur Auswahl: +!MESSAGE +!MESSAGE "smartctl_vc6 - Win32 Release" (basierend auf "Win32 (x86) Console Application") +!MESSAGE "smartctl_vc6 - Win32 Debug" (basierend auf "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "smartctl_vc6 - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "smartctl.r" +# PROP Intermediate_Dir "smartctl.r" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /W3 /GX /O1 /I "." /I ".." /I "..\posix" /D "NDEBUG" /D "HAVE_CONFIG_H" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD BASE RSC /l 0x407 /d "NDEBUG" +# ADD RSC /l 0x407 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /out:"smartctl.exe" + +!ELSEIF "$(CFG)" == "smartctl_vc6 - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "smartctl.d" +# PROP Intermediate_Dir "smartctl.d" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "." /I ".." /I "..\posix" /D "_DEBUG" /D "HAVE_CONFIG_H" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD BASE RSC /l 0x407 /d "_DEBUG" +# ADD RSC /l 0x407 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept + +!ENDIF + +# Begin Target + +# Name "smartctl_vc6 - Win32 Release" +# Name "smartctl_vc6 - Win32 Debug" +# Begin Group "posix" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\posix\getopt.c +# End Source File +# Begin Source File + +SOURCE=..\posix\getopt.h +# End Source File +# Begin Source File + +SOURCE=..\posix\getopt1.c +# End Source File +# Begin Source File + +SOURCE=..\posix\regcomp.c +# PROP Exclude_From_Build 1 +# End Source File +# Begin Source File + +SOURCE=..\posix\regex.c +# ADD CPP /w /W0 +# End Source File +# Begin Source File + +SOURCE=..\posix\regex.h +# End Source File +# Begin Source File + +SOURCE=..\posix\regex_internal.c +# PROP Exclude_From_Build 1 +# End Source File +# Begin Source File + +SOURCE=..\posix\regex_internal.h +# End Source File +# Begin Source File + +SOURCE=..\posix\regexec.c +# PROP Exclude_From_Build 1 +# End Source File +# End Group +# Begin Source File + +SOURCE=..\atacmdnames.cpp +# End Source File +# Begin Source File + +SOURCE=..\atacmdnames.h +# End Source File +# Begin Source File + +SOURCE=..\atacmds.cpp +# End Source File +# Begin Source File + +SOURCE=..\atacmds.h +# End Source File +# Begin Source File + +SOURCE=..\ataprint.cpp +# End Source File +# Begin Source File + +SOURCE=..\ataprint.h +# End Source File +# Begin Source File + +SOURCE=.\config_vc6.h + +!IF "$(CFG)" == "smartctl_vc6 - Win32 Release" + +# Begin Custom Build - Copy $(InputPath) config.h +InputPath=.\config_vc6.h + +"config.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + copy $(InputPath) config.h + +# End Custom Build + +!ELSEIF "$(CFG)" == "smartctl_vc6 - Win32 Debug" + +# Begin Custom Build - Copy $(InputPath) config.h +InputPath=.\config_vc6.h + +"config.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + copy $(InputPath) config.h + +# End Custom Build + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=..\extern.h +# End Source File +# Begin Source File + +SOURCE=..\int64.h +# End Source File +# Begin Source File + +SOURCE=..\knowndrives.cpp +# End Source File +# Begin Source File + +SOURCE=..\knowndrives.h +# End Source File +# Begin Source File + +SOURCE=..\os_win32.cpp +# End Source File +# Begin Source File + +SOURCE=..\scsiata.cpp +# End Source File +# Begin Source File + +SOURCE=..\scsiata.h +# End Source File +# Begin Source File + +SOURCE=..\scsicmds.cpp +# End Source File +# Begin Source File + +SOURCE=..\scsicmds.h +# End Source File +# Begin Source File + +SOURCE=..\scsiprint.cpp +# End Source File +# Begin Source File + +SOURCE=..\scsiprint.h +# End Source File +# Begin Source File + +SOURCE=..\smartctl.cpp +# End Source File +# Begin Source File + +SOURCE=..\smartctl.h +# End Source File +# Begin Source File + +SOURCE=.\syslog.h +# End Source File +# Begin Source File + +SOURCE=..\utility.cpp +# End Source File +# Begin Source File + +SOURCE=..\utility.h +# End Source File +# End Target +# End Project diff --git a/sm5/os_win32/smartd_vc6.dsp b/sm5/os_win32/smartd_vc6.dsp new file mode 100644 index 000000000..6610ae6e8 --- /dev/null +++ b/sm5/os_win32/smartd_vc6.dsp @@ -0,0 +1,268 @@ +# Microsoft Developer Studio Project File - Name="smartd_vc6" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** NICHT BEARBEITEN ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=smartd_vc6 - Win32 Debug +!MESSAGE Dies ist kein g�ltiges Makefile. Zum Erstellen dieses Projekts mit NMAKE +!MESSAGE verwenden Sie den Befehl "Makefile exportieren" und f�hren Sie den Befehl +!MESSAGE +!MESSAGE NMAKE /f "smartd_vc6.mak". +!MESSAGE +!MESSAGE Sie k�nnen beim Ausf�hren von NMAKE eine Konfiguration angeben +!MESSAGE durch Definieren des Makros CFG in der Befehlszeile. Zum Beispiel: +!MESSAGE +!MESSAGE NMAKE /f "smartd_vc6.mak" CFG="smartd_vc6 - Win32 Debug" +!MESSAGE +!MESSAGE F�r die Konfiguration stehen zur Auswahl: +!MESSAGE +!MESSAGE "smartd_vc6 - Win32 Release" (basierend auf "Win32 (x86) Console Application") +!MESSAGE "smartd_vc6 - Win32 Debug" (basierend auf "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "smartd_vc6 - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "smartd.r" +# PROP Intermediate_Dir "smartd.r" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /W3 /GX /O1 /I "." /I ".." /I "..\posix" /D "NDEBUG" /D "HAVE_CONFIG_H" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD BASE RSC /l 0x407 /d "NDEBUG" +# ADD RSC /l 0x407 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /out:"smartd.exe" + +!ELSEIF "$(CFG)" == "smartd_vc6 - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "smartd.d" +# PROP Intermediate_Dir "smartd.d" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "." /I ".." /I "..\posix" /D "_DEBUG" /D "HAVE_CONFIG_H" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD BASE RSC /l 0x407 /d "_DEBUG" +# ADD RSC /l 0x407 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept + +!ENDIF + +# Begin Target + +# Name "smartd_vc6 - Win32 Release" +# Name "smartd_vc6 - Win32 Debug" +# Begin Group "posix" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\posix\getopt.c +# End Source File +# Begin Source File + +SOURCE=..\posix\getopt.h +# End Source File +# Begin Source File + +SOURCE=..\posix\getopt1.c +# End Source File +# Begin Source File + +SOURCE=..\posix\regcomp.c +# PROP Exclude_From_Build 1 +# End Source File +# Begin Source File + +SOURCE=..\posix\regex.c +# ADD CPP /w /W0 +# End Source File +# Begin Source File + +SOURCE=..\posix\regex.h +# End Source File +# Begin Source File + +SOURCE=..\posix\regex_internal.c +# PROP Exclude_From_Build 1 +# End Source File +# Begin Source File + +SOURCE=..\posix\regex_internal.h +# End Source File +# Begin Source File + +SOURCE=..\posix\regexec.c +# PROP Exclude_From_Build 1 +# End Source File +# End Group +# Begin Source File + +SOURCE=..\atacmdnames.cpp +# End Source File +# Begin Source File + +SOURCE=..\atacmdnames.h +# End Source File +# Begin Source File + +SOURCE=..\atacmds.cpp +# End Source File +# Begin Source File + +SOURCE=..\atacmds.h +# End Source File +# Begin Source File + +SOURCE=..\ataprint.cpp +# End Source File +# Begin Source File + +SOURCE=..\ataprint.h +# End Source File +# Begin Source File + +SOURCE=.\config_vc6.h + +!IF "$(CFG)" == "smartd_vc6 - Win32 Release" + +# Begin Custom Build - Copy $(InputPath) config.h +InputPath=.\config_vc6.h + +"config.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + copy $(InputPath) config.h + +# End Custom Build + +!ELSEIF "$(CFG)" == "smartd_vc6 - Win32 Debug" + +# Begin Custom Build - Copy $(InputPath) config.h +InputPath=.\config_vc6.h + +"config.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + copy $(InputPath) config.h + +# End Custom Build + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=.\daemon_win32.cpp +# End Source File +# Begin Source File + +SOURCE=.\daemon_win32.h +# End Source File +# Begin Source File + +SOURCE=..\extern.h +# End Source File +# Begin Source File + +SOURCE=.\hostname_win32.cpp +# End Source File +# Begin Source File + +SOURCE=.\hostname_win32.h +# End Source File +# Begin Source File + +SOURCE=..\int64.h +# End Source File +# Begin Source File + +SOURCE=..\knowndrives.cpp +# End Source File +# Begin Source File + +SOURCE=..\knowndrives.h +# End Source File +# Begin Source File + +SOURCE=..\os_win32.cpp +# End Source File +# Begin Source File + +SOURCE=..\scsiata.cpp +# End Source File +# Begin Source File + +SOURCE=..\scsiata.h +# End Source File +# Begin Source File + +SOURCE=..\scsicmds.cpp +# End Source File +# Begin Source File + +SOURCE=..\scsicmds.h +# End Source File +# Begin Source File + +SOURCE=..\scsiprint.cpp +# End Source File +# Begin Source File + +SOURCE=..\scsiprint.h +# End Source File +# Begin Source File + +SOURCE=..\smartctl.h +# End Source File +# Begin Source File + +SOURCE=..\smartd.cpp +# End Source File +# Begin Source File + +SOURCE=..\smartd.h +# End Source File +# Begin Source File + +SOURCE=.\syslog.h +# End Source File +# Begin Source File + +SOURCE=.\syslog_win32.cpp +# End Source File +# Begin Source File + +SOURCE=..\utility.cpp +# End Source File +# Begin Source File + +SOURCE=..\utility.h +# End Source File +# End Target +# End Project diff --git a/sm5/os_win32/smartmontools_vc6.dsw b/sm5/os_win32/smartmontools_vc6.dsw new file mode 100644 index 000000000..76e451e63 --- /dev/null +++ b/sm5/os_win32/smartmontools_vc6.dsw @@ -0,0 +1,53 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNUNG: DIESE ARBEITSBEREICHSDATEI DARF NICHT BEARBEITET ODER GEL�SCHT WERDEN! + +############################################################################### + +Project: "smartctl_vc6"=.\smartctl_vc6.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "smartd_vc6"=.\smartd_vc6.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "syslogevt_vc6"=.\syslogevt_vc6.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/sm5/os_win32/syslogevt_vc6.dsp b/sm5/os_win32/syslogevt_vc6.dsp new file mode 100644 index 000000000..3f8a8af44 --- /dev/null +++ b/sm5/os_win32/syslogevt_vc6.dsp @@ -0,0 +1,148 @@ +# Microsoft Developer Studio Project File - Name="syslogevt_vc6" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** NICHT BEARBEITEN ** + +# TARGTYPE "Win32 (x86) Console Application" 0x0103 + +CFG=syslogevt_vc6 - Win32 Debug +!MESSAGE Dies ist kein g�ltiges Makefile. Zum Erstellen dieses Projekts mit NMAKE +!MESSAGE verwenden Sie den Befehl "Makefile exportieren" und f�hren Sie den Befehl +!MESSAGE +!MESSAGE NMAKE /f "syslogevt_vc6.mak". +!MESSAGE +!MESSAGE Sie k�nnen beim Ausf�hren von NMAKE eine Konfiguration angeben +!MESSAGE durch Definieren des Makros CFG in der Befehlszeile. Zum Beispiel: +!MESSAGE +!MESSAGE NMAKE /f "syslogevt_vc6.mak" CFG="syslogevt_vc6 - Win32 Debug" +!MESSAGE +!MESSAGE F�r die Konfiguration stehen zur Auswahl: +!MESSAGE +!MESSAGE "syslogevt_vc6 - Win32 Release" (basierend auf "Win32 (x86) Console Application") +!MESSAGE "syslogevt_vc6 - Win32 Debug" (basierend auf "Win32 (x86) Console Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "syslogevt_vc6 - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "syslogevt.r" +# PROP Intermediate_Dir "syslogevt.r" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /MD /W3 /GX /O1 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c +# ADD BASE RSC /l 0x407 /d "NDEBUG" +# ADD RSC /l 0x407 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 $(IntDir)\syslogevt.res kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /out:"syslogevt.exe" +# SUBTRACT LINK32 /pdb:none +# Begin Special Build Tool +IntDir=.\syslogevt.r +SOURCE="$(InputPath)" +PreLink_Desc=Compiling Resources +PreLink_Cmds=rc $(IntDir)\syslogevt.rc +# End Special Build Tool + +!ELSEIF "$(CFG)" == "syslogevt_vc6 - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "syslogevt.d" +# PROP Intermediate_Dir "syslogevt.d" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD BASE RSC /l 0x407 /d "_DEBUG" +# ADD RSC /l 0x407 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 $(IntDir)\syslogevt.res kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# Begin Special Build Tool +IntDir=.\syslogevt.d +SOURCE="$(InputPath)" +PreLink_Desc=Compiling Resources +PreLink_Cmds=rc $(IntDir)\syslogevt.rc +# End Special Build Tool + +!ENDIF + +# Begin Target + +# Name "syslogevt_vc6 - Win32 Release" +# Name "syslogevt_vc6 - Win32 Debug" +# Begin Source File + +SOURCE=.\syslogevt.c +# End Source File +# Begin Source File + +SOURCE=.\syslogevt.mc + +!IF "$(CFG)" == "syslogevt_vc6 - Win32 Release" + +# Begin Custom Build - Compiling Messages +IntDir=.\syslogevt.r +InputPath=.\syslogevt.mc + +BuildCmds= \ + mc -r $(IntDir) syslogevt.mc + +"$(IntDir)\syslogevt.rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) + +"$(IntDir)\msg00001.bin" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) + +"syslogevt.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) +# End Custom Build + +!ELSEIF "$(CFG)" == "syslogevt_vc6 - Win32 Debug" + +# Begin Custom Build - Compiling Messages +IntDir=.\syslogevt.d +InputPath=.\syslogevt.mc + +BuildCmds= \ + mc -r $(IntDir) syslogevt.mc + +"$(IntDir)\syslogevt.rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) + +"$(IntDir)\msg00001.bin" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) + +"syslogevt.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) +# End Custom Build + +!ENDIF + +# End Source File +# End Target +# End Project diff --git a/sm5/smartmontools.spec b/sm5/smartmontools.spec new file mode 100644 index 000000000..3b4104f72 --- /dev/null +++ b/sm5/smartmontools.spec @@ -0,0 +1,1976 @@ +Release: 1 +Summary: smartmontools - for monitoring S.M.A.R.T. disks and devices +Summary(cs): smartmontools - pro monitorov�n� S.M.A.R.T. disk� a za��zen� +Summary(de): smartmontools - zur �berwachung von S.M.A.R.T.-Platten und-Ger�ten +Summary(es): smartmontools - para el seguimiento de discos y dispositivos S.M.A.R.T. +Summary(fr): smartmontools - pour le suivi des disques et instruments S.M.A.R.T. +Summary(pt): smartmontools - para monitorar discos e dispositivos S.M.A.R.T. +Summary(it): smartmontools - per monitare dischi e dispositivi S.M.A.R.T. +Summary(pl): Monitorowanie i kontrola dysk�w u�ywaj�� S.M.A.R.T. +Name: smartmontools +Version: 5.38 +License: GPL +Group: Applications/System +Group(de): Applikationen/System +Group(es): Aplicaciones/Sistema +Group(fr): Applications/Syst�me +Group(pt): Aplicativos/Sistema +Group(it): Applicazioni/Sistemi +Source0: %{name}-%{version}.tar.gz +URL: http://smartmontools.sourceforge.net/ +Prereq: /sbin/chkconfig +BuildRoot: %{_tmppath}/%{name}-%{version}-root +Obsoletes: smartctl +Obsoletes: smartd +Obsoletes: ucsc-smartsuite +Obsoletes: smartsuite +Packager: Bruce Allen <smartmontools-support@lists.sourceforge.net> + +%define mandrake %(test ! -f /etc/mandrake-release ; echo $?) +%define suse %(test ! -f /etc/SuSE-release ; echo $?) +%define redhat %(test ! -f /etc/redhat-release ; echo $?) +%define fedora %(test ! -f /etc/fedora-release ; echo $?) +%if %{fedora} + %define redhat 1 +%endif + +# Source code can be found at: +# http://ftp1.sourceforge.net/smartmontools/smartmontools-%{version}-%{release}.tar.gz + +# CVS ID of this file is: +# $Id: smartmontools.spec,v 1.171 2006/12/20 21:59:04 chrfranke Exp $ + +# Copyright (C) 2002-6 Bruce Allen <smartmontools-support@lists.sourceforge.net> +# Home page: http://smartmontools.sourceforge.net/ +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 2, or (at your option) any later +# version. +# +# You should have received a copy of the GNU General Public License (for +# example COPYING); if not, write to the Free Software Foundation, Inc., 675 +# Mass Ave, Cambridge, MA 02139, USA. +# +# This 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. http://ssrc.soe.ucsc.edu/ + + +%description +smartmontools controls and monitors storage devices using the +Self-Monitoring, Analysis and Reporting Technology System (S.M.A.R.T.) +built into ATA and SCSI Hard Drives. This is used to check the +reliability of the hard drive and to predict drive failures. The suite +is derived from the smartsuite package, and contains two utilities. The +first, smartctl, is a command line utility designed to perform simple +S.M.A.R.T. tasks. The second, smartd, is a daemon that periodically +monitors smart status and reports errors to syslog. The package is +compatible with the ATA/ATAPI-5 specification. Future releases will be +compatible with the ATA/ATAPI-6 andATA/ATAPI-7 specifications. The +package is intended to incorporate as much "vendor specific" and +"reserved" information as possible about disk drives. man smartctl and +man smartd will provide more information. This RPM file is compatible +with all RedHat releases back to at least 6.2 and should work OK on any +modern linux distribution. The most recent versions of this package and +additional information can be found at the URL: +http://smartmontools.sourceforge.net/ + +%description -l cs +smartmontools ��d� a monitoruj� za��zen� pro ukl�d�n� dat za pou�it� +technologie automatick�ho monitorov�n�, anal�zy a hl�en� +(Self-Monitoring, Analysis and Reporting Technology System - +S.M.A.R.T.) vestav�n�ho do pevn�ch disk� ATA a SCSI. Pou��v� se ke +kontrole pou�itelnosti pevn�ho disku a p�edv�d�n� hav�ri� disk�. +N�stroje jsou odvozeny od bal��ku smartsuite a obsahuj� dva programy. +Prvn�, smartctl, je n�stroj pro prov�d�n� jednoduch�ch S.M.A.R.T. �loh +na p��kazov� ��dce. Druh�, smartd, je d�mon, kter� periodicky +monitoruje stav a hl�s� chyby do syst�mov�ho protokolu. Bal��ek je +kompatibiln� se specifikac� ATA/ATAPI-5. Dal�� verze budou +kompatibiln� se specifikacemi ATA/ATAPI-6 a ATA/ATAPI-7. Bal��ek je +navr�en tak, aby pokryl co nejv�ce polo�ek s informacemi "z�visl� na +v�robci" a "rezervov�no". V�ce informac� z�sk�te pomoc� man smartctl a +man smartd. Tento RPM bal��ek je kompatibiln� se v�emi verzemi RedHatu +a m�l by fungovat na v�ech modern�ch distribuc�ch Linuxu. Aktu�ln� +verzi najdete na URL http://smartmontools.sourceforge.net/ + +%description -l de +Die smartmontools steuern und �berwachen Speicherger�te mittels des +S.M.A.R.T.-Systems (Self-Monitoring, Analysis and Reporting Technology, +Technologie zur Selbst-�berwachung, Analyse und Berichterstellung), das +in ATA- und SCSI-Festplatten eingesetzt wird. Sie werden benutzt, um +die Zuverl�ssigkeit der Festplatte zu pr�fen und Plattenfehler +vorherzusagen. Die Suite wurde vom smartsuite-Paket abgeleitet und +enth�lt zwei Dienstprogramme. Das erste, smartctl, ist ein +Kommandozeilentool, das einfache S.M.A.R.T. Aufgaben ausf�hrt. Das +zweite, smartd, ist ein Daemon, der periodisch den S.M.A.R.T.-Status +�berwacht und Fehler ins Syslog protokolliert. Das Paket ist zur +ATA/ATAPI-5 Spezifikation kompatibel. Zuk�nftige Versionen werden auch +die ATA/ATAPI-6 und ATA/ATAPI-7 Spezifikationen umsetzen. Das Paket +versucht, so viele "herstellerspezifische" und "reservierte" Information +�ber Plattenlaufwerke wie m�glich bereitzustellen. man smartctl und man +smartd liefern mehr Informationen �ber den Einsatz. Dieses RPM ist zu +allen RedHat-Versionen ab sp�testens 6.2 kompatibel und sollte unter +jedem modernen Linux arbeiten. Die aktuellsten Versionen dieses Pakets +und zus�tzliche Informationen sind zu finden unter der URL: +http://smartmontools.sourceforge.net/ + +%description -l es +smartmontools controla y hace el seguimiento de dispositivos de +almacenamiento usando el Self-Monitoring, Analysis and Reporting +Technology System (S.M.A.R.T.) incorporado en discos duros ATA y SCSI. +Es usado para asegurar la fiabilidad de discos duros y predecir averias. +El conjunto de programas proviene del conjunto smartsuite y contiene dos +utilidades. La primera, smartctl, es una utilidad command-line hecha +para hacer operaciones S.M.A.R.T. sencillas. La segunda, smartd, es un +programa que periodicamente chequea el estatus smart e informa de +errores a syslog. Estos programas son compatibles con el sistema +ATA/ATAPI-5. Futuras versiones seran compatibles con los sistemas +ATA/ATAPI-6 y ATA/ATAPI-7. Este conjunto de programas tiene el +proposito de incorporar la mayor cantidad posible de informacion +reservada y especifica de discos duros. Los comandos 'man smartctl' y +'man smartd' contienen mas informacion. Este fichero RPM es compatible +con todas las versiones de RedHat a partir de la 6.2 y posiblemente +funcionaran sin problemas en cualquier distribucion moderna de linux. +La version mas reciente de estos programas ademas de informacion +adicional pueden encontrarse en: http://smartmontools.sourceforge.net/ + +%description -l fr +smartmontools contr�le et fait le suivi de p�riph�riques de stockage +utilisant le syst�me Self-Monitoring, Analysis and Reporting +Technology (S.M.A.R.T) int�gr�dans les disques durs ATA et SCSI. Ce +syst�me est utilis� pour v�rifier la fiabilit� du disque dur et pr�dire +les d�faillances du lecteur. La suite logicielle d�rive du paquet +smartsuite et contient deux utilitaires. Le premier, smartctl, +fonctionne en ligne de commande et permet de r�aliser des t�ches +S.M.A.R.T. simples. Le second, smartd, est un d�mon qui fait +p�riodiquement le suivi du statut smart et transmet les erreurs au +syslog. Ce paquet est compatible avec la sp�cification ATA/ATAPI-5. +Les prochaines versions seront compatibles avec les sp�cifications +ATA/ATAPI-6 et ATA/ATAPI-7. Ce paquet tente d'incorporer le plus +d'informations possible sur les disques durs qu'elles soient sp�cifiques +au constructeur ("vendor specific") ou r�serv�es ("reserved"). man +smartctl et man smartd donnent plus de renseignements. Ce fichier RPM +est compatible avec toutes les versions de RedHat v6.2 et ult�rieures, +et devrait fonctionner sur toutes les distributions r�centes de Linux. +Les derni�res versions de ce paquet et des informations suppl�mentaires +peuvent �tre trouv�es � l'adresse URL: +http://smartmontools.sourceforge.net/ + +%description -l pt +smartmontools controla e monitora dispositivos de armazenamento +utilizando o recurso Self-Monitoring, Analysis and Reporting Technology +System (S.M.A.R.T.) integrado nos discos r�gidos ATA e SCSI, cuja +finalidade � verificar a confiabilidade do disco r�gido e prever falhas +da unidade. A suite � derivada do pacote smartsuite, e cont�m dois +utilit�rios. O primeiro, smartctl, � um utilit�rio de linha de comando +projetado para executar tarefas simples de S.M.A.R.T. O segundo, +smartd, � um daemon que monitora periodicamente estados do smart e +reporta erros para o syslog. O pacote � compat�vel com a especifica��o +ATA/ATAPI-5. Futuras vers�es ser�o compat�veis com as especifica��es +ATA/ATAPI-6 e ATA/ATAPI-7. O pacote pretende incorporar o maior n�mero +poss�vel de informa��es "espec�ficas do fabricante" e "reservadas" sobre +unidades de disco. man smartctl e man smartd cont�m mais informa��es. +Este arquivo RPM � compat�vel com todas as vers�es do RedHat a partir da +6.2 e dever� funcionar perfeitamente em qualquer distribui��o moderna do +Linux. As mais recentes vers�es deste pacote e informa��es adicionais +podem ser encontradas em http://smartmontools.sourceforge.net/ + +%description -l it +smartmontools controlla e monitora dischi che usano il "Self-Monitoring, +Analysis and Reporting Technology System" (S.M.A.R.T.), in hard drive +ATA e SCSI. Esso � usato per controllare l'affidabilit� dei drive e +predire i guasti. La suite � derivata dal package smartsuite e contiene +due utility. La prima, smartctl, � una utility a linea di comando +progettata per eseguire semplici task S.M.A.R.T.. La seconda, smartd, � +un daemon che periodicamente monitora lo stato di smart e riporta errori +al syslog. Il package � compatibile con le specifiche ATA/ATAPI-6 e +ATA/ATAPI-7. Il package vuole incorporare tutte le possibili +informazioni riservate e "vendor specific" sui dischi. man smartctl e +man smartd danno pi� informazioni. Questo file RPM � compatibile con +tutte le release di RedHat, almeno dalla 6.2 e dovrebbe funzionare bene +su ogni moderna distribuzione di linux. Le versioni pi� recenti di +questo package e informazioni addizionali possono essere trovate al sito +http://smartmontools.sourceforge.net/ + +%description -l pl +Pakiet zawiera dwa programy (smartctl oraz smartd) do kontroli i +monitorowania system�w przechowywania danych za pomoc� S.M.A.R.T - +systemu wbudowanego w wi�kszo�� nowych dysk�w ATA oraz SCSI. Pakiet +pochodzi od oprogramowania smartsuite i wspiera dyski ATA/ATAPI-5. + +# The following sections are executed by the SRPM file +%prep + +%setup -q + +%build + %configure + make + +%install + rm -rf $RPM_BUILD_ROOT + rm -rf %{_buildroot} + %makeinstall + rm -f examplescripts/Makefile* + %if %{suse} + mkdir -p $RPM_BUILD_ROOT%{_defaultdocdir} + mv $RPM_BUILD_ROOT/usr/share/doc/%{name}-%{version} $RPM_BUILD_ROOT%{_defaultdocdir}/%{name} + ln -s ../../etc/rc.d/init.d/smartd $RPM_BUILD_ROOT%{_sbindir}/rcsmartd + %endif + +%files + %defattr(-,root,root) + %attr(755,root,root) %{_sbindir}/smartd + %attr(755,root,root) %{_sbindir}/smartctl + %if %{suse} + %attr(755,root,root) %{_sbindir}/rcsmartd + %endif + %attr(755,root,root) /etc/rc.d/init.d/smartd + %attr(644,root,root) %{_mandir}/man8/smartctl.8* + %attr(644,root,root) %{_mandir}/man8/smartd.8* + %attr(644,root,root) %{_mandir}/man5/smartd.conf.5* + %doc AUTHORS CHANGELOG COPYING INSTALL NEWS README TODO WARNINGS smartd.conf examplescripts + %config(noreplace) %{_sysconfdir}/smartd.conf + +%clean + rm -rf $RPM_BUILD_ROOT + rm -rf %{_buildroot} + rm -rf %{_builddir}/%{name}-%{version} + +# The following are executed only by the binary RPM at install/uninstall + +# since this installs the gzipped documentation files, remove +# non-gzipped ones of the same name. + +# run before installation. Passed "1" the first time package installed, else a larger number +%pre +if [ -f /usr/share/man/man8/smartctl.8 ] ; then + echo "You MUST delete (by hand) the outdated file /usr/share/man/man8/smartctl.8 to read the new manual page for smartctl." +fi +if [ -f /usr/share/man/man8/smartd.8 ] ; then + echo "You MUST delete (by hand) the outdated file /usr/share/man/man8/smartd.8 to read the new manual page for smartd." +fi +if [ -f /usr/share/man/man5/smartd.conf.5 ] ; then + echo "You MUST delete (by hand) the outdated file /usr/share/man/man5/smartd.conf.5 to read the new manual page for smartd.conf" +fi + +if [ ! -f /etc/smartd.conf ]; then + echo "Note that you can use a configuration file /etc/smartd.conf to control the" + echo "startup behavior of the smartd daemon. See man 8 smartd for details." +fi + +# run after installation. Passed "1" the first time package installed, else a larger number +%post +# if smartd is already running, restart it with the new daemon +if [ -f /var/lock/subsys/smartd ]; then + /etc/rc.d/init.d/smartd restart 1>&2 + echo "Restarted smartd services" +else +# else tell the user how to start it + echo "Run \"/etc/rc.d/init.d/smartd start\" to start smartd service now." +fi + +# Now see if we should tell user to set service to start on boot +/sbin/chkconfig --list smartd > /dev/null 2> /dev/null +printmessage=$? + +if [ $printmessage -ne 0 ] ; then + echo "Run \"/sbin/chkconfig --add smartd\", to start smartd service on system boot" +else + echo "smartd will continue to start up on system boot" +fi + + +# run before uninstallation. Passed zero when the last version uninstalled, else larger +%preun + +# if uninstalling the final copy, stop and remove any links +if [ "$1" = "0" ]; then + if [ -f /var/lock/subsys/smartd ]; then + /etc/rc.d/init.d/smartd stop 1>&2 + echo "Stopping smartd services" + fi + +# see if any links remain, and kill them if they do + /sbin/chkconfig --list smartd > /dev/null 2> /dev/null + notlinked=$? + + if [ $notlinked -eq 0 ]; then + /sbin/chkconfig --del smartd + echo "Removing chkconfig links to smartd boot-time startup scripts" + fi +fi + +# run after uninstallation. Passed zero when the last version uninstalled, else larger +# %postun + +%define date %(echo `LC_ALL="C" date +"%a %b %d %Y"`) + +# Maintainers / Developers Key: +# [BA] Bruce Allen +# [EB] Erik Inge Bols� +# [SB] Stanislav Brabec +# [PC] Peter Cassidy +# [YD] Yuri Dario +# [CD] Capser Dik +# [CF] Christian Franke +# [GF] Guilhem Fr�zou +# [DG] Douglas Gilbert +# [GG] Guido Guenther +# [GK] Geoff Keating +# [DK] David Kirkby +# [KM] Kai M�kisarai +# [EM] Eduard Martinescu +# [FM] Fr�d�ric L. W. Meunier +# [KS] Keiji Sawada +# [DS] David Snyder +# [SS] Sergey Svishchev +# [PW] Phil Williams +# [LW] Leon Woestenberg +# [RZ] Richard Zybert +# [SZ] Sf Zhou + + +%changelog +* Wed Dec 20 2006 Bruce Allen <smartmontools-support@lists.sourceforge.net> + [CF] Windows: Added alternate method for (limited) monitoring of + 3ware controllers by parsing the output of CLI or 3DM. + Either "tw_cli" can be run internally ("/dev/tw_cli/cx/py"), + or data can be read from standard input ("/dev/tw_cli/stdin") + or clipboard ("/dev/tw_cli/clip"). + [DG] Remove linux specific libata detect code; rely on general SAT + code. smartd should now generate a sensible log message for + ATA devices behind a SAT layer on all architectures. + [BA] Increased max line length MAXLINELEN for /etc/smartd.conf from + 128 to 256 characters to handle long strings in + /dev/disk/by-id. Thanks to Martin Krafft. + [PW] Drive database: added missing drives from Seagate Momentus 5400.2 + family + [BA] Finished Christian's fix (next item below) by removing + LINUX_86_64 hack from configure.in. + [CF] Fixed inclusion of PRI?64 macros from inttypes.h. + [CF] Windows: Added WRITE LOG to support selective self tests. + [CF] Fix selective self test log revision number if '-T permissive' + is specified (Tested with Samsung HD401LJ). + [CF] Windows: Fixed int64 printf format for MinGW runtime. + [PW] Drive database: added Seagate Barracuda 7200.10 family, Seagate + Momentus 42 family, Maxtor DiamondMax 60 ATA 66 family, Maxtor + DiamondMax 60 ATA 100 family, and Western Digital Caviar Serial + ATA family + [PW] Drive database: added missing drives from Seagate Barracuda + 7200.9 family, Seagate Barracuda 7200.7 family, Seagate Momentus + 7200.1 family, Toshiba 2.5" HDD family (80 GB and above), Western + Digital Caviar RE Serial ATA family, Hitachi Deskstar 7K80 family, + and Maxtor DiamondMax 4320 Ultra ATA family + [BA] Linux: compile fix for SuSE. Check for existence + of linux/compiler.h and include in os_linux.h if + present. Thanks to SB. + [BA] smartd: DEVICESCAN will now pick up SATA/SAT devices + attached to a SCSI device tree via SAT translation. + Note: this is a bit of a hack. I will document it once + I know if this needs to be Linux only or can have more + general application. + [BA] Added a couple SATA commands to the tables -- thanks DG! + Phil -- how about going through and systematically adding + these new commands to atacmdnames.cpp? + [BA] Linux s86_64: get rid of some compiler warnings on + x86_64 Linux systems. + [CF] Windows: Added missing support for READ_LOG, ABORT_SELFTEST + and CHECK_POWER_STATE for 3ware 9000 controllers. Thanks to + Greg de Valois for implementing this new ioctl in the driver. + [PW] Drive database: added Seagate NL35 SATA family. Thanks to Kai + Harrekilde-Petersen for providing a patch. + [DG] [SCSI, Windows] add SPT interface for NT and later. New device + names are "pd<n>", "sd<l>" and "tape<n>". + [PW] Drive database: added Western Digital Scorpio family, Fujitsu MHV + family, Maxtor MaXLine Pro 500 family, and Maxtor DiamondMax 11 + family + [PW] Drive database: added missing drives from Toshiba 2.5" HDD + (30-60 GB) family, Maxtor DiamondMax 10 family, Seagate Barracuda + 7200.8 family, Fujitsu MHT family, and Maxtor DiamondMax Plus 8 + family + [SB] Added examplescripts/Example4 using powersave-notify. + [SB] More temperature monitoring examples in smartd.conf with DEVICESCAN. + [SB] Minor improvements of SuSE part of init script. + [CF] Drive database: added Samsung P80 series, P120 series, SP8004H + and T series. + [GG] Add CCISS (Compaq Smart Array Controller) support with contributions + from Praveen Chidambaram, Douglas Gilbert, Guido Guenther and Fr�d�ric + BOITEUX + [PW] Drive database: added Hitachi Deskstar T7K250 and Hitachi + Deskstar 7K500 series. Thanks to L. J. Wu for providing a + patch + [PW] Drive database: added Maxtor MaXLine III family, Seagate U7 + family, Seagate ST34321A, FUJITSU MHM2060AT, FUJITSU MHT2040AS, + Western Digital Caviar SE16 family, IBM Travelstar 4GT family, + QUANTUM FIREBALLP KA9.1, QUANTUM FIREBALL SE4.3A, TOSHIBA + MK1032GAX, TOSHIBA MK4026GAX + [PW] Drive database: added missing drives from Western Digital Caviar + SE (Serial ATA) and WD Raptor families + [CF] Windows: Added support for 3ware 9000 controllers using extended + SMART functionality in new 3ware driver. This includes DEVICESCAN + support for at most 2 controllers. Thanks to Greg de Valois from + AMCC/3ware for new driver features, development support and + hardware for testing. + [SZ] smartd: Support HighPoint RocketRAID controller under GNU/linux + [DG] [SCSI] First cut for '-l background' to show background scan + results log + [SZ] smartctl: Support HighPoint RocketRAID controller under GNU/linux + [KS] C++ compile fixes for Solaris with a few cleanups. + [BA] C++ compile fixes for Darwin (thanks to CF) + [CF] Removed old *.c files (now in CVS Attic). + [CF] Added changes for C++ to platform independent and Windows + related files. + [BA] Tagged last .c Version with PRE_MOVE_TO_CPP. Copied *.c,v + to *.cpp,v in CVS repository to preserve history of source + files. Removed sm5_Darwin repository. + [CF] smartctl: Added -n option to skip checks when disk is in + low-power mode. + [CF] Windows: Added alternate system call for power state check + because the PASS THROUGH calls may spin up the disk. + [CF] smartd: Modified power state logging to report state changes + instead of standby condition. + [CF] smartd: Ignore -n directive on scheduled self tests. + [DG] [SCSI] Make start stop cycle counter log page decoding + more robust + [DG] Modify smartctl (but not smartd) to detect probable ATA + devices behind a SAT layer. In the absence of an explicit + device type, change to device type 'sat'. + [DG] Add indication that controller (device) type has been + explicitly set. Preparation for automatic detection of + 'sat' device type unless user specifies a device type. + [SS] NetBSD: Deliver strings from ata_identify_device properly + on little- and big-endian platforms. + [BA] Added published ANSI ATA-7 spec to list of recognized ATA + versions. + [BA] Code janitor: added missing header strings for '-V' option. + [DG] [SATA] Extend 'sat' device type to allow either 12 or 16 byte + variant of the SAT ATA PASS THROUGH SCSI command. Syntax is + '-d sat,<n>' where <n> can be 0, 12 or 16 . The ',<n>' part + is optional. Currently defaults to 16 byte variant but that + could be made platform or even device dependent. + [DG] [SATA] Add new 'sat' device type for SATA disks behind a + SCSI to ATA Translation (SAT) Layer (SATL). Uses the ATA + PASS THROUGH (16) SCSI command thence the generic SCSI + passthrough for each platform. + [CF] Windows: Added script and make targets to create installer + with NSIS (http://nsis.sourceforge.net/) + [CF] Updated hostname and links for new SourceForge CVS service. + [CF] smartd: Added '-W' directive to track temperature changes + and warn if temperature limits are reached. + [CF] Windows: Added IOCTL_ATA_PASS_THROUGH (Win2003, XP SP2) + for commands unsupported by SMART_IOCTL. Added device + specific options to select subset and ordering of the ATA + IOCTLs actually used. These options are specified as + modifiers of the device name (/dev/hd[a-j]:[saic]+) + [CF] Windows: Added support for drives 4-7 (/dev/hd[e-h]) via + SMARTVSE.VXD on Win9x/ME. Thanks to Dariusz Rzonca for + patch and testing. + [DG] [SCSI/SATA linux] from lk 2.6.17 SATA disk identification in + libata will change. Expand LibAta detection to see old + identifier and new variant (VPD page 0x83). + [BA] Identified Attribute 190 for Western Digital disks. This + stores temperature in Celsius, just like Attribute 194. + But it has a failure threshold set to correspond to the + maximum design operating temperature of the disk, which + is 55 Celsius on the WD800JD drives that I studied. + So if this Attribute has 'failed + in the past' this means that the maximum disk operating + temperature has been exceeded. + [GK] Darwin: Add support for AHCI drivers found in Intel-based Macs. + +* Wed Apr 12 2006 Bruce Allen <smartmontools-support@lists.sourceforge.net> + [BA] Linux: smartd/smartctl issue syntax hints to user if 3ware + disk controller present with EITHER 3ware OR AMCC vendor + name, and user syntax incorrect. + [BA] Update copyright dates to 2006. + [DG] [SCSI] Loosen sanity check on Seagate/Hitachi factory information + log page so it is not skipped on recent Seagate SCSI disks. + [CF] Added command 'smartd -q showtests' to list test schedules. + [CF] Added command 'smartctl -P showall MODEL [FIRMWARE]' to list + database entries for specific drives and firmware. + [PW] Automatically set -v 9,minutes and -v 194,unknown for Maxtor + DiamondMax D540X-4G drives. + [DG] [SCSI] suppress various outputs when data fails sanity checks. + Correct 'last n error events' log page indexing. + [DG] [SCSI] changed smartctl exit status to reflect any problems in + the most recent 20 self test logs [Leandro Santi] + [DG] [SCSI] Fix process return value when scsiGetSmartData() fails + in smartctl [Leandro Santi] + [BA] Updated docs and error message to reflect Linux libata + support for smartmontools starting with the 2.6.15 kernel + series. Also init script support for the 'tinysofa' release. + [DG] [SCSI] Mask dpofua bit when changing mode pages. Fix failure + of 'smartctl -l error'. + [EM] Fixed a problem with FreeBSD and 3Ware 'twe' devices + [CF] Fixed a regexp in knowndrives table, added regexp syntax check + via 'smartctl -P showall'. + [CF] Cygwin & Windows: Fixed memory leak in function calling + IOCTL_IDE_PASS_THROUGH. Thanks to Fred Schmidt for the problem + report. + [CF] Cygwin: added cygrunsrv support and commands "install", "remove" + and "status" to smartd.initd. + [SS] Fix runtime problems on big-engian NetBSD platforms (patch provided + by Martin Husemann) + [CF] Cygwin smartd: Open smartd.conf in textmode to allow use of + Windows editors. + [CF] Cygwin smartd: Added option '--service' to allow smartd running + as windows service via cygrunsrv. Useful in conjunction with new + syslogd support added in Cygwin 1.5.15. + [CF] Windows: Added patch to avoid output of non-ascii timezone names. + [EM] Incorporate various patches to provide TWE support and support for + multiple 3Ware cards, Power Check Support, and FreeBSD 6.x support. + Thanks to Rudolf Cejka, Frank Behrens, and Jung-uk Kim. + [DG] Silence gcc 4.0.1 compile warning concerning the difference in + "signedness" in pointer assignments. Changes to SCSI code + and os_linux.c . + [PW] Additions to knowndrives table: added missing drive from Quantum + Fireball Plus LM series, added QUANTUM BIGFOOT TS10.0A, added + ExcelStor J680 and J880, added Western Digital Caviar RE Serial ATA + series, added missing drives from Western Digital Caviar SE series, + added Seagate Momentus 4200.2 series, added missing drives from + Maxtor DiamondMax 10 series, added Fujitsu MHG and MHH series, and + added Hitachi Travelstar 5K100 series. + [PW] Additions to knowndrives table: added Fujitsu MHU2100AT, added + Fujitsu M1623TAU, added missing drives from Seagate Barracuda + 7200.8 series, added Seagate Momentus 5400.2 series, and added + QUANTUM FIREBALL CR8.4A. + [PW] Additions to knowndrives table: added missing drive from Maxtor + MaxLine II series, added Maxtor DiamondMax 2880 Ultra ATA series, + added Maxtor DiamondMax 17 VL series, added Hitachi Deskstar 7K80 + series, and added Hitachi Deskstar 7K400 series. + [CF] Windows: Fixed unsupported 'smartctl -X' on Win2000/XP by using + IOCTL_IDE_PASS_THROUGH instead. + +* Tue Apr 20 2005 Bruce Allen <smartmontools-support@lists.sourceforge.net> + [CF] Cygwin & Windows smartd: Increased SCSI DEVICESCAN range + from ASPI adapter 0-3 to 0-9. Added diagnostic messages. + [CF] Windows smartd: Added ability to run .bat files via '-M exec' + directive. + [CF] Cygwin smartd: Added FreeConsole() after fork() to avoid hang + of terminated shell console window. + [DG] [SCSI] Add code so 'smartctl -A' outputs the number of elements + in the grown defect list. When this number is increasing a + disk has problems. N.B. Similar logic should be added to smartd. + [CF] Windows smartd: Fixed event handling to allow start of another + smartd process when service is already running. Useful for testing + service configuration changes in debug mode. + [PW] Added following drives to knowndrives table: Western Digital Raptor + family, Seagate Barracuda 7200.8 family, Maxtor DiamondMax 2160 + Ultra ATA and DiamondMax 10 families, Hitachi Travelstar E7K60 + family, Seagate Medalist 17240, 13030, 10231, 8420, and 4310, + TOSHIBA MK4018GAP and MK6022GAX, ExcelStor Technology J360, and + Western Digital Caviar AC14300. + [PW] Added missing Fujitsu MHTxxxxAT and Seagate Barracuda 7200.7 drives + to knowndrives table. + [PW] Added QUANTUM FIREBALLP LM10.2 to knowndrives table. Thanks to + Mike Fleetwood for submitting the patch. + [KS] Solaris/SPARC: fixed not to disable automatic offline test and + automatic save attributes incorrectly. Thanks to Roy Badami. + [BA] Linux: smartd init script now recognizes 'trustix' distro. + [DG] [SCSI] Medium and hardware errors were slipping through + unreported. Fix linux SCSI sense reporting via SG_IO ioctl. + [DG] [SCSI] Change lba of first failure in selftest output to + decimal (was hex) to conform with ATA output. + [GK] smartd: Detect most self-test failures even if the hour counter + has wrapped. + [BA] smartctl: list 'marvell' as option if user give invalid + -d argument + [CF] Windows: fixed SCSI timeout handling to allow long timeouts + for selftests. + [CF] Fixed buffer overflow issues in printone() and safe_vsnprintf() + which results in crash on -V option (at least on Windows). + [DG] [SCSI] Add explicit timeouts to INQUIRY and REQUEST SENSE (that + were missed in an earlier patch). Could have impacted freebsd. + [DG] When linux detects a sata_via_libata disk suggest that user try + '-d ata' (rather then '-d libata). Anticipate kernel change. + [YD] Added OS/2 and eComStation platform support. + [PW] Added Seagate U4 family, Fujitsu MHJ and MHK families, Seagate + Barracuda 5400.1, QUANTUM FIREBALLP KX27.3, QUANTUM FIREBALLP KA10.1, + and ExcelStor J340 to knowndrives table. + [DG] [SCSI] After report of Hitachi IC35L073UCDY10 disks locking up + on log page 0x7 (last n error events), check log page (and some + others) is supported (via log page 0x0) before probing. + [CF] Added safe_v?snprintf() for platforms using v?snprintf() + with non standard behaviour on overflow (Windows, old Linux) + [CF] smartd: Added message if check power mode spins up disk. + [CF] Windows: Added support for READ_LOG on WinNT4 using undocumented + pseudo SCSI command via IOCTL_SCSI_PASS_THROUGH. + [CF] smartd: Added ',q' option for '-n' directive to suppress 'skipping + checks' log message. This prevents a laptop disk from spinning up + due to this message. Thanks to Rob MacLachlan and Manfred Schwarb + for pointing out problem & solution. + [CF] Windows: Added function get_os_version_str() to show OS flavor in + copyright message. + [CF] Windows: Added function ata_identify_is_cached() to check for outdated + SMART enabled bit in identify data. + [CF] Windows: Added fix to prevent linkage of smartd specific win32 modules + to smartctl. + [PW] Added Fujitsu MPG3153AH, Hitachi Endurastar J4K20/N4K20 (formerly + DK23FA-20J), Seagate Momentus family, and Maxtor Fireball 3 family + to knowndrives table. + [PW] Added missing Maxtor DiamondMax 16, Seagate Barracuda ATA IV, and + Western Digital Caviar WDxxxAA/WDxxxBA drives to knowndrives table. + [CF] Windows: Added ATA check power mode for smartd -n directive. + [CF] Windows: Fixed use of new service status flag which causes hang + of smartd service on WinNT4. + [CF] Windows: Fixed error checking of IOCTL_IDE_PASS_THROUGH (used + for READ_LOG on 2000/XP). Added some diagnostic messages on + -r ataioctl[,2]. Thanks to Manfred Schwarb for bug report and testing. + [BA] Fixed code bug that made it impossible to enable SMART on + disks with failing health status. This would happen if the + os_*.c author made STATUS and STATUS_CHECK work the same way. + I have corrected this at a higher level; we now handle the + case where STATUS and STATUS_CHECK are identical without + issues. + [LW] Make os_linux.c/marvell_command_interface() always return 0 on STATUS. + Needed for a disk having bad SMART status. + [CF] smartctl: Added drive family printing. + [CF] autogen.sh: Allow automake 1.9, added message if automake + version is unknown. + [BA] smartctl: use locale-specific separators for printing disk + capacity. Also use AC_CHECK_HEADERS not AC_CHECK_HEADER in + configure.in. + [BA] clean-up of #include structure so that -V options to smartd + and smartctl work correctly. Please, don't #include header + files into other header files. + +* Fri Sep 10 2004 Bruce Allen <smartmontools-support@lists.sourceforge.net> + [BA] smartctl: ATA disks, if SMART ATTRIBUTE THRESHOLDS page has ID + errors with some Attributes having NULL IDs, print Attribute + info anyway (but issuing a warning to the user). + [DG] [SCSI] Decode Last n error events log page; decode track following + and positioning errors [Hitachi] + [EM] FreeBSD: another tweak, __packed__ introduced in Version 5.0040 + [EM] Cleaner tweak of fixes for FreeBSD 4.x. + [EM] Fix compilation errors under FreeBSD 4.x, as it is still using + and old GCC + [EM] Remove 3ware/FreeBSD specific files and just include pieces we need + [DG] Add logic in smartd to detect 3ware, Marvell controllers and SATA + disks behind an ATA-SCSI simulator (in Linux). If specific device + types are not given and they are picked in a general SCSI device + scan then warn and skip. + [GG] insert correct path to smartd into smartd's init script + [BA] Changed all default paths in documentation to reflect /usr/local as + default path prefix. This affects on-line man pages, primarily. + [DS] Added support for OpenBSD. + [BA] Added another environment variable SMART_FULLMESSAGE set by + the smartd mailing feature, and modified examplescripts/Example1 + to illustrate it. + [BA] Fixed potentially misleading messages of the form: + XXX failed: success + [DG] emit warning if SATA disk detected using libata in Linux; then exit + [PW] Added Seagate U10 family, Hitachi Travelstar 7K60, Fujitsu MHR2020AT, + and QUANTUM FIREBALLP AS20.5 to knowndrives table. + [DG] Detect 3ware and Marvell controllers from SCSI INQUIRY vendor string + and suggest usage of appropriate '-d' argument in smartctl. + [LW] Tested the RELEASE_5_33_WITH_MARVELL_SUPPORT branch on + actual Marvell 88SX5041 hardware, with success. + Merged into HEAD. + [BA] Fixed nasty DEVICESCAN bug + [BA] Checked in RELEASE_5_33_WITH_MARVELL_SUPPORT branch with + some Marvell support. + [BA] Additional modifications of Ed's controller scheme. Fixed + broken 3ware support under linux, problems with scanning + devices in smartd, and other small problems. + [EM] Minor change to FreeBSD inclusion of 'twe' include files. Add + code to check if they exising in /usr/include/sys to use those + in preference to ones added here + [EM] Very preliminary support attempt for 3Ware controllers under + FreeBSD. Also, switched 'escalade_type/escalade_port' to + 'controler_type/controller_port' and moved away from + 'tryata/tryscsi' to using new 'controller*' variables to + determine which controller type (ATA/SCSI/3Ware) to use. + [GK] Added initscript support for Darwin. + [CF] Windows smartd: Added ability to run smartd as a windows service, + including new commands "smartd install ..." and "smartd remove" + to install and remove the service registry entry. + [BA] smartd: warn user if -s regexp regular expression contains + characters other than 0123456789.*()|+?[-]{}:=SLCO since such + characters are 'suspicous' and may indicate a poorly formed + regexp. Extended regular expression gurus: can this list be + reduced somewhat? + [CF] Fixed bug in Windows smartd: Missing close of config file when + configuration is reloaded by smartd daemon. + [CF] Windows smartd: Added mail warning feature using the "Blat" + (http://blat.sourceforge.net/) mailer as a default. + [PW] Added Maxtor DiamondMax Plus 5120 Ultra ATA 33 series and TOSHIBA + MK3017GAP to knowndrives table. + [CF] Added fixes to build smartmontools on old Linux systems + (libc < 6, Kernel 2.0.x). + [BA] Added ATA minor version identity strings for latest ATA specification + updates: ATA/ATAPI-7 T13 1532D revision 4a and ATA/ATAPI-6 published, + ANSI INCITS 361-2002 + [PW] Added Hitachi Travelstar 5K80 family and Fujitsu MHTxxxxAH family to + knowndrives table. + [EM] Fix up compilation under FreeBSD < 5.x + [PW] Added QUANTUM FIREBALL EX3.2A and missing Western Digital Caviar SE + drives to knowndrives table. + [BA] Modified Hitachi Travelstar 80GN family regexp in drive database. + Thanks to [GK/CF] for problem & solution. + [GK] Added os_darwin.[ch] + [PW] Added the following drives to the knowndrives table: IBM Travelstar + 48GH, 30GN, and 15GN family; IBM Deskstar 37GP and 34GXP family; + Western Digital WDC WD272AA; Maxtor DiamondMax D540X-4D family; + TOSHIBA MK2016GAP, MK2018GAP, MK2018GAS, MK2023GAS; and + QUANTUM FIREBALL ST3.2A + [BA] smartd/smarctl now print build HOST/OS information as part + of startup slogan. This should make it slightly easier to + read bug reports from users. + [RZ] Fixed the DEVICESCAN to do what it was supposed to do - give + error message unless scanning is in progress. + [BA] Update documentation to describe 3ware character devices. Better + error detection for missing/malfunctioning devices behind 3ware + controllers. Now pack 3ware ioctl structures explicitly. + [BA] For ATA devices that support LBA mode, print capacity as part + of smartctl --info + [RZ] Made DEVICESCAN quiet about non-existing devices unless debug + is on. + [DG] treat "unit attention" SCSI warning as try again in some contexts + (test unit ready and mode sense) + [BA] on drives that store max/min rather than min/max, get order + correct in printing temp. + [BA] fixed typo in 'smartctl -h' output. Thanks to Gabor Z. Papp. + [BA] linux: clean-up to 3ware/AMCC support; dynamically create + or fix /dev/tw[ae][0-15] device node entries if they don't + exist or are incorrect. One can now use the character devices + /dev/twe[0-15] OR /dev/sd? for 3ware 6000/7000/8000 series + cards. One must use /dev/twa[0-15] for 3ware 9000 series cards. + Note that selective self-tests now work via /dev/tw[ae] devices. + Next step: documentation. + [BA] linux: experimental "support" for 3ware/AMCC 9000 series + controllers that use the 3w-9xxx driver. This will be in a + state of flux for a few days. Note that this requires the + character interface /dev/twa[0-15]. + [DG] linux: extend general SCSI OS interface to use the SG_IO ioctl. If + not available, use the older SCSI_IOCTL_SEND_COMMAND ioctl. + [KS] Solaris/x86: fixed system identification problem in configure + script. Thanks to Stuart Swales. + +* Mon Jul 5 2004 Bruce Allen <smartmontools-support@lists.sourceforge.net> + [BA] Update link to revised/updated IBM Deskstar Firmware + [CF] Cygwin & Windows: Added missing ASPI manager initialization + with GetASPI32SupportInfo(). Thanks to Nikolai SAOUKH for pointing + this out and providing a patch. + [BA] modified smartd init script to work on whitebox (thanks to + Michael Falzon) + [BA] removed (reverted) additional Attribute definitions from + http://smart.friko.pl/attributes.php. All (or most?) of these + appear to be return code values for the WD Digital Life Guard Utility. + [PW] Added Seagate Medalist 17242, 13032, 10232, 8422, and 4312 to + knowndrives table. Added missing Seagate U Series 5 drives. + [PW] Added the following QUANTUM models to knowndrives table: + FIREBALL EX6.4A, FIREBALLP AS10.2, FIREBALLP AS40.0, FIREBALL CR4.3A, + FIREBALLP LM15, FIREBALLP LM30, and FIREBALLlct20 30 + [PW] Added missing Western Digital Protege drives to knowndrives table. + [PW] Added Maxtor DiamondMax 40 ATA 66 series and DiamondMax 40 VL Ultra + ATA 100 series to knowndrives table. + [PW] Added the following Hitachi/IBM drives to knowndrives table: + HITACHI_DK14FA-20B, Travelstar 40GNX series, Travelstar 4LP series, + and Travelstar DK23XXB series. Added the missing Travelstar 80GN + drives. + [PW] Added Fujitsu MPB series and MPG series to knowndrives table. Added + the missing Fujitsu MHSxxxxAT drives. + [KS] Solaris: added workaround for dynamic change of time-zone. + [KS] Solaris: fixed problem that autogen.sh cannot detect absence of + auto* tools. + [BA] smartd: added time-zone bug information to man page. + Reverted CF code for _WIN32 case. + [CF] Cygwin & Windows: Added better error messages on IDE/ATA device + open error. + [BA] added additional Attribute definitions from + http://smart.friko.pl/attributes.php + [BA] smartd: reworked TimeZone bug workaround so it is only invoked + for glibc. Note: this might not be right -- a similar bug may + exist in other platform's libcs. + [DG] SCSI smartmontools documentation updated [2004/5/6]. See: + http://smartmontools.sourceforge.net/smartmontools_scsi.html + [CF] Windows: Fixed reset of TZ=GMT in glibc timezone bug workaround. + +* Tue May 4 2004 Bruce Allen <smartmontools-support@lists.sourceforge.net> + [DG] move SCSI device temperature and start-stop log page output + (smartctl) into --attributes section (was in --info section). + [GG] change default installation location to /usr/local + [CF] Cygwin smartd: Fixed crash on access of SCSI devices after fork(). + [PW] Added TOSHIBA MK4018GAS and the following Maxtor drive families + to knowndrives table: DiamondMax D540X-4G, Fireball 541DX, + DiamondMax 3400 Ultra ATA, DiamondMax Plus 6800 Ultra ATA 66. + [PW] Added missing Maxtor DiamondMax 16, DiamondMax D540X-4K, and + DiamondMax Plus 45 Ulta ATA 100 drives to knowndrives table. + [PW] Added ExcelStor J240, Hitachi Travelstar 80GN family, Fujitsu + MHTxxxxAT family, and IBM Deskstar 25GP and 22GXP families to + knowndrives table. + [CF] Cygwin smartd: Added workaround for missing SIGQUIT via keyboard: + To exit smartd in debug mode, type CONTROL-C twice. + [BA] smartctl: printing of the selective self-test log is now + controlled by a new option: -l selective + [BA] Added entries for Samsung firmware versions -25 to -39 based + on latest info about firmware bug fixes. + [PW] Added Seagate U Series X family, Seagate U8 family, and Seagate + Medalist 8641 family to knowndrives table. + [CF] smartd: Added exit values 5/6 for missing/unreadable config file. + [BA] smartd: now monitor the Current Pending Sector count (Attribute 197) + and the Offline Pending Sector Count (Attribute 198). Log a + warning (and send an email, if so configured) if the raw count + is nonzero. These are controlled by new Directives: -C and -U. + Currently they are enabled by default. + [CF] Added option -c FILE, --configfile=FILE to smartd to specify + an alternate configuration FILE or '-' for standard input. + [KS] configure.in now searches for -lnsl and -lsocket for Solaris. + [CF] Win32/native smartd: Added thread to combine several syslog output + lines into one single event log entry. + [CF] Win32 smartd: Added DEVICESCAN for SCSI/ASPI devices. + [GG] Use gethostbyname() the get the DNS domain since getdomainname() + returns the NIS domain when sending mails from smartd. + [GG] smartd.init.in: pass smartd_opts to smartd on startup, read distribution + specific configuration files if found + [SS] smartctl: added NetBSD support for Selective Self-tests. + [BA] smartd.conf example configuration file now has all examples + commented out except for 'DEVICESCAN'. + [CF] Win32/native smartd: Added ability to display warning "emails" + as message box by "-m msgbox" directive. With "-m sysmsgbox", + a system modal (always on top) message box is shown. + [BA] smartctl: printing of self-test log for disks that support + Selective self-testing now shows the status of the (optional) + read-scan after the selective self test. Also, changed format + in printing self-test log to print failing LBA in base 10 not + base 16 (more compatible with kernel error messages). Also, + in printing SMART error log, print timestamps in format + days+hours+minutes+seconds. + [CF] Win32 smartd: Added ability to log to stdout/stderr + (-l local1/2). Toggling debug console still works + if stdout is redirected. + [BA] smartctl: selective self-test log, print current status + in a more detailed way. Allow writing of selective self-test + log provided that no other self-test is underway. + [BA] Linux: eliminated dependency on kernel tree hdreg.h. + [BA] smartctl: -l selftest option now prints Selective self-test + log in addition to the normal self-test log. + Added additional options (-t pending, -t afterselect) to + control remaining Selective Self-test capabilities. Tested + with several Maxtor disks. Modified error message printing + so that munged option messages print at the end not the + start of output. + [CF] Added daemon support to Win32 native version of smartd. + The daemon can be controlled by commands similar to initd + scripts: "smartd status|stop|reload|restart|sigusr1|sigusr2". + [CF] Added minor support for option "-l local[0-7]" to Win32 native + (not Cygwin) version of smartd. If specified, the log output + is written to file "./smartd[1-7]?.log" instead of event log. + [BA] Added Selective Self-test to smartctl (-t selective,M-N). + Currently only supported under Linux; Solaris, NetBSD, FreeBSD + and Windows developers must add WRITE LOG functionality to + os_*.c + [BA] Added workaround for an annoying glibc bug: if you change + timezones, (eg, flying with a laptop from USA to Europe) + localtime() does not notice this in a running + executable, so time that appears in the system log (syslog!) + will be incorrect. See + http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=48184 + for additional examples of this bug. + [DG] Set explicit timeouts for SCSI commands (most default to 6 seconds). + Previously a 0 second timeout was meant to be interpreted as a + default timeout but the FreeBSD port had a problem in this area. + [CF] Fixed un-thread-safe exit signal handler for Win32 + [BA] Fixed un-thread-safe exit signal handler pointed out + by CF. + [BA] Changed configure script to eliminate warnings under + Solaris from sys/int_type.h conflicts with int64.h + Added header files for umask to smartd.c. + [BA] Man page format change from Werner LEMBERG. " " changed to \& + [CF] Added os_win32/syslogevt.* event message file tool for Win32 + smartd (native+cygwin). May also be useful for other cygwin + programs writing to syslog(). + [CF] Added Win32 version of smartd + [CF] Merged RELEASE_5_26_WIN32_BRANCH + [BA] Made some changes to man page markup suggested by + Richard Verhoeven to work around bugs in man2html. + Tested not to break anything under Linux and Solaris. + [CF] Moved PrintOut() from utility.c to smart{ctl,d}.c to avoid + syslog() output of smartctl. + [BA] Grew worried that some time-zone names could be very long (eg, + Mitteleuropaische Zeit) and put date string lengths into a + single macro in utility.c + [EM] Updated os_freebsd.c to handle older versions of FreeBSD in a + more appropriate/obvious fashion. + [EM] Modified autogen.sh as FreeBSD installs automake 1.7 as + 'automake17' and NOT 'automake-1.7' + +* Sat Mar 6 2004 Bruce Allen <smartmontools-support@lists.sourceforge.net> + [PW] Added QUANTUM FIREBALLlct15 30, QUANTUM FIREBALLlct20 40, and + Maxtor 6Y060P0 (DiamondMax Plus 9 60GB) to knowndrives table. + [PW] Added Maxtor MaXLine II family to knowndrives table (thanks to + Brett Russ for submitting the patch). + [BA] Added remaining read/write commands to detailed list of + error log commands that have text descriptions of problem + printed. For commands that support it, print number of failed + sectors at problem LBA. + [BA] Made SuSE section of smartd init script more SuSE 9 compatible. + Thanks to Hans-Peter Jansen. + [CF] Windows smartd: Added IDE/ATA device scan + Added windows device names to smartctl.8.in, smartd.8.in + [BA] smartctl/smartd: user-provided '-F samsung' and '-F samsung2' + command line options/Directives did NOT over-ride preset values + unless user specified '-P ignore'. Now they will always over-ride + preset values from the database. + [BA] Added error decoding for a few more READ and WRITE commands. + [PW] Added Maxtor MaXLine Plus II, Western Digital Caviar SE (Serial ATA) + series, Hitachi Deskstar 7K250 series, and Ultra ATA 66 models of + the Maxtor DiamondMax Plus 40 series to knowndrives table. + [BA] Added Maxtor Diamondmax 250 GB drives to database. Note that + these model numbers are not listed in Maxtor documentation, but + they exist. + [BA] Removed the 'contact developers' phrase from the Samsung disk + warning messages. + [PW] Added TOSHIBA MK2017GAP, IBM Deskstar 14GXP and 16GP series, + Fujitsu MPC series, Seagate Barracuda ATA III family, and missing + Seagate Barracuda U Series drives to knowndrives table + [BA] smartd: wrong loglevel for message: Configuration file + /etc/smartd.conf parsed. Changed to LOG_INFO from LOG_CRIT. + Thanks to Emmanuel CHANTREAU for the report. + [CF] Checked in development version of windows code base. + +* Tue Feb 24 2004 Bruce Allen <smartmontools-support@lists.sourceforge.net> + [BA] smartd: configure script did not set correct directory to search for + smartd.conf based on --prefix argument to ./configure. Thanks to + GG for identifying the problem and fix. + [BA] make clean now removes man pages (generated from *.in) files as well + as object files. + [EM] Correct copying of sense data in FreeBSD SCSI implementation. Thanks + to Sergey Svishchev for noticing the bug. + [BA] On solaris, wrong warning message if no ATA support. Warning message + concerns 3ware controller, not ATA. + [SS] Added SCSI support for NetBSD. + [BA] on big-endian linux machines, fixed interpretation of HDIO_GET_IDENTITY + to correctly identify ATAPI bit (was byte swapped). This should + eliminate some SYSLOG noise if user queries a packet device (eg, CD + ROM or DVD reader). + [PW] Removed warning for IBM Deskstar 40GV & 75GXP series drives with + A5AA/A6AA firmware. Thanks to Gerald Schnabel. + [PW] Added Toshiba TOS MK3019GAXB SUN30G to knowndrives table + [PW] Added Western Digital Caviar AC12500, AC24300, AC25100, AC36400, + and AC38400 to knowndrives table + [BA] When printing ATA error log, print the LBA at which READ + or WRITE commands failed. + [BA] Changed syntax of error message in smartctl + [BA] Added versioning info (-V options to smartd/smartctl) for + Solaris ATA module. + +* Thu Feb 12 2004 Bruce Allen <smartmontools-support@lists.sourceforge.net> + [KS] Added ATA/IDE support for Solaris/SPARC (ATA/IDE not yet for + Solaris/x86). + [BA] 3ware controllers: documented that one can monitor any of the + physical disks from any of the 3ware /dev/sd? logical devices. + Better warnings if querying a disk that does not exist. + [PW] Added Hitachi Travelstar DK23DA series, Maxtor DiamondMax Plus 40 + series, Western Digital Caviar WDxxxAA, WDxxxBA, and WDxxxAB series + to knowndrives table + [BA] missing 'pragma pack' on ATA IDENIFY DEVICE structure may have + caused odd or incorrect results on 64-bit machines. + [BA] smartctl/smartd allow inspection of self-test and error logs even + if disk firmware claims that these don't exist. This is needed + for some Maxtor disks whose firmware does not indicate log support + even though the disk DOES support it. + [BA] Improved porting instructions and documentation in os_generic.c + [PW] Add Western Digital Caviar WD136AA and SAMSUNG SP40A2H (RR100-07 + firmware) to knowndrives table. + [EM] FreeBSD: remove extra definition of FreeNonZero + [BA] smartctl: the -q silent option was printing output for some + error conditions. Fixed. Will rename relevant variables to help + avoid these errors in the future. + [SS] NetBSD port added. + [BA] more sensible error messages for devfs and devfs-like systems. + Instead of saying that the DIRECTORY does not exist, say that + the DEVICE does not exist. + [BA] smartd: added -n Directive, to prevent disk spin-up depending + upon the power mode (SLEEP, STANDBY, or IDLE). + [PW] Added Maxtor DiamondMax 20 VL series, Fujitsu MPF series, + Maxtor DiamondMax 36 series, Maxtor DiamondMax 4320 series, and + Maxtor DiamondMax 536DX series to knowndrives table. + [BA] many warning messages now give the file name AND VERSION + [BA] smartd: when the user provides multiple address recipients + to the '-m' Directive in a comma-delineated list, the commas + are stripped out before passing the list of addresses to the + mailer program. (Thanks to Calin A. Culianu for pointing this out + and providing a patch.) + [BA] smartd: when the '-M exec path' Directive is used, any stdout OR + stderr output from the executable "path" is assumed to indicate a + problem, and is echoed to SYSLOG. + [BA] Added all missing IBM/Hitachi Deskstar 180GXP models to knowndrives + table. + [PW] Added some missing IBM/Hitachi Deskstar 120GXP models to knowndrives + table. + [PW] Added IBM Travelstar 14GS to knowndrives table. + [PW] Modified knowndrives table to match entire Hitachi Travelstar + DK23BA and DK23EA series of drives (thanks to Norikatsu Shigemura + for submitting the patch). + [PW] Added some missing Fujitsu MPE series drives to knowndrives table. + [PW] Added TOSHIBA MK4019GAX, TOSHIBA MK6409MAV, and QUANTUM + FIREBALLlct15 20 to knowndrives table. + [EM] Fixup example command output for FreeBSD + [PW] Added Maxtor DiamondMax 80 family to knowndrives table. + [EM] Catch up FreeBSD code to switch PROJECTHOME to PACKAGE_HOMEPAGE + macros. + [BA] smartd: now watches stdout/stderr when trying to run mail, mailx + or mail warning script, and reports any output to SYSLOG. This + gives a clearer error message if something is wrong. + [BA] smartd: Solaris init script modified to accomodate grep that + lacks '-q' quiet option. Also check for running process to kill + on stop. + [PW] Added some missing Seagate Barracuda 7200.7 and 7200.7 Plus drives + to knowndrives table. + [PW] Added Maxtor DiamondMax Plus 60 family and Seagate U Series 5 20413 + to knowndrives table. + [BA] smartd: under Solaris, made default mailer be 'mailx' not + 'mail', since Solaris 'mail' does not accept a '-s' argument. + A workaround for Solaris users of earlier versions is to + have '-M exec /bin/mailx' in their smartd.conf config file. + [DG] some SCSI controllers don't like odd length transfers so make + sure LOG SENSE transfers are rounded up to an even number when + and odd length is reported (i.e. there is a double fetch, the + first to find the length, the second gets the data) + [BA] smartd man pages: under Solaris, correct section numbers in the + 'See also' section. + [KS/BA] smartd man page: describe how to set Solaris syslog.conf + file to catch all messages. Give correct Solaris SYSLOG default + path /var/adm/messages in man pages. + [BA] smartd: incorporated Debian startup script submitted by user. + [BA] smartctl: modified printing of self-test log entry number. Seagate + firmware can leave 'holes' in the self-test log while a test is + actually running. We now print entry numbers consistently in this + case, not assuming that entries are contiguous. + [PW] Added QUANTUM FIREBALL CX10.2A and Western Digital Caviar AC23200L + to knowndrives table. + [PW] Added QUANTUM FIREBALLlct20 20 to knowndrives table. + [PW] Added Maxtor DiamondMax Plus D740X family to knowndrives table. + [PW] Added IBM Travelstar 32GH, 30GT, and 20GN family to knowndrives + table. + [BA] Slackware init script modified to search for /etc/slackware-version + rather than /etc/slackware-release. + [PW] Added Seagate Barracuda ATA II family and TOSHIBA MK4019GAXB to + knowndrives table. + [GG] explain howto use autoreconf in autogen.sh + [KS] Makefile.am/configure.in: changed manual page sections for + Solaris. + [BA] smartd: reduced number of scheduled self-test messages if + test already run in current hour. + [PW] Added Maxtor DiamondMax Plus 8 family to knowndrives table. + [BA] linux: check for linux/hdreg.h. If it's there, use it. If + not, provide the necessary definitions ourselves. + [PW] Removed warning for IBM Deskstar 40GV & 75GXP series drives + with TXAOA5AA firmware + [PW] Added IBM Travelstar 25GS, 18GT, and 12GN family to knowndrives + table. + [PW] Added IBM/Hitachi Travelstar 60GH & 40GN family to knowndrives + table. + [BA] smartd: made '-s' Directive more efficient. Now store + compiled regex, and re-use. If device lacks certain self-test + capabilities, track it and don't try again. + [BA] smartd: made memory allocation for device lists completely + dynamic (eliminating compile-time maximum length constants). + [PW] Removed warning for SAMSUNG SP0802N with TK100-23 firmware + [PW] Added Seagate Barracuda ATA IV family to knowndrives table. + [BA] smartd: reduce per-device memory footprint by making + mail-warning info dynamically allocated. Also remove + potential memory leak if use has -m Directive twice and + keeps reloading the config file (highly unlikely this would + ever be noticed!) + [DG] smartd: added SCSI scheduled self-tests (Background + short or extended). + [BA] smartd: can now run scheduled offline immediate and + self-tests. See man page and -s Directive for details. + [GG] don't include manpages in make-dist-tarball. + [BA] smartctl: on-line examples given with -h are now correct + for solaris and linux, but wrong for freebsd. Ed? + [BA] smartd: man page now explains device scanning for solaris as + well as linux and freebsd. + [BA] smartd/smartctl: man pages now report correct CVS tag release + date, and executables '-V' options reports more build info. + +* Sat Nov 29 2003 Bruce Allen <smartmontools-support@lists.sourceforge.net> + [BA] Improved user messages that appear from 'make install' + [PW] Removed warning for SAMSUNG SP1213N with firmware TL100-23 + [BA] incorporated SuSE init script from user. + [DG] if SCSI device is read only, then open it read only. + [BA] when compiled on non-supported system (NOT linux, freebsd or solaris) then + the run-time error messages now clearly say 'your system is not supported' + and give clear directions. + [BA] ./configure script now works correctly on SuSE linux boxes + [BA] minor improvements to man pages + [BA] simplified detection of packet (ATAPI, CD) devices. + [BA] init script (redhat, mandrake, yellowdog) now uses correct + strings for translation and is slightly more standard. + [DG] smartctl: output scsi Seagate vendor pages for disks (not tapes) +* Wed Nov 19 2003 Bruce Allen <smartmontools-support@lists.sourceforge.net> + [DG] smartd/smartctl: changed scsiClearControlGLTSD() to + scsiSetControlGLTSD() with an 'enabled' argument so '-S on' + and '-S off' work for SCSI devices (if changing GLTSD supported). + [BA] smartd/smartctl: wired in scsiClearControlGLTSD(). Could still + use a corresponding Set function. Left stubs for this purpose. + [DG] scsicmds: added scsiClearControlGLTSD() [still to be wired in] + [BA] smartctl: make SCSI -T options behave the same way as the + ATA ones. + [DG] smartctl: output scsi transport protocol if available + [DG] scsi: stop device scan in smartd and smartctl if badly formed + mode response [heuristic to filter out USB devices before we + (potentially) lock them up]. + [BA] smartd: deviceclose()->CloseDevice(). Got rid of SCSIDEVELOPMENT + macro-enabled code. Added -W to list of gcc specific options to + always enable. Made code clean for -W warnings. + [PW] Added Maxtor DiamondMax VL 30 family to knowndrives table. + [DG] scsi: add warning (when '-l error' active) if Control mode page + GLTSD bit is set (global disable of saving log counters) + [DG] scsi: remember mode sense cmd length. Output trip temperature + from IE lpage (IBM extension) when unavailable from temp lpage. + [BA] smartd: for both SCSI and ATA now warns user if either + the number of self-test errors OR timestamp of most + recent self-test error have increased. + [DG] smartctl: output Seagate scsi Cache and Factory log pages (if + available) when vendor attributes chosen + [DG] smartd: add scsiCountFailedSelfTests() function. + [DG] Do more sanity checking of scsi log page responses. + [BA] smartd: now warns user if number of self-test errors has + increased for SCSI devices. + [BA] smartd: warn user if number of ATA self-test errors increases + (as before) OR if hour time stamp of most recent self-test + error changes. + [DG] More checks for well formed mode page responses. This has the side + effect of stopping scans on bad SCSI implementations (e.g. some + USB disks) prior to sending commands (typically log sense) that + locks them up. + [PW] Added Western Digital Caviar family and Caviar SE family to + knowndrives table. + [BA] smartd: added -l daemon (which is the default value if -l + is not used). + [PW] Added Seagate Barracuda ATA V family to knowndrives table. + [BA] smartd: added additional command line argument -l FACILITY + or --logfacility FACILITY. This can be used to redirect + messages from smartd to a different file than the one used + by other system daemons. + [PW] Added Seagate Barracuda 7200.7, Western Digital Protege WD400EB, + and Western Digital Caviar AC38400 to knowndrives table. + [BA] smartd: scanning should now also work correctly for + devfs WITHOUT traditional links /dev/hd[a-t] or /dev/sd[a-z]. + [PW] Added Maxtor 4W040H3, Seagate Barracuda 7200.7 Plus, + IBM Deskstar 120GXP (40GB), Seagate U Series 20410, + Fujitsu MHM2100AT, MHL2300AT, MHM2150AT, and IBM-DARA-212000 + to knowndrives table. + [PW] Added remaining Maxtor DiamondMax Plus 9 models to knowndrives + table. + [EM] smartd: If no matches found, then return 0, rather than an error + indication, as it just means no devices of the given type exist. + Adjust FreeBSD scan code to mirror Linux version. + [BA] smartd: made device scan code simpler and more robust. If + too many devices detected, warn user but scan as many + as possible. If error in scanning, warn user but don't + die right away. + [EM] smartd: To keep as consistent as possible, migrate FreeBSD + devicescan code to also use glob(3). Also verified clean + compile on a 4.7 FreeBSD system. + [BA] smartd: Modified device scan code to use glob(3). Previously + it appeared to have trouble when scanning devices on an XFS + file system, and used non-public interface to directory + entries. Problems were also reported when /dev/ was on an + ext2/3 file system, but there was a JFS partition on the same + disk. + [BA] Clearer error messages when device scanning finds no suitable + devices. + [EM] FreeBSD: Fixup code to allow for proper compilation under + -STABLE branch. + +* Fri Oct 31 2003 Bruce Allen <smartmontools-support@lists.sourceforge.net> +- [BA] smartd: didn't close file descriptors of ATA packet devices + that are scanned. Fixed. +- [BA] Added reload/report targets to the smartmontools init script. + reload: reloads config file + report: send SIGUSR1 to check devices now + +* Mon Oct 27 2003 Bruce Allen <smartmontools-support@lists.sourceforge.net> +- [EM] Fix compile issues for FreeBSD < 5-CURRENT. +- [PW] Added Fujitsu MHM2200AT to knowndrives table. +- [BA] To help catch bugs, clear ATA error structures before all + ioctl calls. Disable code that attempted to time-out on SCSI + devices when they hung (doesn't work). +- [BA] Documented STATUS/ERROR flags added by [PW] below. +- [BA] Improved algorithm to recognize ATA packet devices. Should + no longer generate SYSLOG kernel noise when user tries either + smartd or smartctl on packet device (CD-ROM or DVD). Clearer + warning messages from smartd when scanning ATA packet device. +- [PW] Added TOSHIBA MK4025GAS to knowndrives table. +- [PW] Added a textual interpretation of the status and error registers + in the SMART error log (ATA). The interpretation is + command-dependent and currently only eight commands are supported + (those which produced errors in the error logs that I happen to + have seen). +- [BA] added memory allocation tracking to solaris code. + Fixed solaris signal handling (reset handler to default + after first call to handler) by using sigset. Added + HAVE_SIGSET to configure.in +- [CD] solaris port: added SCSI functionality to solaris + stubs. +- [BA] smartd: attempt to address bug report about smartd + hanging on USB devices when scanning: + https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=107615 + Set a timeout of SCSITIMEOUT (nominally 7 seconds) before + giving up. +- [EM] smartd: DEVICESCAN will follow links in a devfs filesystem and + make sure the end point is a disc. Update documentation, added + note about FreeBSD scanning +- [BA] smartd: DEVICESCAN also looks for block devices in + /dev. Updated documentation. Now scans for up to + 20 ATA devices /dev/hda-t rather than previous 12 + /dev/hda-l. +- [EM] smartd: mirror the FreeBSD DEVICESCAN logic for Linux, + so that smartd now scans only devices found in /dev/. Also, + make utility memory functions take a line number and file so + that we report errors with the correct location. +- [GG] add a note about Debian bug #208964 to WARNINGS. +- [BA] smartctl: -T verypermissive option broken. Use + -T verpermissive until the next release, please. +- [BA] Syntax mods so that code also compiles on Solaris using + Sun Workshop compiler. Need -xmemalign 1i -xCC flags + for cc. + +* Wed Oct 15 2003 Bruce Allen <smartmontools-support@lists.sourceforge.net> + [DK] Changed configure.in so -Wall is only included if gcc + is used (this is a gcc specific flag) and -fsignedchar + is not used at all (this is a gcc specific compiler + flag). + [BA] Modifications so that code now compiles under solaris. Now + all that's needed (:-) is to fill in os_solaris.[hc]. Added + os_generic.[hc] as guide to future ports. Fixed -D option + of smartd (no file name). Modified -h opt of smartd/smartctl + to work properly with solaris getopt(). + [EM] Update MAN pages with notes that 3ware drives are NOT supported + under FreeBSD. Cleanup FreeBSD warning message handling. + [EM] FreeBSD only: Fix first user found bug....I guess I was making + the wrong assumption on how to convert ATA devnames to + channel/unit numbers. + [EM] Allow for option --enable-sample to append '.sample' to installed + smartd.conf and rc script files. Also, let rc script shell setting + be determined by configure + [EM] Minor autoconf update to include -lcam for FreeBSD + [EM] Add conditional logic to allow FreeBSD to compile pre-ATAng. + -- note, not tested + Add some documentation to INSTALL for FreeBSD. + [EM] Implement SCSI CAM support for FreeBSD. NOTE: I am not an expert + in the use of CAM. It seems to work for me, but I may be doing + something horribly wrong, so please exercise caution. + [EM] Switch over to using 'atexit' rather than 'on_exit' routine. This also + meant we needed to save the exit status elsewhere so our 'Goodbye' + routine could examine it. + [EM] Move the DEVICESCAN code to os specific files. Also moved some of the + smartd Memory functions to utility.c to make available to smartctl. + [EM] Code janitor work on os_freebsd.c. + [EM] Added os_freebsd.[hc] code. Additional code janitor + work. + [BA] Code janitor working, moving OS dependent code into + os_linux.[hc]. + [GG] conditionally compile os_{freebsd,linux}.o depending on + host architecture + [PW] Print estimated completion time for tests + [BA] Added -F samsung2 flag to correct firmware byte swap. + All samsung drives with *-23 firmware revision string. + +* Sun Oct 05 2003 Bruce Allen <smartmontools-support@lists.sourceforge.net> +- [GG] Fixed broken Makefile.am (zero length smartd.conf.5 + was being created) +- [FM] Improved Slackware init script added to /etc/smartd.initd + +* Fri Oct 03 2003 Bruce Allen <smartmontools-support@lists.sourceforge.net> +- [BA] smartctl: added '-T verypermissive' option which is + equivalent to giving '-T permissive' many times. +- [BA] Try harder to identify from IDENTIFY DEVICE structure + if SMART supported/enabled. smartd now does a more + thorough job of trying to assess this before sending + a SMART status command to find out for sure. +- [BA] smartctl: it's now possible to override the program's + guess of the device type (ATA or SCSI) with -d option. +- [BA] try hard to avoid sending IDENTIFY DEVICE to packet + devices (CDROMS). They can't do SMART, and this generates + annoying syslog messages. At the same time, identify type + of Packet device. +- [BA] smartctl: Can now use permissive option more + than once, to control how far to go before giving up. +- [BA] smartd: if user asked to monitor either error or self-test + logs (-l error or -l selftest) WITHOUT monitoring any of the + Attribute values, code will SEGV. For 5.1-18 and earlier, + a good workaround is to enable Auto offline (-o on). +- [BA] smartctl: If enable auto offline command given, update auto + offline status before printing capabilities. +- [GG] Make autotools build the default, remove autotools.diff +- [GG] Add auto{conf,make} support, not enabled by default. +- [BA] Eliminated #include <linux/hdreg.h> from code. This + should simplify porting to solaris, FreeBSD, etc. The + only linux-specific code is now isolated to three routines, + one for SCSI, one for Escalade, one for ATA. + +* Fri Aug 22 2003 Bruce Allen <smartmontools-support@lists.sourceforge.net> +- [BA] smartd: fixed serious bug - Attributes not monitored unless + user told smartd to ignore at least one of them! + +* Tue Aug 19 2003 Bruce Allen <smartmontools-support@lists.sourceforge.net> +- [BA] Default runlevels for smartd changed from 3 and 5 to + 2, 3, 4, and 5. +- [BA] Removed as much dynamic memory allocation as possible from + configuration file parsing. Reloading config file, even in + presence of syntax errors etc. should not cause memory leaks. +- [PW] It is no longer permissible for the integer part (if any) of + arguments to --report and --device to be followed by non-digits. + For example, the "foo" in --report=ioctl,2foo was previously + ignored, but now causes an error. +- [BA] smartd: added -q/--quit command line option to specify + under what circumstances smartd should exit. The old + -c/--checkonce option is now obsoleted by this more + general-purpose option. +- [BA] smartd now responds to a HUP signal by re-reading its + configuration file /etc/smartd.conf. If there are + errors in this file, then the configuration file is + ignored and smartd continues to monitor the devices that + it was monitoring prior to receiving the HUP signal. +- [BA] Now correctly get SMART status from disks behind 3ware + controllers, thanks to Adam Radford. Need 3w-xxxx driver + version 1.02.00.037 or later. Previously the smartmontools + SMART status always returned "OK" for 3ware controllers. +- [BA] Additional work on dynamic memory allocation/deallocation. + This should have no effect on smartctl, but clears that way + for smartd to dynamically add and remove entries. It should + also now be easier to modify smartd to re-read its config + file on HUP (which is easy) without leaking memory (which is + harder). The philosophy is that memory for data structures in + smartd is now allocated only on demand, the first time it + is needed. +- [BA] smartd: finished cleanup. Now use create/rm functions for + cfgentries and dynamic memory allocation almost everywhere. + Philosophy: aggresively try and provoke SEGV to help find + bad code. +- [BA] Added SAMSUNG SV0412H to knowndrives table. +- [BA] smartd: if DEVICESCAN used then knowndrives table might not set + the -v attributes correctly -- may have been the same for all + the drives. Cleaned up some data structures and memory + allocation to try and ensure segvs if such problems are + introduced again. +- [BA] Now allow -S on and -o on for the 3ware device type. For these + commands to be passed through, the stock 3ware 3w-xxxx driver + must be patched (8 lines). I'll post a patch on the smartmontools + home page after it's been tested by a few other people and 3ware + have had a chance to look it over. + +* Wed Aug 06 2003 Bruce Allen <smartmontools-support@lists.sourceforge.net> +- [BA] smartd - can now monitor ATA drives behind 3ware controllers. +- [BA] smartd - changed some FATAL out of memory error messages from + syslog level LOG_INFO to LOG_CRIT. +- [BA] smartctl - added code to look at ATA drives behind 3ware RAID + controllers using the 3w-xxxx driver. Note that for technical + reasons related to the 3w-xxxx driver, the "Enable Autosave", + "Enable Automatic Offline" commands are not implemented. + I will add this to smartd shortly. +- [BA] smartd - modified sleep loop, so that smartd no longer comes + on the run queue every second. Instead, unless interrupted, + it sleeps until the next polling time, when it wakes up. Now + smartd also tries to wake up at exactly the right + intervals (nominally 30 min) even if the user has been sending + signals to it. +- [GG] add Fujitsu MHN2300AT to vendoropts_9_seconds. +- [EB] Fujitsu change in knowndrives ... match the whole MPD and + MPE series for vendoropts_9_seconds. +- [BA] smartd bug, might cause segv if a device can not be opened. Was + due to missing comma in char* list. Consequence is that email + failure messages might have had the wrong Subject: heading for + errorcount, FAILEDhealthcheck, FAILEDreadsmartdata, FAILEDreadsmarterrorlog, + FAILEDreadsmartsefltestlog, FAILEDopendevice were all displaced by + one. And FAILEDopendevice might have caused a segv if -m was being + used as a smartd Directive. + +* Wed Jul 23 2003 Bruce Allen <smartmontools-support@lists.sourceforge.net> +- [BA] Cleaned up smartmontools.spec so that upgrading, removing + and other such operations correctly preserve running behavior + and booting behavior of smartd. +- [BA] Improved formatting of ATA Error Log printout, and added + listing of names of commands that caused the error. Added + obsolete ATA-4 SMART feature commands to table, along with + obsolete SFF-8035i SMART feature command. +- [PW] Added atacmdnames.[hc], which turn command register & + feature register pairs into ATA command names. +- [BA] Added conveyance self-test. Some code added for selective + self-tests, but #ifdefed out. +- [BA] Modified smartd exit status and log levels. If smartd is + "cleanly" terminated, for example with SIGTERM, then its + exit messages are now logged at LOG_INFO not LOG_CRIT +- [BA] Added Attribute IDs (Fujitsu) 0xCA - 0xCE. This is decimal + 202-206. Added -v switches for interpretation of Attributes + 192, 198 and 201. +- [BA] Made smartmontools work with any endian order machine for: + - SMART selftest log + - SMART ATA error log + - SMART Attributes values + - SMART Attributes thesholds + - IDENTIFY DEVICE information + - LOG DIRECTORY + Smartmontools is now free of endian bias and works correctly + on both little- and big-endian hardware. This has been tested by + three independent PPC users on a variety of ATA and SCSI hardware. +- [DG] Check that certain SCSI command responses are well formed. If + IEC mode page response is not well formed exit smartctl. This + is to protect aacraid. smartd should ignore a aacraid device. + +* Mon Jun 16 2003 Bruce Allen <smartmontools-support@lists.sourceforge.net> +- [BA] smartctl: added column to -A output to show if Attributes are + updated only during off-line testing or also during normal + operation. + +* Thu Jun 10 2003 Bruce Allen <smartmontools-support@lists.sourceforge.net> +- [BA] smartd: attempt to enable/disable automatic offline testing even + if the disk appears not to support it. Now the same logic + as smartctl. +- [BA] Added definition of Attribute 201, soft read error rate. +- [BA] Added IBM/Hitachi IC35L120AVV207-1 (GXP-180) and corresponding + 8MB Cache GXP-120 to drive database. +- [BA] smartd: if DEVICESCAN Directive used in smartd.conf, and + -I, -R or -r Directives used in conjunction with this, got + segv errors. Fixed by correcting memory allocation calls. +- [BA] smartd: enable automatic offline testing was broken due + to cut-and-paste error that disabled it instead of + enabling it. Thanks to Maciej W. Rozycki for pointing + out the problem and solution. +- [BA] Fixed "spelling" of some Attribute names to replace spaces + in names by underscores. (Fixed field width easier for awk + style parsing.) +- [BA] Added mods submitted by Guilhem Frezou to support Attribute 193 + being load/unload cycles. Add -v 193,loadunload option, useful + for Hitachi drive DK23EA-30, and add this drive to knowndrive.c + Add meaning of attribute 250 : Read error retry rate +- [BA] Added another entry for Samsung drives to knowndrive table. +- [DG] Refine SCSI log sense command to do a double fetch in most cases + (but not for the TapeAlert log page). Fix TapeAlert and Self Test + log pgae response truncation. +- [PW] Added 'removable' argument to -d Directive for smartd. This indicates + that smartd should continue (rather than exit) if the device does not + appear to be present. +- [BA] Modified smartmontools.spec [Man pages location] and + smartd.initd [Extra space kills chkconfig!] for Redhat 6.x + compatibility (thanks to Gerald Schnabel). + +* Wed May 7 2003 Bruce Allen <smartmontools-support@lists.sourceforge.net> +- [EB] Add another Fujitsu disk to knowndrives.c +- [GG] match for scsi/ and ide/ in case of devfs to exclude false postives +- [BA] If SCSI device listed in /etc/smartd.conf fails to open or do + SMART stuff correctly, or not enough space + to list all SCSI devices, fail with error unless + -DSCSIDEVELOPMENT set during compile-time. +- [BA] Added automatic recognition of /dev/i* (example: /dev/ide/...) + as an ATA device. +- [DG] Add "Device type: [disk | tape | medium changer | ...]" line to + smartctl -i output for SCSI devices. +- [PW] Fixed bug in smartd where test email would be sent regularly (for + example, daily if the user had specified -M daily) instead of just + once on startup. +- [KM] More TapeAlert work. Added translations for media changer + alerts. TapeAlert support reported according to the log page + presence. ModeSense not attempted for non-ready tapes (all + drives do not support this after all). Get peripheral type from + Inquiry even if drive info is not printed. Add QUIETON() + QUIETOFF() to TapeAlert log check. +- [BA] Stupid bug in atacmds.c minor_str[] affected ataVersionInfo(). + Two missing commas meant that minor_str[] had two few elements, + leading to output like this: + Device Model: Maxtor 6Y120L0 + Serial Number: Y40BF74E + Firmware Version: YAR41VW0 + Device is: Not in smartctl database [for details use: -P showall] + ATA Version is: 7 + ATA Standard is: 9,minutes + ^^^^^^^^^ + Missing commas inserted. +- [BA] Fixed smartd bug. On device registration, if ATA device did + not support SMART error or self-test logs but user had asked to + monitor them, an attempt would be made to read them anyway, + possibly generating "Drive Seek" errors. We now check that + the self-test and error logs are supported before trying to + access them the first time. +- [GG/BA] Fixed bug where if SMART ATA error log not supported, + command was tried anyway. Changed some error printing to use + print handlers. +- [GG] Makefile modifications to ease packaging +- [DG] Did work for TapeAlerts (SCSI). Now can detect /dev/nst0 as a + SCSI device. Also open SCSI devices O_NONBLOCK so they don't + hang on open awaiting media. The ATA side should worry about + this also: during a DEVICESCAN a cd/dvd device without media + will hang. Added some TapeAlert code suggested by Kai Makisara. + +* Mon Apr 21 2003 Bruce Allen <smartmontools-support@lists.sourceforge.net> +- [PW] Extended the -F option/Directive to potentially fix other firmware + bugs in addition to the Samsung byte-order bug. Long option name is + now --firmwarebug and the option/Directive accepts an argument + indicating the type of firmware bug to fix. +- [BA] Fixed a bug that prevented the enable automatic off-line + test feature from enabling. It also prevented the enable Attribute + autosave from working. See CVS entry for additional details. +- [PW] Modified the -r/--report option (smartctl and smartd) to allow the + user to specify the debug level as a positive integer. +- [BA] Added --log directory option to smartctl. If the disk + supports the general-purpose logging feature set (ATA-6/7) + then this option enables the Log Directory to be printed. + This Log Directory shows which device logs are available, and + their lengths in sectors. +- [PW] Added -P/--presets option to smartctl and -P Directive to smartd. +- [GG] Introduce different exit codes indicating the type of problem + encountered for smartd. +- [DG] Add non-medium error count to '-l error' and extended self test + duration to '-l selftest'. Get scsi IEs and temperature changes + working in smartd. Step over various scsi disk problems rather + than abort smartd startup. +- [DG] Support -l error for SCSI disks (and tapes). Output error counter + log pages. +- [BA] Added -F/--fixbyteorder option to smartctl. This allows us to read + SMART data from some disks that have byte-reversed two- and four- + byte quantities in their SMART data structures. +- [BA] Fixed serious bug: the -v options in smartd.conf were all put + together and used together, not drive-by-drive. +- [PW] Added knowndrives.h and knowndrives.c. The knowndrives array + supersedes the drivewarnings array. +- [GG] add {-p,--pidfile} option to smartd to write a PID file on + startup. Update the manpage accordingly. +- [DG] Fix scsi smartd problem detecting SMART support. More cleaning + and fix (and rename) scsiTestUnitReady(). More scsi renaming. +- [BA] Fixed smartd so that if a disk that is explictily listed is not + found, then smartd will exit with nonzero status BEFORE forking. + If a disk can't be registered, this will also be detected before + forking, so that init scripts can react correctly. +- [BA] Replaced all linux-specific ioctl() calls in atacmds.c with + a generic handler smartcommandhandler(). Now the only routine + that needs to be implemented for a given OS is os_specific_handler(). + Also implemented the --report ataioctl. This provides + two levels of reporting. Using the option once gives a summary + report of device IOCTL transactions. Using the option twice give + additional info (a printout of ALL device raw 512 byte SMART + data structures). This is useful for debugging. +- [DG] more scsi cleanup. Output scsi device serial number (VPD page + 0x80) if available as part of '-i'. Implement '-t offline' as + default self test (only self test older disks support). +- [BA] Changed crit to info in loglevel of smartd complaint to syslog + if DEVICESCAN enabled and device not found. +- [BA] Added -v 194,10xCelsius option/Directive. Raw Attribute number + 194 is ten times the disk temperature in Celsius. +- [DG] scsicmds.[hc] + scsiprint.c: clean up indentation, remove tabs. + Introduce new intermediate interface based on "struct scsi_cmnd_io" + to isolate SCSI generic commands + responses from Linux details; + should help port to FreeBSD of SCSI part of smartmontools. + Make SCSI command builders more parametric. + +* Thu Mar 13 2003 Bruce Allen <smartmontools-support@lists.sourceforge.net> +- [BA] smartctl: if HDIO_DRIVE_TASK ioctl() is not implemented (no + kernel support) then try to assess drive health by examining + Attribute values/thresholds directly. +- [BA] smartd/smartctl: added -v 200,writeerrorcount option/Directive + for Fujitsu disks. +- [BA] smartd: Now send email if any of the SMART commands fails, + or if open()ing the device fails. This is often noted + as a common disk failure mode. +- [BA] smartd/smartctl: Added -v N,raw8 -v N,raw16 and -v N,raw48 + Directives/Options for printing Raw Attributes in different + Formats. +- [BA] smartd: Added -r ID and -R ID for reporting/tracking Raw + values of Attributes. +- [BA] smartd/smartctl: Changed printing of spin-up-time attribute + raw value to reflect current/average as per IBM standard. +- [BA] smartd/smartctl: Added -v 9,seconds option for disks which + use Attribute 9 for power-on lifetime in seconds. +- [BA] smartctl: Added a warning message so that users of some IBM + disks are warned to update their firmware. Note: we may want + to add a command-line flag to disable the warning messages. + I have done this in a general way, using regexp, so that we + can add warnings about any type of disk that we wish.. + +* Wed Feb 12 2003 Bruce Allen <smartmontools-support@lists.sourceforge.net> +- [BA] smartd: Created a subdirectory examplescripts/ of source + directory that contains executable scripts for the -M exec PATH + Directive of smartd. +- [BA] smartd: DEVICESCAN in /etc/smartd.conf + can now be followed by all the same Directives as a regular + device name like /dev/hda takes. This allows one to use + (for example): + DEVICESCAN -m root@example.com + in the /etc/smartd.conf file. +- [BA] smartd: Added -c (--checkonce) command-line option. This checks + all devices once, then exits. The exit status can be + used to learn if devices were detected, and if smartd is + functioning correctly. This is primarily for Distribution + scripters. +- [BA] smartd: Implemented -M exec Directive for + smartd.conf. This makes it possible to run an + arbitrary script or mailing program with the + -m option. +- [PW] smartd: Modified -M Directive so that it can be given + multiple times. Added -M exec Directive. + +* Tue Jan 21 2003 Bruce Allen <smartmontools-support@lists.sourceforge.net> +- [BA] Fixed bug in smartctl pointed out by Pierre Gentile. + -d scsi didn't work because tryata and tryscsi were + reversed -- now works on /devfs SCSI devices. +- [BA] Fixed bug in smartctl pointed out by Gregory Goddard + <ggoddard@ufl.edu>. Manual says that bit 6 of return + value turned on if errors found in smart error log. But + this wasn't implemented. +- [BA] Modified printing format for 9,minutes to read + Xh+Ym not X h + Y m, so that fields are fixed width. +- [BA] Added Attribute 240 "head flying hours" + +* Sun Jan 12 2003 Bruce Allen <smartmontools-support@lists.sourceforge.net> +- [BA] As requested, local time/date now printed by smartctl -i + +* Thu Jan 9 2003 Bruce Allen <smartmontools-support@lists.sourceforge.net> +- [PW] Added 'help' argument to -v for smartctl +- [PW] Added -D, --showdirectives option to smartd + +* Sat Jan 4 2003 Bruce Allen <smartmontools-support@lists.sourceforge.net> +- [DG] add '-l selftest' capability for SCSI devices (update smartctl.8) +- [BA] smartd,smartctl: added additional Attribute modification option + -v 220,temp and -v 9,temp. +- [PW] Renamed smartd option -X to -d +- [PW] Changed smartd.conf Directives -- see man page +- [BA/DG] Fixed uncommented comment in smartd.conf +- [DG] Correct 'Recommended start stop count' for SCSI devices +- [PW] Replaced smartd.conf directive -C with smartd option -i +- [PW] Changed options for smartctl -- see man page. +- [BA] Use strerror() to generate system call error messages. +- [BA] smartd: fflush() all open streams before fork(). +- [BA] smartctl, smartd simplified internal handling of checksums + for simpler porting and less code. + +* Sun Dec 8 2002 Bruce Allen <smartmontools-support@lists.sourceforge.net> +- [PW] smartd --debugmode changed to --debug +- [BA] smartd/smartctl added attribute 230 Head Amplitude from + IBM DPTA-353750. +- [PW] Added list of proposed new options for smartctl to README. +- [PW] smartd: ParseOpts() now uses getopt_long() if HAVE_GETOPT_LONG is + defined and uses getopt() otherwise. This is controlled by CPPFLAGS in + the Makefile. +- [BA] smartd: Fixed a couple of error messages done with perror() + to redirect them as needed. +- [BA] smartctl: The -O option to enable an Immediate off-line test + did not print out the correct time that the test would take to + complete. This is because the test timer is volatile and not + fixed. This has been fixed, and the smartctl.8 man page has been + updated to explain how to track the Immediate offline test as it + progresses, and to further emphasize the differences between the + off-line immediate test and the self-tests. +- [BA] smartd/smartctl: Added new attribute (200) Multi_Zone_Error_Rate +- [BA] smartctl: modified so that arguments could have either a single - + as in -ea or multiple ones as in -e -a. Improved warning message for + device not opened, and fixed error in redirection of error output of + HD identity command. +- [PW] smartd: added support for long options. All short options are still + supported; see manpage for available long options. +- [BA] smartctl. When raw Attribute value was 2^31 or larger, did + not print correctly. + +* Fri Nov 22 2002 Bruce Allen <smartmontools-support@lists.sourceforge.net> +- Allen: smartd: added smartd.conf Directives -T and -s. The -T Directive + enables/disables Automatic Offline Testing. The -s Directive + enables/disables Attribute Autosave. Documentation and + example configuration file updated to agree. +- Allen: smartd: user can make smartd check the disks at any time + (ie, interrupt sleep) by sending signal SIGUSR1 to smartd. This + can be done for example with: + kill -USR1 <pid> + where <pid> is the process ID number of smartd. +- Bolso: scsi: don't trust the data we receive from the drive too + much. It very well might have errors (like zero response length). + Seen on Megaraid logical drive, and verified in the driver source. +- Allen: smartd: added Directive -m for sending test email and + for modifying email reminder behavior. Updated manual, and sample + configuration file to illustrate & explain this. +- Allen: smartd: increased size of a continued smartd.conf line to + 1023 characters. +- Allen: Simplified Directive parsers and improved warning/error + messages. + +* Sun Nov 17 2002 Bruce Allen <smartmontools-support@lists.sourceforge.net> +- Fixed bug in smartd where testunitready logic inverted + prevented functioning on scsi devices. +- Added testunitnotready to smartctl for symmetry with smartd. +- Brabec: added Czech descriptions to .spec file +- Brabec: corrected comment in smartd.conf example +- Changed way that entries in the ATA error log are printed, + to make it clearer which is the most recent error and + which is the oldest one. +- Changed Temperature_Centigrade to Temperature_Celsius. + The term "Centigrade" ceased to exist in 1948. (c.f + http://www.bartleby.com/64/C004/016.html). + +* Wed Nov 13 2002 Bruce Allen <smartmontools-support@lists.sourceforge.net> +- smartd SCSI devices: can now send warning email message on failure +- Added a new smartd configuration file Directive: -M ADDRESS. + This sends a single warning email to ADDRESS for failures or + errors detected with the -c, -L, -l, or -f Directives. + +* Mon Nov 11 2002 Bruce Allen <smartmontools-support@lists.sourceforge.net> +- Modified perror() statements in atacmds.c so that printout for SMART + commands errors is properly suppressed or queued depending upon users + choices for error reporting modes. +- Added Italian descriptions to smartmontools.spec file. +- Started impementing send-mail-on-error for smartd; not yet enabled. + +* Sun Nov 10 2002 Bruce Allen <smartmontools-support@lists.sourceforge.net> +- Added -P (Permissive) Directive to smartd.conf file to allow SMART monitoring of + pre-ATA-3 Rev 4 disks that have SMART but do not have a SMART capability bit. + +* Thu Nov 7 2002 Bruce Allen <smartmontools-support@lists.sourceforge.net> +- Added a Man section 5 page for smartd.conf +- Changed Makefile so that the -V option does not reflect file state + before commit! +- modified .spec file so that locale information now contains + character set definition. Changed pt_BR to pt since we do not use any + aspect other than language. See man setlocale. +- smartctl: added new options -W, -U, and -P to control if and how the + smartctl exits if an error is detected in either a SMART data + structure checksum, or a SMART command returns an error. +- modified manual page to break options into slightly more logical + categories. +- reformatted 'usage' message order to agree with man page ordering + +* Mon Nov 4 2002 Bruce Allen <smartmontools-support@lists.sourceforge.net> +- smartctl: added new options -n and -N to force device to be ATA or SCSI +- smartctl: no longer dies silently if device path does not start/dev/X +- smartctl: now handles arbitrary device paths +- Added additional macros for manual and sbin paths in this SPEC file. +- Modified Makefile to install /etc/smartd.conf, but without overwriting existing config file +- Modified this specfile to do the same, and to not remove any files that it did not install + +* Thu Oct 30 2002 Bruce Allen <smartmontools-support@lists.sourceforge.net> +- Fixed typesetting error in man page smartd.8 +- Removed redundant variable (harmless) from smartd.c + +* Wed Oct 29 2002 Bruce Allen <smartmontools-support@lists.sourceforge.net> +- Added a new directive for the configuration file. If the word + DEVICESCAN appears before any non-commented material in the + configuration file, then the confi file will be ignored and the + devices wil be scanned. +- Note: it has now been confirmed that the code modifications between + 5.0.23 and 5.0.24 have eliminated the GCC 3.2 problems. Note that + there is a GCC bug howerver, see #8404 at + http://gcc.gnu.org/bugzilla/show_bug.cgi?id=8404 +- Added new Directive for Configuration file: + -C <N> This sets the time in between disk checks to be <N> + seconds apart. Note that although you can give + this Directive multiple times on different lines of + the configuration file, only the final value that + is given has an effect, and applies to all the + disks. The default value of <N> is 1800 sec, and + the minimum allowed value is ten seconds. +- Problem wasn't the print format. F.L.W. Meunier <0@pervalidus.net> + sent me a gcc 3.2 build and I ran it under a debugger. The + problem seems to be with passing the very large (2x512+4) byte + data structures as arguments. I never liked this anyway; it was + inherited from smartsuite. So I've changed all the heavyweight + functions (ATA ones, anyone) to just passing pointers, not hideous + kB size structures on the stack. Hopefully this will now build OK + under gcc 3.2 with any sensible compilation options. +- Because of reported problems with GCC 3.2 compile, I have gone + thorough the code and explicitly changed all print format + parameters to correspond EXACTLY to int unless they have to be + promoted to long longs. To quote from the glibc bible: [From + GLIBC Manual: Since the prototype doesn't specify types for + optional arguments, in a call to a variadic function the default + argument promotions are performed on the optional argument + values. This means the objects of type char or short int (whether + signed or not) are promoted to either int or unsigned int, as + required. +- smartd, smartctl now warn if they find an attribute whose ID + number does not match between Data and Threshold structures. +- Fixed nasty bug which led to wrong number of arguments for a + varargs statement, with attendent stack corruption. Sheesh! + Have added script to CVS attic to help find such nasties in the + future. + +* Tue Oct 29 2002 Bruce Allen <smartmontools-support@lists.sourceforge.net> +- Eliminated some global variables out of header files and other + minor cleanup of smartd. +- Did some revision of the man page for smartd and made the usage + messages for Directives consistent. +- smartd: prints warning message when it gets SIGHUP, saying that it is + NOT re-reading the config file. +- smartctl: updated man page to say self-test commands -O,x,X,s,S,A + appear to be supported in the code. [I can't test these, can anyone + report?] +- smartctl: smartctl would previously print the LBA of a self-test + if it completed, and the LBA was not 0 or 0xff...f However + according to the specs this is not correct. According to the + specs, if the self-test completed without error then LBA is + undefined. This version fixes that. LBA value only printed if + self-test encountered an error. +- smartd has changed significantly. This is the first CVS checkin of + code that extends the options available for smartd. The following + options can be placed into the /etc/smartd.conf file, and control the + behavior of smartd. +- Configuration file Directives (following device name): + -A Device is an ATA device + -S Device is a SCSI device + -c Monitor SMART Health Status + -l Monitor SMART Error Log for changes + -L Monitor SMART Self-Test Log for new errors + -f Monitor for failure of any 'Usage' Attributes + -p Report changes in 'Prefailure' Attributes + -u Report changes in 'Usage' Attributes + -t Equivalent to -p and -u Directives + -a Equivalent to -c -l -L -f -t Directives + -i ID Ignore Attribute ID for -f Directive + -I ID Ignore Attribute ID for -p, -u or -t Directive + # Comment: text after a hash sign is ignored + \ Line continuation character +- cleaned up functions used for printing CVS IDs. Now use string + library, as it should be. +- modified length of device name string in smartd internal structure + to accomodate max length device name strings +- removed un-implemented (-e = Email notification) option from + command line arg list. We'll put it back on when implemeneted. +- smartd now logs serious (fatal) conditions in its operation at + loglevel LOG_CRIT rather than LOG_INFO before exiting with error. +- smartd used to open a file descriptor for each SMART enabled +- device, and then keep it open the entire time smartd was running. + This meant that some commands, like IOREADBLKPART did not work, + since the fd to the device was open. smartd now opens the device + when it needs to read values, then closes it. Also, if one time + around it can't open the device, it simply prints a warning + message but does not give up. Have eliminated the .fd field from + data structures -- no longer gets used. +- smartd now opens SCSI devices as well using O_RDONLY rather than + O_RDWR. If someone can no longer monitor a SCSI device that used + to be readable, this may well be the reason why. +- smartd never checked if the number of ata or scsi devices detected + was greater than the max number it could monitor. Now it does. + +* Fri Oct 25 2002 Bruce Allen <smartmontools-support@lists.sourceforge.net> +- changes to the Makefile and spec file so that if there are ungzipped manual + pages in place these will be removed so that the new gzipped man pages are + visible. +- smartd on startup now looks in the configuration file /etc/smartd.conf for + a list of devices which to include in its monitoring list. See man page + (man smartd) for syntax. If not found, try all ata and ide devices. +- smartd: close file descriptors of SCSI device if not SMART capable + Closes ALL file descriptors after forking to daemon. +- added new temperature attribute (231, temperature) +- smartd: now open ATA disks using O_RDONLY + +* Thu Oct 24 2002 Bruce Allen <smartmontools-support@lists.sourceforge.net> +- smartd now prints the name of a failed or changed attribute into logfile, + not just ID number +- Changed name of -p (print version) option to -V +- Minor change in philosophy: if a SMART command fails or the device + appears incapable of a SMART command that the user has asked for, + complain by printing an error message, but go ahead and try + anyway. Since unimplemented SMART commands should just return an + error but not cause disk problems, this should't cause any + difficulty. +- Added two new flags: q and Q. q is quiet mode - only print: For + the -l option, errors recorded in the SMART error log; For the -L + option, errors recorded in the device self-test log; For the -c + SMART "disk failing" status or device attributes (pre-failure or + usage) which failed either now or in the past; For the -v option + device attributes (pre-failure or usage) which failed either now + or in the past. Q is Very Quiet mode: Print no ouput. The only + way to learn about what was found is to use the exit status of + smartctl. +- smartctl now returns sensible values (bitmask). See smartctl.h + for the values, and the man page for documentation. +- The SMART status check now uses the correct ATA call. If failure + is detected we search through attributes to list the failed ones. + If the SMART status check shows GOOD, we then look to see if their + are any usage attributes or prefail attributes have failed at any + time. If so we print them. +- Modified function that prints vendor attributes to say if the + attribute has currently failed or has ever failed. +- -p option now prints out license info and CVS strings for all + modules in the code, nicely formatted. +- Previous versions of this code (and Smartsuite) only generate + SMART failure errors if the value of an attribute is below the + threshold and the prefailure bit is set. However the ATA Spec + (ATA4 <=Rev 4) says that it is a SMART failure if the value of an + attribute is LESS THAN OR EQUAL to the threshold and the + prefailure bit is set. This is now fixed in both smartctl and + smartd. Note that this is a troubled subject -- the original + SFF 8035i specification defining SMART was inconsistent about + this. One section says that Attribute==Threshold is pass, + and another section says it is fail. However the ATA specs are + consistent and say Attribute==Threshold is a fail. +- smartd did not print the correct value of any failing SMART attribute. It + printed the index in the attribute table, not the attribute + ID. This is fixed. +- when starting self-tests in captive mode ioctl returns EIO because + the drive has been busied out. Detect this and don't return an eror + in this case. Check this this is correct (or how to fix it?) + - fixed possible error in how to determine ATA standard support + for devices with no ATA minor revision number. +- device opened only in read-only not read-write mode. Don't need R/W + access to get smart data. Check this with Andre. +- smartctl now handles all possible choices of "multiple options" + gracefully. It goes through the following phases of operation, + in order: INFORMATION, ENABLE/DISABLE, DISPLAY DATA, RUN/ABORT TESTS. + Documentation has bee updated to explain the different phases of + operation. Control flow through ataPrintMain() + simplified. +- If reading device identity information fails, try seeing if the info + can be accessed using a "DEVICE PACKET" command. This way we can + at least get device info. +- Modified Makefile to automatically tag CVS archive on issuance of + a release +- Modified drive detection so minor device ID code showing ATA-3 rev + 0 (no SMART) is known to not be SMART capable. +- Now verify the checksum of the device ID data structure, and of the + attributes threshold structure. Before neither of these + structures had their checksums verified. +- New behavior vis-a-vis checksums. If they are wrong, we log + warning messages to stdout, stderr, and syslog, but carry on + anyway. All functions now call a checksumwarning routine if the + checksum doesn't vanish as it should. +- Changed Read Hard Disk Identity function to get fresh info from + the disk on each call rather than to use the values that were read + upon boot-up into the BIOS. This is the biggest change in this + release. The ioctl(device, HDIO_GET_IDENTITY, buf ) call should + be avoided in such code. Note that if people get garbled strings + for the model, serial no and firmware versions of their drives, + then blame goes here (the BIOS does the byte swapping for you, + apparently!) +- Function ataSmartSupport now looks at correct bits in drive + identity structure to verify first that these bits are valid, + before using them. +- Function ataIsSmartEnabled() written which uses the Drive ID state + information to tell if SMART is enabled or not. We'll carry this + along for the moment without using it. +- Function ataDoesSmartWork() guaranteed to work if the device + supports SMART. +- Replace some numbers by #define MACROS +- Wrote Function TestTime to return test time associated with each + different type of test. +- Thinking of the future, have added a new function called + ataSmartStatus2(). Eventually when I understand how to use the + TASKFILE API and am sure that this works correctly, it will + replace ataSmartStatus(). This queries the drive directly to + see if the SMART status is OK, rather than comparing thresholds to + attribute values ourselves. But I need to get some drives that fail + their SMART status to check it. + +* Thu Oct 17 2002 Bruce Allen <smartmontools-support@lists.sourceforge.net> +- Removed extraneous space before some error message printing. +- Fixed some character buffers that were too short for contents. + Only used for unrecognized drives, so probably damage was minimal. + +* Wed Oct 16 2002 Bruce Allen <smartmontools-support@lists.sourceforge.net> +- Initial release. Code is derived from smartsuite, and is + intended to be compatible with the ATA/ATAPI-5 specifications. +- For IBM disks whose raw temp data includes three temps. print all + three +- print timestamps for error log to msec precision +- added -m option for Hitachi disks that store power on life in + minutes +- added -L option for printing self-test error logs +- in -l option, now print power on lifetime, so that one can see + when the error took place +- updated SMART structure definitions to ATA-5 spec +- added -p option +- added -f and -F options to enable/disable autosave threshold + parameters + diff --git a/www/3w-xxxx.txt b/www/3w-xxxx.txt deleted file mode 100644 index 5dde49c57..000000000 --- a/www/3w-xxxx.txt +++ /dev/null @@ -1,157 +0,0 @@ ---------------------------------------------------------------------------- -# November 27, 2003 -# -# This patch is now against the official 3ware version 1.02.00.036 3w-xxxx.c driver -# dated Wed Jul 16 20:30:28 2003. Instructions for use: -# -# [1] download the 1.02.00.036 3w-xxxx.c driver from -# http://www.3ware.com/support/download.asp -# -# [2] Unpack it: -# tar zxvf rh7x_8x.tgz (or su7x_8x.tgz for SuSE) -# -# [3] Unpack the source code, and move to the right directory: -# cd src/2.4 -# tar zxvf 3w-xxxx.tgz -# cd driver -# -# [4] Copy THIS FILE (what you are reading!) into that -# directory and name it 3w-xxxx.txt -# -# [5] Patch the driver: -# patch < 3w-xxxx.txt -# You should get the response 'patching file 3w-xxxx.c'. -# -# [6] Build the driver with the command: -# make -# This will create the driver: a file named 3w-xxxx.o -# -# [7] Load the driver (you must be root to do this): -# /sbin/insmod ./3w-xxxx.o -# [Note: if '/sbin/lsmod' shows that the driver is loaded already, -# then unmount any file systems that use it, then unload the driver -# with '/sbin/rmmod 3w-xxxx' first!] -# -# [8] Copy the driver into place in the kernel tree: -# cp ./3w-xxxx.o /lib/modules/`uname -r`/kernel/drivers/scsi -# That's it! -# -# August 14, 2003 -# -# Adam Radford has incorporated a change that now allows the 3w-xxxx -# driver to return the Cylinder Low/High values. These are needed to -# get the SMART health status. This patch incorporates those changes -# as well. -# -# August 12, 2003 -# -# 3ware has incorporated a more general version of this fix into their latest -# 3w-xxxx driver release. Rather than using this patch, you can upgrade your -# 3w-xxxx driver to version 1.02.00.037 or greater. Or you can use this patch. -# -# August 8, 2003 -# PATCH FOR 3WARE 3w-xxxx DRIVER -# Bruce Allen ballen at gravity.phys.uwm.edu -# CVS ID of this file: $Id: 3w-xxxx.txt,v 1.5 2003/11/28 17:58:50 ballen4705 Exp $ -# -# To apply this patch, save this entire file to 3w-xxxx.txt in a -# directory containing the original unpatched 3w-xxxx.c file. Then -# given the command: -# patch < 3w-xxxx.txt -# That's it! -# -# TECHNICAL EXPLANATION OF THE PATCH FOLLOWS. SKIP IT IF YOU DON'T CARE. -# -# The 3w-xxxx SCSI RAID driver for 3ware Escalade controller cards has a bug -# in the "passthru" ioctl() which prevents two SMART commands from being -# passed to the ATA devices behind the controller. The commands are: -# -# SMART ENABLE/DISABLE ATTRIBUTE AUTOSAVE -# (Command Register=0xB0/Feature Register=0xD2) -# -# SMART ENABLE/DISABLE AUTOMATIC OFF-LINE -# (Command Register=0xB0/Feature Register=0xDB) -# -# [Note: the second of these commands is listed as "Obsolete" in the ATA -# specifications. It was originally defined in SFF-8035i. Most vendors -# (IBM/Hitachi, Maxtor, Samsung, WD, among others) still implement it for -# backwards compatibility.] -# -# The problem arises because in both cases (stupidly!) the ENABLE subcommand -# is indicated with a nonzero value of the Sector Count Register. For the -# AUTOSAVE command one uses Sector Count Register=0xF1 and for the AUTOMATIC -# OFF-LINE command one uses Sector Count Register=0xF8. -# -# This provokes the following error messages from the 3w-xxxx driver: -# 3w-xxxx: tw_ioctl(): Passthru size (123392) too big. -# 3w-xxxx: tw_ioctl(): Passthru size (126976) too big. -# and the driver doesn't pass the ATA command on. This is because the -# passthru part of the 3w-xxxx driver assumes that the value in the Sector -# Count Register is the number of 512-byte blocks to transfer, and these -# values exceed the internal buffer sizes. -# -# In fact both of these are non-data commands, and so this is trivial to -# fix. I am attaching an 8-line patch for this purpose. It looks for these -# particular commands and then treats them as non-data commands. It has been -# tested on both a 6800 and a 7500 controller, and should be endian-order -# and 32/64-bit clean. -# -# [Note: the normal linux ide drivers also assume that the Sector Count -# Register is the number of 512-byte sectors to transfer to user space. -# But in that case the user can simply allocate a userland buffer large -# enough to hold the 0xf1*0x200 or 0xf8*0x200 bytes, and then ignore the -# contents.] -# -# ----------------------------------------------------------------------- - ---- 3w-xxxx.c.orig Wed Jul 16 20:30:28 2003 -+++ 3w-xxxx.c Thu Nov 27 11:20:25 2003 -@@ -173,6 +173,9 @@ - 1.02.00.035 - Improve tw_allocate_memory() memory allocation. - Fix tw_chrdev_ioctl() to sleep correctly. - 1.02.00.036 - Increase character ioctl timeout to 60 seconds. -+ -+ This version 1.02.00.036 3w-xxxx.c driver has been patched for full smartmontools support. -+ - */ - - #include <linux/module.h> -@@ -1930,12 +1933,15 @@ - } - - passthru = (TW_Passthru *)tw_dev->command_packet_virtual_address[request_id]; -- passthru->sg_list[0].length = passthru->sector_count*512; -- if (passthru->sg_list[0].length > TW_MAX_PASSTHRU_BYTES) { -- printk(KERN_WARNING "3w-xxxx: tw_ioctl(): Passthru size (%d) too big.\n", passthru->sg_list[0].length); -- return 1; -+ /* Don't load sg_list for non-data ATA cmds */ -+ if ((passthru->param != 0) && (passthru->param != 0x8)) { -+ passthru->sg_list[0].length = passthru->sector_count*512; -+ if (passthru->sg_list[0].length > TW_MAX_PASSTHRU_BYTES) { -+ printk(KERN_WARNING "3w-xxxx: tw_ioctl(): Passthru size (%d) too big.\n", passthru->sg_list[0].length); -+ return 1; -+ } -+ passthru->sg_list[0].address = tw_dev->alignment_physical_address[request_id]; - } -- passthru->sg_list[0].address = tw_dev->alignment_physical_address[request_id]; - tw_post_command_packet(tw_dev, request_id); - return 0; - case TW_CMD_PACKET: -@@ -2185,8 +2191,15 @@ - ioctl = (TW_Ioctl *)buff; - switch (ioctl->opcode) { - case TW_ATA_PASSTHRU: -- passthru = (TW_Passthru *)ioctl->data; -- memcpy(buff, tw_dev->alignment_virtual_address[request_id], passthru->sector_count * 512); -+ passthru = (TW_Passthru *)ioctl->data; -+ /* Don't return data for non-data ATA cmds */ -+ if ((passthru->param != 0) && (passthru->param != 0x8)) -+ memcpy(buff, tw_dev->alignment_virtual_address[request_id], passthru->sector_count * 512); -+ else { -+ /* For non-data cmds, return cmd pkt */ -+ if (tw_dev->srb[request_id]->request_bufflen >= sizeof(TW_Command)) -+ memcpy(buff, tw_dev->command_packet_virtual_address[request_id], sizeof(TW_Command)); -+ } - break; - case TW_CMD_PACKET_WITH_DATA: - dprintk(KERN_WARNING "3w-xxxx: tw_ioctl_complete(): caught TW_CMD_PACKET_WITH_DATA.\n"); diff --git a/www/BadBlockHowTo.txt b/www/BadBlockHowTo.txt deleted file mode 100644 index f59086d1d..000000000 --- a/www/BadBlockHowTo.txt +++ /dev/null @@ -1,505 +0,0 @@ -THIS DOCUMENT SHOWS HOW TO IDENTIFY THE FILE ASSOCIATED WITH AN -UNREADABLE DISK SECTOR, AND HOW TO FORCE THAT SECTOR TO REALLOCATE. - -Assumptions: Linux OS, ext2 or ext3 file system. - -Bruce Allen <smartmontools-support@lists.sourceforge.net> - -Thanks to Sergey Vlasov, Theodore Ts'o, Michael Bendzick, and others -for explaining this to me. I would like to add text showing how to do -this for other file systems, in particular ReiserFS, XFS, and JFS: -please email me if you can provide this information. - -NOTE: Starting with GNU coreutils release 5.3.0, dd on Linux includes -options 'iflag=direct' and 'oflag=direct'. Using these with the dd commands -below should be helpful, because adding these flags should avoid any interaction -with the block buffering IO layer in Linux and permit direct reads/writes -from the raw device. Use 'dd --help' to see if your version of dd supports -these options. If not, build the latest code from -fttp://alpha.gnu.org/gnu/coreutils. - -In this example, the disk is failing self-tests at Logical Block -Address LBA = 0x016561e9 = 23421417. The LBA counts sectors in units -of 512 bytes, and starts at zero. - ------------------------------------------------------------------------------------------------ -root]# smartctl -l selftest /dev/hda: - -SMART Self-test log structure revision number 1 -Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error -# 1 Extended offline Completed: read failure 90% 217 0x016561e9 ------------------------------------------------------------------------------------------------ - -Note that other signs that there is a bad sector on the disk can be -found in the non-zero value of the Current Pending Sector count: ------------------------------------------------------------------------------------------------ -root]# smartctl -A /dev/hda -ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE - 5 Reallocated_Sector_Ct 0x0033 100 100 005 Pre-fail Always - 0 -196 Reallocated_Event_Count 0x0032 100 100 000 Old_age Always - 0 -197 Current_Pending_Sector 0x0022 100 100 000 Old_age Always - 1 -198 Offline_Uncorrectable 0x0008 100 100 000 Old_age Offline - 1 ------------------------------------------------------------------------------------------------ - -First Step: We need to locate the partition on which this sector of -the disk lives: ------------------------------------------------------------------------------------------------ -root]# fdisk -lu /dev/hda - -Disk /dev/hda: 123.5 GB, 123522416640 bytes -255 heads, 63 sectors/track, 15017 cylinders, total 241254720 sectors -Units = sectors of 1 * 512 = 512 bytes - - Device Boot Start End Blocks Id System -/dev/hda1 * 63 4209029 2104483+ 83 Linux -/dev/hda2 4209030 5269319 530145 82 Linux swap -/dev/hda3 5269320 238227884 116479282+ 83 Linux -/dev/hda4 238227885 241248104 1510110 83 Linux ------------------------------------------------------------------------------------------------ - -The partition /dev/hda3 starts at LBA 5269320 and extends past the -'problem' LBA. The 'problem' LBA is offset 23421417 - 5269320 = -18152097 sectors into the partition /dev/hda3. - -To verify the type of the file system and the mount point, look in -/etc/fstab: ------------------------------------------------------------------------------------------------ -root]# grep hda3 /etc/fstab -/dev/hda3 /data ext2 defaults 1 2 ------------------------------------------------------------------------------------------------ -You can see that this is an ext2 file system, mounted at /data. - -Second Step: we need to find the blocksize of the file system -(normally 4096 bytes for ext2): ------------------------------------------------------------------------------------------------ -root]# tune2fs -l /dev/hda3 | grep Block -Block count: 29119820 -Block size: 4096 ------------------------------------------------------------------------------------------------ -In this case the block size is 4096 bytes. - -Third Step: we need to determine which File System Block contains this -LBA. The formula is: - b = (int)((L-S)*512/B) -where: -b = File System block number -B = File system block size in bytes -L = LBA of bad sector -S = Starting sector of partition as shown by fdisk -lu -and (int) denotes the integer part. - -In our example, L=23421417, S=5269320, and B=4096. Hence the -'problem' LBA is in block number - b = (int)18152097*512/4096 = (int)2269012.125 -so b=2269012. - -Note: the fractional part of 0.125 indicates that this problem LBA is -actually the second of the eight sectors that make up this file system -block. - -Fourth Step: we use debugfs to locate the inode stored in this block, -and the file that contains that inode: ------------------------------------------------------------------------------------------------ -root]# debugfs -debugfs 1.32 (09-Nov-2002) -debugfs: open /dev/hda3 -debugfs: icheck 2269012 -Block Inode number -2269012 41032 -debugfs: ncheck 41032 -Inode Pathname -41032 /S1/R/H/714197568-714203359/H-R-714202192-16.gwf ------------------------------------------------------------------------------------------------ - -In this example, you can see that the problematic file (with the mount -point included in the path) is: -/data/S1/R/H/714197568-714203359/H-R-714202192-16.gwf - - -To force the disk to reallocate this bad block we'll write zeros to -the bad block, and sync the disk: ------------------------------------------------------------------------------------------------ -root]# dd if=/dev/zero of=/dev/hda3 bs=4096 count=1 seek=2269012 -root]# sync ------------------------------------------------------------------------------------------------ - -NOTE: THIS LAST STEP HAS PERMANENTLY AND IRRETREVIABLY DESTROYED SOME -OF THE DATA THAT WAS IN THIS FILE. DON'T DO THIS UNLESS YOU DON'T -NEED THE FILE OR YOU CAN REPLACE IT WITH A FRESH OR CORRECT VERSION. - - -Now everything is back to normal: the sector has been reallocated. -Compare the output just below to similar output near the top of this -article: ------------------------------------------------------------------------------------------------ -root]# smartctl -A /dev/hda -ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE - 5 Reallocated_Sector_Ct 0x0033 100 100 005 Pre-fail Always - 1 -196 Reallocated_Event_Count 0x0032 100 100 000 Old_age Always - 1 -197 Current_Pending_Sector 0x0022 100 100 000 Old_age Always - 0 -198 Offline_Uncorrectable 0x0008 100 100 000 Old_age Offline - 1 ------------------------------------------------------------------------------------------------ - -Note: for some disks it may be necessary to update the SMART Attribute values by using -smartctl -t offline /dev/hda - -The disk now passes its self-tests again: - ------------------------------------------------------------------------------------------------ -root]# smartctl -t long /dev/hda [wait until test completes, then] -root]# smartctl -l selftest /dev/hda - -SMART Self-test log structure revision number 1 -Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error -# 1 Extended offline Completed without error 00% 239 - -# 2 Extended offline Completed: read failure 90% 217 0x016561e9 -# 3 Extended offline Completed: read failure 90% 212 0x016561e9 -# 4 Extended offline Completed: read failure 90% 181 0x016561e9 -# 5 Extended offline Completed without error 00% 14 - -# 6 Extended offline Completed without error 00% 4 - ------------------------------------------------------------------------------------------------ - -and no longer shows any offline uncorrectable sectors: - ------------------------------------------------------------------------------------------------ -root]# smartctl -A /dev/hda -ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE - 5 Reallocated_Sector_Ct 0x0033 100 100 005 Pre-fail Always - 1 -196 Reallocated_Event_Count 0x0032 100 100 000 Old_age Always - 1 -197 Current_Pending_Sector 0x0022 100 100 000 Old_age Always - 0 -198 Offline_Uncorrectable 0x0008 100 100 000 Old_age Offline - 0 ------------------------------------------------------------------------------------------------ - - - -A SECOND EXAMPLE - -On this drive, the first sign of trouble was this email from smartd: - - To: ballen - Subject: SMART error (selftest) detected on host: medusa-slave166.medusa.phys.uwm.edu - - This email was generated by the smartd daemon running on host: - medusa-slave166.medusa.phys.uwm.edu in the domain: master001-nis - - The following warning/error was logged by the smartd daemon: - Device: /dev/hda, Self-Test Log error count increased from 0 to 1 - - -Running smartctl -a /dev/hda confirmed the problem: - -Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error -# 1 Extended offline Completed: read failure 80% 682 0x021d9f44 - -Note that the failing LBA reported is 0x021d9f44 (base 16) = 35495748 (base 10) - -ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE - 5 Reallocated_Sector_Ct 0x0033 100 100 005 Pre-fail Always - 0 -196 Reallocated_Event_Count 0x0032 100 100 000 Old_age Always - 0 -197 Current_Pending_Sector 0x0022 100 100 000 Old_age Always - 3 -198 Offline_Uncorrectable 0x0008 100 100 000 Old_age Offline - 3 - -and one can see above that there are 3 sectors on the list of pending -sectors that the disk can't read but would like to reallocate. - -The device also shows errors in the SMART error log: - -Error 212 occurred at disk power-on lifetime: 690 hours - After command completion occurred, registers were: - ER ST SC SN CL CH DH - -- -- -- -- -- -- -- - 40 51 12 46 9f 1d e2 Error: UNC 18 sectors at LBA = 0x021d9f46 = 35495750 - - Commands leading to the command that caused the error were: - CR FR SC SN CL CH DH DC Timestamp Command/Feature_Name - -- -- -- -- -- -- -- -- --------- -------------------- - 25 00 12 46 9f 1d e0 00 2485545.000 READ DMA EXT - -Signs of trouble at this LBA may also be found in SYSLOG: - -[root]# grep LBA /var/log/messages | awk '{print $12}' | sort | uniq - LBAsect=35495748 - LBAsect=35495750 - -So I decide to do a quick check to see how many bad sectors there -really are. Using the bash shell I check 70 sectors around the trouble -area: - -[root]# export i=35495730 -[root]# while [ $i -lt 35495800 ] - > do echo $i - > dd if=/dev/hda of=/dev/null bs=512 count=1 skip=$i - > let i+=1 - > done - -<SNIP> - -35495734 -1+0 records in -1+0 records out -35495735 -dd: reading `/dev/hda': Input/output error -0+0 records in -0+0 records out - -<SNIP> - -35495751 -dd: reading `/dev/hda': Input/output error -0+0 records in -0+0 records out -35495752 -1+0 records in -1+0 records out - -<SNIP> - -which shows that the seventeen sectors 35495735-35495751 (inclusive) -are not readable. - -Next, we identify the files at those locations. The partitioning -information on this disk is identical to the first example above, and -as in that case the problem sectors are on the third partition -/dev/hda3. So we have: - L=35495735 to 35495751 - S=5269320 - B=4096 -so that b=3778301 to 3778303 are the three bad blocks in the file -system. - -[root]# debugfs -debugfs 1.32 (09-Nov-2002) -debugfs: open /dev/hda3 -debugfs: icheck 3778301 -Block Inode number -3778301 45192 -debugfs: icheck 3778302 -Block Inode number -3778302 45192 -debugfs: icheck 3778303 -Block Inode number -3778303 45192 -debugfs: ncheck 45192 -Inode Pathname -45192 /S1/R/H/714979488-714985279/H-R-714979984-16.gwf -debugfs: quit - -And finally, just to confirm that this is really the damaged file: - -[root]# md5sum /data/S1/R/H/714979488-714985279/H-R-714979984-16.gwf -md5sum: /data/S1/R/H/714979488-714985279/H-R-714979984-16.gwf: Input/output error - -Finally we force the disk to reallocate the three bad blocks: -[root]# dd if=/dev/zero of=/dev/hda3 bs=4096 count=3 seek=3778301 -[root]# sync - -We could also probably use: -[root]# dd if=/dev/zero of=/dev/hda bs=512 count=17 seek=35495735 - -At this point we now have: -ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE - 5 Reallocated_Sector_Ct 0x0033 100 100 005 Pre-fail Always - 0 -196 Reallocated_Event_Count 0x0032 100 100 000 Old_age Always - 0 -197 Current_Pending_Sector 0x0022 100 100 000 Old_age Always - 0 -198 Offline_Uncorrectable 0x0008 100 100 000 Old_age Offline - 0 - -which is encouraging, since the pending sectors count is now zero. -Note that the drive reallocation count has not yet increased: the -drive may now have confidence in these sectors and have decided not to -reallocate them.. - -A device self test: - [root#] smartctl -t long /dev/hda -(then wait about an hour) shows no unreadable sectors or errors: - -Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error -# 1 Extended offline Completed without error 00% 692 - -# 2 Extended offline Completed: read failure 80% 682 0x021d9f44 - -[USEFUL HINTS ADDED BY OTHERS] - ---------------------------------------------------------------------------- - -From: Kay Diederichs - -I read your badblocks-howto at -http://smartmontools.sourceforge.net/BadBlockHowTo.txt and greatly -benefitted from it. One thing that's (maybe) missing is that often the -"smartctl -t long" scan finds a bad sector which is _not_ assigned to -any file. In that case it does not help to run debugfs, or rather -debugfs reports the fact that no file owns that sector. Furthermore, -it is somewhat laborious to come up with the correct numbers for -debugfs, and debugfs is slow ... - -So what I suggest in the case of presence of -Current_Pending_Sector/Offline_Uncorrectable errors is to create a -huge file on that filesystem. - dd if=/dev/zero of=/some/mount/point bs=4k -creates the file. Leave it running until the partition/filesystem is -full. This will make the disk reallocate those sectors which do not -belong to a file. Check the "smartctl -a" output after that and make -sure that the sectors are reallocated. If any remain, use the debugfs -method. Of course the usual caveats apply - back it up first, and so -on. - ---------------------------------------------------------------------------- - -From: Frederic BOITEUX - -HOW TO LOCATE AND REPAIR BAD BLOCKS ON AN LVM VOLUME - -* Smartd reports an error in a short test�: -------------------------------------------- - -# smartctl -a /dev/hdb -... -SMART Self-test log structure revision number 1 -Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error -# 1 Short offline Completed: read failure 90% 66 37383668 - -So the disk has a bad block located in LBA block 37383668 - - -* In which physical partition is the bad block�? ------------------------------------------------- - -# sfdisk -lu /dev/hdb - -Disk /dev/hdb: 9729 cylinders, 255 heads, 63 sectors/track -Units = sectors of 512 bytes, counting from 0 - - Device Boot Start End #sectors Id System -/dev/hdb1 63 996029 995967 82 Linux swap / Solaris -/dev/hdb2 * 996030 1188809 192780 83 Linux -/dev/hdb3 1188810 156296384 155107575 8e Linux LVM -/dev/hdb4 0 - 0 0 Empty - -It's in the /dev/hdb3 partition, a LVM2 partition. -From the LVM2 partition beginning, the bad block has an offset of -(37383668 - 1188810) = 36194858 - -We have to find in which LVM2 logical partition the block belongs to. - - -* In which logical partition is the bad block�? ------------------------------------------------ - -*IMPORTANT*�: LVM2 can use different schemes dividing its physical - partitions to logical ones�: linear, striped, contiguous or - not... The following example assumes that allocation is linear�! - - -The physical partition used by LVM2 is divided in PE (Physical Extent) -units of the same size, starting at pe_start' 512 bytes blocks from -the beginning of the physical partition. - -The 'pvdisplay' command gives the size of the PE (in KB) of the -LVM partition�: -# part=/dev/hdb3�; pvdisplay -c $part | awk -F: '{print $8}' -4096 - -To get its size in LBA block size (512 bytes or 0.5 KB), we multiply this -number by 2�: 4096 * 2 = 8192 blocks for each PE. - - -To find the offset from the beginning of the physical partition is a -bit more difficult�: if you have a recent LVM2 version, try�: -# pvs -o+pe_start $part - -Either, you can look in /etc/lvm/backup�: -# grep pe_start $(grep -l $part /etc/lvm/backup/*) - pe_start = 384 - - -Then, we search in which PE is the badblock, calculating the PE rank -in which the faulty block of the partition is�: -physical partition's bad block number / sizeof(PE) = -36194858 / 8192 = 4418.3176 - -So we have to find in which LVM2 logical partition is used the PE -number 4418 (count starts from 0)�: -# lvdisplay --maps |egrep 'Physical|LV Name|Type' - LV Name /dev/WDC80Go/racine - Type linear - Physical volume /dev/hdb3 - Physical extents 0 to 127 - LV Name /dev/WDC80Go/usr - Type linear - Physical volume /dev/hdb3 - Physical extents 128 to 1407 - LV Name /dev/WDC80Go/var - Type linear - Physical volume /dev/hdb3 - Physical extents 1408 to 1663 - LV Name /dev/WDC80Go/tmp - Type linear - Physical volume /dev/hdb3 - Physical extents 1664 to 1791 - LV Name /dev/WDC80Go/home - Type linear - Physical volume /dev/hdb3 - Physical extents 1792 to 3071 - LV Name /dev/WDC80Go/ext1 - Type linear - Physical volume /dev/hdb3 - Physical extents 3072 to 10751 - LV Name /dev/WDC80Go/ext2 - Type linear - Physical volume /dev/hdb3 - Physical extents 10752 to 18932 - -So the PE #4418 is in the /dev/WDC80Go/ext1 LVM logical partition. - - -* Size of logical block of filesystem on /dev/WDC80Go/ext1�: ------------------------------------------------------------- - -It's a ext3 fs, so I get it like this�: -# dumpe2fs /dev/WDC80Go/ext1 | grep 'Block size' -dumpe2fs 1.37 (21-Mar-2005) -Block size: 4096 - - -* bad block number for the filesystem�: ---------------------------------------- - -The logical partition begins on PE 3072�: - (# PE's start of partition * sizeof(PE)) + parttion offset[pe_start] = - (3072 * 8192) + 384 = 25166208 -512b block of the physical partition, so the bad block number for the -filesystem� is�: -(36194858 - 25166208) / (sizeof(fs block) / 512) -= 11028650 / (4096 / 512) = 1378581.25 - - -* Test of the fs bad block�: - -dd if=/dev/WDC80Go/ext1 of=block1378581 bs=4096 count=1 skip=1378581 - -If this dd command succeeds, without any error message in console or -syslog, then the block number calculation is probably wrong�! *Don't* -go further, re-check it and if you don't find the error, please -renunce�! - - -* Search / correction follows the same scheme as for simple - partitions�: - -- find possible impacted files with debugfs (icheck <fs block nb>, - then ncheck <icheck nb>). - -- reallocate bad block writing zeros in it, *using the fs block size*�: - -dd if=/dev/zero of=/dev/WDC80Go/ext1 count=1 bs=4096 seek=1378581 - -Et voil�! - ---------------------------------------------------------------------------- - - - - -This document is version $Id: BadBlockHowTo.txt,v 1.9 2006/06/12 02:16:50 ballen4705 Exp $ -It is Copyright Bruce Allen (2004-6) and distributed under GPL2. - - diff --git a/www/BadBlockSCSIHowTo.txt b/www/BadBlockSCSIHowTo.txt deleted file mode 100644 index a146d0e68..000000000 --- a/www/BadBlockSCSIHowTo.txt +++ /dev/null @@ -1,169 +0,0 @@ -Introduction -============ -This document supplies some extra information, mainly associated with -SCSI disks, to the http://smartmontools.sourceforge.net/BadBlockHowTo.txt -document which concentrates on ATA disks and recovery at the file -system level. - -As the name of the link suggests, the BadBlockHowTo.txt discusses what -can be done when smartmontools reports a bad block. The approach -taken is to use the facilities within the ext2 and ext3 file systems -in Linux to remap around the damaged section of the disk. While this -approach will work with SCSI disks as well, it does have some -disadvantages. - -SCSI disks have their own logical to physical mapping allowing -a damaged sector (usually 512 bytes long) to be remapped irrespective -of the operating system, file system or software RAID being used. -Also if the disk has been "ejected" from a RAID, after repairing -its bad block(s) (or simply reformatting it) the disk could be -used in other roles. - -Details -======= -The terms "block" and "sector" are used interchangeably, although -"block" tends to get used in higher level or more abstract contexts -such as a "logical block". - -When a SCSI disk is formatted, defective sectors identified during -the manufacturing process (the so called "primary" list: PLIST), -those found during the format itself (the "certification" list: CLIST), -those given explicitly to the format command (the DLIST) and optionally -the previous "grown" list (GLIST) are not used in the logical block -map. The number (and low level addresses) of the unmapped sectors can be -found with the READ DEFECT DATA SCSI command. - -SCSI disks tend to be divided into zones which have spare sectors and -perhaps spare tracks, to support the logical block address mapping -process. The idea is that if a logical block is remapped, the heads do not -have to move a long way to access the replacement sector. Note that spare -sectors are a scarce resource. - -Once a SCSI disk format has completed successfully, other problems -may appear over time. These fall into two categories: - - recoverable: the Error Correction Codes (ECC) detect a problem - but it is "small" enough to be corrected. Optionally other - strategies such as retrying the access may retriev the data. - - unrecoverable: try as it may, the disk logic and ECC algorithms - cannot recover the data. This is often reported as a "medium - error". -Other things can go wrong, typically associated with the transport and -they will be reported using a term other than "medium error". For example -a disk may decide a read operation was successful but a computer's host -bus adapter (HBA) checking the incoming data detects a CRC error due to -a bad cable or termination. - -Depending on the disk vendor, recoverable errors can be ignored. After all, -some disks have up to 68 bytes of ECC above the payload size of 512 bytes -so why use up spare sectors which are limited in number (see note A below)? -If the disk does decide to re-allocate (reassign) a sector, then whether it -tries or reports an error immediately depends on the settings of the ARRE -and AWRE bits in the read-write error recovery mode page. Usually these bits -are set enabling automatic (read or write) re-allocation. [It is possible -that disks inside a hardware RAID have those bits cleared (disabled) and the -RAID controller does things manually or flags the disk for replacement.] -The automatic re-allocation may also fail if the zone (or disk) has run out -of spare sectors. - -Another point about RAIDs, and applications that require a high data rate, -is that the controller logic may not want a disk to spend too long trying -to recover an error. - -Unrecoverable errors will cause a "medium error" sense key, perhaps with -some useful additional sense information. If the extended background self -test includes a full disk read scan, one would expect the self test log to -list the bad block, as shown in the BadBlockHowTo.txt document. Recent SCSI -disks with a periodic background scan should also list unrecoverable read -errors (and recoverable errors as well). The advantage of the background -scan is that it runs to completion while self tests will often terminate at -the first serious error. - -SCSI disks expect unrecoverable errors to be fixed manually using the -REASSIGN SCSI command since loss of data is involved. It is possible that an -operating system or a file system could issue the REASSIGN SCSI command -itself but the author is unaware of any examples. The REASSIGN SCSI command -will reassign one or more blocks, attempting to (partially ?) recover the -data (a forlorn hope at this stage), fetch an unused spare sector from the -current zone while adding the damaged old sector to the GLIST (hence the -name "grown" list). The contents of the GLIST may not be that interesting -but smartctl prints out the number of entries in the grown list and if that -number grows quickly, the disk may be approaching the end of its useful life. - -Here is an alternate brute force technique to consider: if the data on the -SCSI or ATA disk has all been backed up (e.g. is held on the other disks in -a RAID 5 enclosure), then simply reformatting the disk may be the least -fiddly approach. - -What to do -========== -Given a "bad block", it still may be useful to look at fdisk (if the disk -has multiple partitions) to find out which partition is involved, then use -debugfs (or a similar tool for the file system in question) to find out -which, if any, file or other part of the file system may have been damaged. -This is discussed in the BadBlockHowTo.txt document. - -Then a program that can execute the REASSIGN SCSI command is required. In -Linux (2.4 and 2.6 series), FreeBSD and Tru64 (osf) the author's sg_reassign -in the sg3_utils package can be used. Also found in that package is -sg_verify which can be used to check that a block is readable. - -Assuming logical block address 0x123456 has been reported by smartmontools -as bad block, then: - # sg_verify --lba=0x123456 /dev/sda - -should also report a problem. To check the number of elements in the -GLIST before the block reassignment, try: - # sg_reassign --grown /dev/sda - -To actually reassign that address try: - # sg_reassign --address=0x123456 /dev/sda - -If that succeeded then checking the GLIST length again should indicate -that it has grown by one element. If the disk was unable to recover -any data, then the "new" block at lba 0x123456 has vendor specific -data in it. The sg_reassign utility can also do bulk reassigns, see -'man sg_reassign' for more information. - -The dd command could be used to read the contents of the "new" block: - # dd if=/dev/sda iflag=direct skip=0x123456 of=blk.img bs=512 count=1 - -and a hex editor used to view and potentially change the 'blk.img' file. -An altered 'blk.img' file (or /dev/zero) could be written back with: - # dd if=blk.img of=/dev/sda seek=0x123456 oflag=direct bs=512 count=1 - -Notes: the 0x123456 is an arbitrary hexadecimal logical block address. -Recent versions of dd (e.g. those that support 'iflag=') support -hexadecimal addresses. Utilities in recent versions of the sg3_utils -package also accept the trailing 'h' notation for hexadecimal. -Alternatively decimal numbers could be used; most window managers have a -handy calculator that will do hex to decimal conversions. More work may -be needed at the file system level, especially if the reassigned block -held critical fs information such as a superblock or a directory. - -Even if a full backup of the disk is available, or the disk has been -"ejected" from a RAID, it may still be worthwhile to reassign the bad -block(s) that caused the problem (or simply format the disk (see sg_format -in the sg3_utils package)) and re-use the disk later (not unlike the -way a replacement disk from a manufacturer might be used). - -Conclusion -========== -This document contains some suggestions of what to do when smartmontools -reports a "bad block" on a SCSI disk. These suggestions are more general -in nature and lower level than those discussed in the BadBlockHowTo.txt -document. As always, there is no substitute for regular backups, even -high number RAIDs (e.g. 60) won't help when the user accidentally deletes -a directory. - - -Note A: Detecting and fixing an error with ECC "on the fly" and not going - the further step and reassigning the block in question may explain - why some disks have large numbers in their read error counter log. - Various worried users have reported large numbers in the "errors - corrected without substantial delay" counter field which is in the - "Errors corrected by ECC fast" column in the 'smartctl -l error' - output. - - -Douglas Gilbert -2006/9/17 diff --git a/www/FAQ.xml b/www/FAQ.xml deleted file mode 100644 index d46201b3c..000000000 --- a/www/FAQ.xml +++ /dev/null @@ -1,543 +0,0 @@ -<?xml version='1.0' encoding='ISO-8859-1'?> -<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" - "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" > - -<!-- -Layout borrowed from Doug's smartmontools_scsi.xml. The following text -is also from his file. - -This is DocBook XML that can be rendered into a single HTML page with a -command like 'xmlto html-nochunks <this_file_name>'. It can also be -rendered into multi-page HTML (drop the "-nochunks") or pdf, ps, txt, -etc. ---> - -<article id="index"> - <articleinfo> - <title>FAQ - Frequently Asked Questions</title> - <author> - <firstname>smartmontools</firstname> - <surname>developers</surname> - <affiliation> - <address> - <email>smartmontools-support@lists.sourceforge.net</email> - </address> - </affiliation> - </author> - <authorinitials>sd</authorinitials> - <pubdate>2003-09-24</pubdate> - - <revhistory> - <revision> - <revnumber>1.0</revnumber> - <date>2003-10-22</date> - <authorinitials>sd</authorinitials> - <revremark> - Moved from index.html to XML - </revremark> - </revision> - </revhistory> - - <copyright> - <year>2003</year> - <holder>Bruce Allen</holder> - </copyright> - - <legalnotice> - <para> - Permission is granted to copy, distribute and/or modify this - document under the terms of the GNU Free Documentation License, - Version 1.1 or any later version published by the Free Software - Foundation; with no Invariant Sections, with no Front-Cover Texts, - and with no Back-Cover Texts. - </para> - <para> - For an online copy of the license see - <ulink url="http://www.fsf.org/copyleft/fdl.html"> - <literal>http://www.fsf.org/copyleft/fdl.html</literal></ulink> . - </para> - - </legalnotice> - - <abstract> - <para> - FAQ - Frequently Asked Questions - </para> - </abstract> - </articleinfo> - -<!-- -<toc></toc> ---> - - -<sect1 id="a"> - -<title>What do I do if I have problems, or need support? Suppose I want -to become a developer, or suggest some new extensions?</title> - -<para>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 -e-mail to the smartmontools-support mailing list. Instructions are -available at <ulink url="http://lists.sourceforge.net/mailman/listinfo/smartmontools-support"> -<literal>http://lists.sourceforge.net/mailman/listinfo/smartmontools-support</literal></ulink> -. The list is moderated but you're not required to subscribe to it in -order to post your question.</para> - -<para>To search the archives, first go to <ulink url="http://sourceforge.net/mailarchive/forum.php?forum=smartmontools-support"> -<literal>http://sourceforge.net/mailarchive/forum.php?forum=smartmontools-support</literal></ulink> -. In the top left corner you will see a search box: use <emphasis -role="bold">Mailing List</emphasis> as the type of search. This tool -works very well.</para> - -<para>Note that from time to time SourceForge has mailing problems and -you'll get a message telling you that <emphasis role="italic">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</emphasis>. If this happens, you'll have to try again -later.</para> - -</sect1> - -<sect1 id="b"> - -<title>What are the future plans for smartmontools?</title> - -<para>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.</para> - -</sect1> - -<sect1 id="c"> - -<title>Why are you doing this?</title> - -<para>My research group at U. Wisconsin - Milwaukee runs a beowulf -cluster - <ulink url="http://www.lsc-group.phys.uwm.edu/beowulf/medusa/"> -<literal>http://www.lsc-group.phys.uwm.edu/beowulf/medusa/</literal></ulink> -- 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 -- <ulink url="http://pandora.aei.mpg.de/merlin/"> -<literal>http://pandora.aei.mpg.de/merlin/</literal></ulink> - at the -Albert Einstein Institute that has another 300 IBM ATA-6 disks (36 TB -total). It's nice to have advanced warning when a disk is going to -fail.</para> - -</sect1> - -<sect1 id="d"> - -<title>I see some strange output from smartctl. What does it -mean?</title> - -<para>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 (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 e-mail to the mailing list and we'll help you -try and figure it out.</para> - -</sect1> - -<sect1 id="e"> - -<title>What Kernel Version is needed? (Linux)</title> - -<para>Kernel versions 2.4.0 or later should work. We recommend the -latest 2.4 kernel.</para> - -<para>Vanilla kernel.org 2.2.X kernels do not support the -HDIO_DRIVE_TASK ioctl(), which is needed for the ATA drive to execute -the ATA SMART RETURN STATUS command. So these kernels will not -work.</para> - -<para>Vendor-supplied 2.2.X kernels, and vanilla 2.2.X kernels patched -with Andre Hedrick's IDE patches - <ulink url="http://www.funet.fi/pub/linux/kernel/people/hedrick/ide-2.2.20/"> -<literal>http://www.funet.fi/pub/linux/kernel/people/hedrick/ide-2.2.20/</literal></ulink> -(also available from your local kernel.org mirror, not updated for -2.2.21 or later, and probably still containing a few bugs) may support -the needed ioctl().</para> - -<para>If the configuration option CONFIG_IDE_TASK_IOCTL exists in your -2.2.X kernel source code tree, then your 2.2.X kernel will probably -support smartmontools. Note that this kernel configuration option does -<emphasis role="italic">not</emphasis> need to be enabled. Its presence -merely indicates that the required HDIO_DRIVE_TASK ioctl() is -supported.</para> - -</sect1> - -<sect1 id="f"> - -<title>What attributes does smartmontools not yet recognize?</title> - -<para>From Maxtor disks (99), (100), (101)</para> - -<para>If you can attach names/meanings to these attributes, please send -a note to the mailing list. If you have access to other SMART utilities -(especially manufacturer-specific ones, see below) and can send us -comparison output from smartctl and the other utility, that's especially -useful.</para> - -</sect1> - -<sect1 id="g"> - -<title>My Maxtor/Hitachi/Fujitsu disk is only a few days old, yet -smartctl reports its age (Attribute 9) as thousands of hours!</title> - -<para>On some recent disks, Maxtor has started to use Attribute 9 to -store the lifetime in minutes rather than hours. In this case, use the --m option (smartctl versions 5.0.X) or the --vendorattribute=9,minutes -(smartctl 5.1.X) option to correctly display hours and minutes.</para> - -<para>Some models of Fujitsu disks are known to use Attribute 9 for -lifetime in seconds. In that case, use the --vendorattribute=9,seconds -option to correctly display hours, minutes and seconds.</para> - -</sect1> - -<sect1 id="h"> - -<title>The power-on timer (Attribute 9 raw value) on my Maxtor disk acts -strange.</title> - -<para>There are three related problems with Maxtor's SMART -firmware:</para> - -<para><emphasis role="bold">1 - </emphasis>On some disks from 2001/2002, -the raw value of Attribute 9 (Power On Time) is <emphasis -role="italic">supposed</emphasis> to be minutes. But it advances at an -unpredictable rate, always more slowly than one count per minute. One -(unconfirmed) theory is that when the disk is in idle mode, the counter -stops advancing. This is only supposed to happen in standby -mode.</para> - -<para><emphasis role="bold">2 - </emphasis> 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.</para> - -<para><emphasis role="bold">3 - </emphasis> 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.</para> - -</sect1> - -<sect1 id="i"> - -<title>Where can I find manufacturer-specific disk-testing -utilities?</title> - -<para>A good listing of such utilities can be found at <ulink url="http://www.benchmarkhq.ru/english.html?/be_hdd2.html"> -<literal>http://www.benchmarkhq.ru/english.html?/be_hdd2.html</literal></ulink> -. Unfortunately most of these are for MS operating systems, but most can -be run from an MS-DOS boot disk. 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.</para> - -<para>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 <emphasis role="italic">not</emphasis> -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 -<emphasis role="italic">Vendor Specific</emphasis>, 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).</para> - -</sect1> - -<sect1 id="j"> - -<title>When I run <emphasis role="tt">smartd</emphasis>, -the SYSLOG <emphasis role="tt">/var/log/messages</emphasis> contains -messages like this:</title> - -<programlisting> -smartd: Reading Device /dev/sdv -modprobe: modprobe: Can't locate module block-major-65 -</programlisting> - -<para>This is because when <emphasis role="tt">smartd</emphasis> starts, -it looks for all ATA and SCSI devices to monitor (matching the pattern -<emphasis role="tt">/dev/hd[a-z]</emphasis> or <emphasis -role="tt">/dev/sd[a-z]</emphasis>). The log messages appear because -your system doesn't have most of these devices.</para> - -<para>Recent releases of smartd can use a configuration file <emphasis -role="tt">smartd.conf</emphasis> to specify which devices to include or -exclude from start-up search.</para> - -</sect1> - -<sect1 id="k"> - -<title>What's the story on IBM SMART disks?</title> - -<para>Apparently some of the older SMART firmware on IBM disks can -interfere with the regular operation of the disk. If you have this -problem, a firmware upgrade that fixes the problem is avaialable at -<ulink url="http://www.geocities.com/dtla_update/"> -<literal>http://www.geocities.com/dtla_update/</literal></ulink> -.</para> - -</sect1> - -<sect1 id="l"> - -<title>How can I check that the package hasn't been tampered -with?</title> - -<para>Since the <emphasis role="tt">smartmontools</emphasis> utilities -run as root, you might be concerned about something harmful being -embedded within them. Starting with release 5.19 of <emphasis -role="tt">smartmontools</emphasis>, the .rpm files and tarball have been -GPG signed. (The tarball's fingerprint is given in the SoureForge -Release Notes.) Please verify these using the GPG Signing Key available -at <ulink url="http://smartmontools.sourceforge.net/SmartmontoolsSigningKey.txt"> -<literal>http://smartmontools.sourceforge.net/SmartmontoolsSigningKey.txt</literal></ulink> -.</para> - -</sect1> - -<sect1 id="m"> - -<title>Is there a bootable standalone CD or floppy that contains -smartmontools?</title> - -<para>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 <emphasis role="bold"><emphasis role="tt">-C</emphasis></emphasis> -option of <emphasis role="bold"><emphasis -role="tt">smartctl</emphasis></emphasis> ) on disks that can not easily -be unmounted, such as those hosting the Operating System files. Or you -can use this to run <emphasis role="tt">smartctl</emphasis> on computers -that don't use Linux as the day-to-day Operating System.</para> - -<para>At present I am only aware of three such bootable disks:</para> - -<itemizedlist> -<listitem> -<para>LNX-BBC Bootable CD - <ulink url="http://www.lnx-bbc.org/"> -<literal>http://www.lnx-bbc.org/</literal></ulink></para> -</listitem> - -<listitem> -<para>Stresslinux Bootable CD - <ulink url="http://www.stresslinux.org/"> -<literal>http://www.stresslinux.org/</literal></ulink></para> -</listitem> - -<listitem> -<para>RIP (Recovery Is Possible) Bootable CD/Floppy - <ulink url="http://www.tux.org/pub/people/kent-robotti/looplinux/rip/"> -<literal>http://www.tux.org/pub/people/kent-robotti/looplinux/rip/</literal></ulink></para> -</listitem> -</itemizedlist> - -<para> Please let us know if there are others, and we'll add them to -this list.</para> - -</sect1> - -<sect1 id="n"> - -<title>Can I monitor ATA disks behind SCSI RAID controllers?</title> - -<para>From release 5.1-16, smartmontools supports 3ware SCSI RAID -controllers that use ATA disks internally. To pass commands through the -3ware controller, use the smartmontools <emphasis role="bold">-d -3ware,N</emphasis> option or Directive.</para> - -<para>In smartmontools release 5.1-16, the SMART HEALTH STATUS -(smartmontools <emphasis role="bold">-H</emphasis>) is not returned -correctly for 3ware devices. In this release, the ENABLE AUTOMATIC -OFFLINE and ENABLE ATTRIBUTE AUTOSAVE commands (smartmontools <emphasis -role="bold">-o on</emphasis> and <emphasis role="bold">-S on</emphasis>) -are <emphasis role="italic">disabled</emphasis> for 3ware devices, -because at the time 5.1-16 was released, the 3w-xxxx driver could not -pass these commands through to the ATA disks.</para> - -<para>Later smartmontools CVS code and releases <emphasis -role="italic">do</emphasis> correctly support <emphasis -role="italic">all</emphasis> of these commands. You may:</para> - -<itemizedlist> -<listitem> -<para>Use version <emphasis role="bold">1.02.00.037</emphasis> or -greater of the 3w-xxxx driver, or</para> -</listitem> - -<listitem> -<para>Patch earlier 3ware 3w-xxxx drivers with <ulink url="http://smartmontools.sourceforge.net/3w-xxxx.txt"> -<literal>http://smartmontools.sourceforge.net/3w-xxxx.txt</literal></ulink> -so that these commands reach the disks, or</para> -</listitem> - -<listitem> -<para>Use an <emphasis role="bold">unpatched</emphasis> earlier 3w-xxxx -driver (which won't pass these commands to the disks but will instead -print harmless warning messages to SYSLOG).</para> -</listitem> -</itemizedlist> - -<para>Since smartmontools 3ware support is new, please report positive -or negative experiences to the mailing list, particularly for 64-bit -and/or big-endian architectures.</para></sect1> - -<sect1 id="o"> - -<title>SCSI disks and tapes (TapeAlert)</title> - -<para>smartmontools for SCSI disks and tapes (including medium changers) -is discussed at <ulink url="http://smartmontools.sourceforge.net/smartmontools_scsi.html"> -<literal>http://smartmontools.sourceforge.net/smartmontools_scsi.html</literal></ulink> -.</para> - -</sect1> - -<sect1 id="p"> - -<title>FireWire, USB, and SATA disks/systems</title> - -<para>As for USB and FireWire (ieee1394) disks and tape drives, the news -isn't good. They appear to Linux as SCSI devices but their -implementations do not usually support those SCSI commands needed by -smartmontools. The ieee1394 consortium recently certified the first -external enclosure (containing a ATA disk and a protocol bridge) as -being compliant to the relevant standards. Such devices have already -been on the market for about 3 years and they tend to only support the -bare minimum of commands needed for device operation (i.e. S.M.A.R.T. -support is an unsupported extra).</para> - -<para>I'd be very grateful to find someone who could help me test the -smartmontools code on serial ATA (SATA) disks. They should appear as -normal ATA disks in Linux.</para> - -</sect1> - -<sect1 id="q"> - -<title>How does smartmontools differ from smartsuite?</title> - -<para>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 - <ulink url="http://ssrc.soe.ucsc.edu/"> -<literal>http://ssrc.soe.ucsc.edu/</literal></ulink>), Jack Baskin -School of Engineering, University of California, Santa Cruz. You can -find some information about the original smartsuite project here:</para> - -<itemizedlist> -<listitem> -<para>Press Release 1 - <ulink url="http://www.ucsc.edu/news_events/press_releases/archive/99-00/09-99/smart_software.htm"> -<literal>http://www.ucsc.edu/news_events/press_releases/archive/99-00/09-99/smart_software.htm</literal></ulink></para> -</listitem> - -<listitem> -<para>Press Release 2 - <ulink url="http://www.santa-cruz.com/archive/1999/September/22/local/stories/5local.htm"> -<literal>http://www.santa-cruz.com/archive/1999/September/22/local/stories/5local.htm</literal></ulink></para> -</listitem> - -<listitem> -<para>Press Release 3 - <ulink url="http://www.ucsc.edu/currents/99-00/09-27/smart.html"> -<literal>http://www.ucsc.edu/currents/99-00/09-27/smart.html</literal></ulink></para> -</listitem> -</itemizedlist> - -<para>smartmontools was derived directly from smartsuite. It differs -from smartsuite in that it supports the ATA/ATAPI-5 standard. So for -example <emphasis role="tt">smartctl</emphasis> from smartsuite has no -facility for printing the SMART self-test logs, and doesn't print -timestamp information in the most usable way.</para> - -<para>The <emphasis role="tt">smartctl</emphasis> utility in -smartmontools has added functionality for this (<emphasis role="tt">-q, --l selftest,-S, -T, -v and -m</emphasis> 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 <ulink url="http://smartmontools.cvs.sourceforge.net/viewcvs.py/smartmontools/sm5/CHANGELOG?rev=HEAD&content-type=text/plain"> -<literal>http://smartmontools.cvs.sourceforge.net/viewcvs.py/smartmontools/sm5/CHANGELOG?rev=HEAD&content-type=text/plain</literal></ulink> for a summary of what's been done.</para> - -<para>The <emphasis role="tt">smartd</emphasis> utility differs from the -smartsuite <emphasis role="tt">smartd</emphasis> in major ways. First, -it prints somewhat more informative error messages to the syslog. -Second, on startup it looks for a configuration file <emphasis -role="tt">smartd.conf</emphasis>, and if <emphasis -role="tt">smartd</emphasis> 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.</para> - -<para>In addition, the <emphasis role="tt">smartmontools</emphasis> -version of <emphasis role="tt">smartd</emphasis> 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. <emphasis -role="tt">smartd</emphasis> can also send an e-mail warning or run a -user-specified executable if it detects a problem with the disk.</para> - -<para>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 the -mailing-list.</para> - -<para>But the bottom line is that the code in smartmontools is derived -directly from smartsuite and is similar. The smartsuite package can be -found at <ulink url="http://sourceforge.net/projects/smartsuite/"> -<literal>http://sourceforge.net/projects/smartsuite/</literal></ulink> -.</para></sect1> - -<sect1 id="r"> - -<title>Does it work on Windows?</title> - -<para>Currently not, but we consider Cygwin - <ulink url="http://www.cygwin.com/"> -<literal>http://www.cygwin.com/</literal></ulink> - the way to go, -where CVS compiles almost out of the box but still lacks any specific -code to make it work. Write to the mailing list if you're interested in -porting it. Someone already sent some S.M.A.R.T. code for Windows, -which may be of use. Porting to other platforms may be easier as well -now that any Linux specific code (like linux/hdreg.h) has been removed, -and more will be done soon in that direction.</para> - -<para>A Cygwin port would probably only require and additional DLL, -cygwin1.dll, to run on plain Windows.</para></sect1> - -<sect1 id="s"> - -<title>Why has the versioning scheme changed?</title> - -<para>With the move to GNU Autoconf and GNU Automake it changed from -5.X-Y (where X and Y are one or more numbers) to 5.Y. This had to be -done because the -Y extension is used by distributions to almost always -denote a new build of the same version. So, the first version with that -change will be 5.19 and not 5.1-19.</para> - -</sect1> - -</article> diff --git a/www/Makefile b/www/Makefile deleted file mode 100644 index 485f57372..000000000 --- a/www/Makefile +++ /dev/null @@ -1,22 +0,0 @@ -# Manufactures HTML file from XML file. Note: do NOT edit the HTML -# file, only the XML file. - -all: smartmontools_scsi.html badblockhowto.html - -smartmontools_scsi.html: smartmontools_scsi.xml - xmlto html-nochunks smartmontools_scsi.xml - -badblockhowto.html: badblockhowto.xml - xmlto html-nochunks badblockhowto.xml - -upload: smartmontools_scsi.html index.html - scp smartmontools_scsi.html ballen4705@smartmontools.sourceforge.net:/home/groups/s/sm/smartmontools/htdocs - scp badblockhowto.html ballen4705@smartmontools.sourceforge.net:/home/groups/s/sm/smartmontools/htdocs - scp 3w-xxxx.txt ballen4705@smartmontools.sourceforge.net:/home/groups/s/sm/smartmontools/htdocs - scp index.html ballen4705@smartmontools.sourceforge.net:/home/groups/s/sm/smartmontools/htdocs - scp examples/*.html ballen4705@smartmontools.sourceforge.net:/home/groups/s/sm/smartmontools/htdocs/examples - scp examples/*.txt ballen4705@smartmontools.sourceforge.net:/home/groups/s/sm/smartmontools/htdocs/examples - scp BadBlockHowTo.txt ballen4705@smartmontools.sourceforge.net:/home/groups/s/sm/smartmontools/htdocs - -clean: - rm smartmontools_scsi.html badblockhowto.html diff --git a/www/SmartmontoolsSigningKey.txt b/www/SmartmontoolsSigningKey.txt deleted file mode 100644 index 0ac19356f..000000000 --- a/www/SmartmontoolsSigningKey.txt +++ /dev/null @@ -1,27 +0,0 @@ ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v1.0.7 (GNU/Linux) - -mQGiBD9XAXIRBACgLEphBmhUKWE1mRKzjkq/8vZHtJsVUiFivcbxaSLa9jBbJoZV -sQk5fdcleVE6CcuodMetVE6Gl8uM4W4iymp0i35lwefdgmUzJYmza1ZD7Uk0x4zv -tKi9xZ9Hc+yrf4SHRwLTZxuUyLf9TURwGXfLd2bxP1USYJVL4vOYoiBwBwCgq/w3 -EyO5PhlGp5rfE+WIoyy9GHcEAIYP3ctigHu6tnSobIGA77BFOv+v7DbXRjbKhEz1 -s4lPGQQP5h2t4VFRiy9RlD4GlEXD51cRFMmtFk4cBbOuONQbNOJFQQ/9JpVBU6/O -CZrVMUqDnQMd2mdUU8pxM7cguaw5cPFxqqX5dkW1JikGrlG1QsH5UxuYhdadO+al -1fTnA/9RMRscXd6aAdN66pZ9mGoqIxVUO6N+icXO7DP+ArIt7gu4GLgvvARlgMiS -neRV4g7mvLm41kBDEv5gug+h2ha5ZI+P51oSRYs8yA5fVtl0GA2YRA2QercALv6C -CtAvnFXWFqSeyW1ESdd2zFKBjhXlBVkmujOyKDS6LXRpZjwJXrRWU21hcnRtb250 -b29scyBTaWduaW5nIEtleSAodGhyb3VnaCAyMDA0KSA8c21hcnRtb250b29scy1z -dXBwb3J0QGxpc3RzLnNvdXJjZWZvcmdlLm5ldD6IZAQTEQIAJAUCP1cBcgIbAwUJ -AnjQAAYLCQgHAwIDFQIDAxYCAQIeAQIXgAAKCRAjPh86m7GaIlTQAJ9IsqaxHbqX -BSd+xfJwUAZyKWqyLwCgoa2rMvHAHa/Pvpt4E0i0xF9NW3yITAQTEQIADAUCP1cB -+QWDAnjPeQAKCRARGZEEN/UVgWa7AJ95rEDeEw9G3uqAZO7L9u650QPX6wCgoHJ9 -Hq/akQJZhOgSKyrgVEyAc8S5AQ0EP1cBeBAEAMLXV8RwVFDs5EvfkQNwasoKNS+N -PvvhO/weED188XklZ3QTiToEp2b4JFaoUkTk1l2f9JxagDPaVHR6XU8H740x25LZ -gC6XObKMBxqJ9CrBLGcMt/bCugquDu18KFlL3Y1rq9uBxq9JS6CJthUzeaaFdFQS -V7tF2+3hBz/Okqo7AAMFA/9l0YcKnTKDy8jdOtNjky1NEbaF1LjyRc4laT6N4O6q -Xg2oGD6MgS7zSK/ORcT3B0T5kpTo6gnKLTYDxEAvpNjrOjlwn08Jtm3xrQZLId/W -RAo+Qqn5Or+sugZZpQPHrGGB9TTc0AL3MfCbK4mlssVhS0SAq35E/osCLQcor7Sx -sohPBBgRAgAPBQI/VwF4AhsMBQkCeNAAAAoJECM+HzqbsZoi4WUAn2IQhEtHY/48 -4rljbro8yUwYlrXzAJ44VfTwmjLlI9aoYdRW/cTtZ0tPgw== -=f2kQ ------END PGP PUBLIC KEY BLOCK----- diff --git a/www/SmartmontoolsSigningKey_2005.txt b/www/SmartmontoolsSigningKey_2005.txt deleted file mode 100644 index 82e20be2f..000000000 --- a/www/SmartmontoolsSigningKey_2005.txt +++ /dev/null @@ -1,27 +0,0 @@ ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v1.2.3 (GNU/Linux) - -mQGiBEJl08ARBAC8HLnkjodFpCGWxIquBNqVNLbcJIi+4KuhD0o7Jn2njif31ZMu -useJAoKmlYD7wEShJemkTfdj76QEtv3DGAKXo3ylI50FzZwR8SflHvdM7D3ewk29 -hDGM7QqvezwG7nToz1IqmT6t6LUtp7FtqeLlJs+Ly9jzGIDlB1H3LIFsJwCgtkAY -VCv6cLuGnc2TE+elAi98KqUEAIORBntWHPtGb4uMXo0gAJzsu0m66OWosCNwT6Hb -EQZQc3fiW80Ph1tr9MHh24nyA4PaciKygrXt3GvIxlGocRB1YIk/BeDiGckMNn3L -/3R1KFPPbhCsuGcjOZ8hcwn/rVtSAYYptnotEftwdJc1iDtXogRXGs0RINqfL/NL -855SBACBUHQcQTHkj3nmciyh2gVBbbHC/NVDVbTxPLLH5MbKYd9cm/xAL+AztIsE -MgICJtSkYqg2QIN8VPRFMILdBa8DNYT03bVhlERf09AB9PrB9507QrEMFIoQjYF6 -41R74xj++3VNtbLSn2HFcY7E7hWmW9arYGka24jbrwCZnPqyvbRWU21hcnRtb250 -b29scyBTaWduaW5nIEtleSAodGhyb3VnaCAyMDA2KSA8c21hcnRtb250b29scy1z -dXBwb3J0QGxpc3RzLnNvdXJjZWZvcmdlLm5ldD6IZAQTEQIAJAUCQmXTwAIbAwUJ -Az6RAAYLCQgHAwIDFQIDAxYCAQIeAQIXgAAKCRAildgUhBq66DfgAJ9Ad+ywl9EA -TxbZarsWWb20AgsFJgCfRUjmcUMOoM2o6PJqxcn2rauOjrCITAQTEQIADAUCQmXU -FgWDAz6QqgAKCRARGZEEN/UVgeFJAJoDVs8e1QCs6WMljf0hXp5FEr/xIgCfUnbX -NKDft/y8GcktEJZVJrQ/Bcq5AQ0EQmXTwxAEAKtS+tILqIraz2vIpkI468o0ou+m -XsPg0Vjv1FX4iIotg9iqOaURITBJW1uyOWzwgIKQr9IV3KDjiViK/OeebGk++fA6 -F23k7UAePInOXp0f01xHwr2dkhoV07AFCjFrarsK5/aXz01lgg9vpgxuQ6Z78ci8 -MkX+NmcCxo+3Ilk/AAMFBACpXVsbcf4xxQd7IXc7bcwkAdnmB8NsTEm1L3fwk3Em -nW1UcQWzov2iJIBWOIbZDfRgTQC47cSIpE42ez6t8QFaG7zROBEHqBw4q1HA7sPT -3DU8mOMvU5hbitTE8N3J9vMxcCyzqKfSfYDnLsMNldV/QAJGhyX4LmTamx5p5Ks/ -+YhPBBgRAgAPBQJCZdPDAhsMBQkDPpEAAAoJECKV2BSEGrroVn8AnAhM11Nj07Jo -di8zFUMf0A962Yg7AJ4ptOiGVlWiLhJiSIfSWROPwweAlQ== -=5DeE ------END PGP PUBLIC KEY BLOCK----- diff --git a/www/about.html b/www/about.html deleted file mode 100644 index 5508efba8..000000000 --- a/www/about.html +++ /dev/null @@ -1,207 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> -<head> - <title>smartmontools About Page (last updated $Date: 2008/04/30 21:01:51 $)</title> - <link rev="made" href="mailto:smartmontools-support@sourceforge.net" /> - <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=ISO-8859-1" /> - <meta name="description" content="smartmontools About Page" /> - <meta name="keywords" content="S.M.A.R.T., SMART, smartmontools, team, disk, monitor, monitoring, history, future, roadmap" /> -<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /> -<meta http-equiv="content-style-type" content="text/css" /> -<link rel="stylesheet" type="text/css" href="css/style.css" /> -</head> -<body> -<!-- $Id: about.html,v 1.8 2008/04/30 21:01:51 dipohl Exp $ --> -<div id="header"> - <h1><a id="logo" href="http://smartmontools.sourceforge.net/"><img src="smart_logo.gif" width="105" height="59" border="0" hspace="20" align="middle" name="smartmontools_Logo" alt="S.M.A.R.T. Logo" /></a> - smartmontools About Page</h1> -</div> - -<div id="mainmenu" class="nav"> - <ul> - <li><a accesskey="n" href="index.html">Home</a></li> - <li><a href="doc.html">Documentation</a></li> - <li><a accesskey="d" href="download.html">Download</a></li> - <li><a accesskey="f" href="faq.html">FAQ</a></li> - <li><a accesskey="h" href="help.html">Help</a></li> - <li class="active"><a accesskey="a" href="about.html">About</a></li> - <li><a accesskey="l" href="links.html">Links</a></li> - <li class="last"><a accesskey="s" href="sphider/search.php">Search</a></li> - </ul> -</div> - -<div class="left-header"> -<h2>The project smartmontools</h2> -<ul class="High"> - <li><a href="#history">History</a> of smartmontools</li> - <li>The <a href="#team">smartmontools team</a></li> -</ul> -</div> -<div> -<h3><a name="history"></a>History of smartmontools</h3> - -<p>Smartmontools was derived directly from smartsuite. -The smartsuite code was originally developed as a Senior Thesis by -Michael Cornwell at the Concurrent Systems Laboratory (now part of the -<a href="http://ssrc.soe.ucsc.edu/"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Storage Systems Research -Center</a>), Jack Baskin School of Engineering, University of -California, Santa Cruz. -You can find some information about the original smartsuite project here: -<a href="http://www.ucsc.edu/news_events/press_releases/archive/99-00/09-99/smart_software.htm"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Press Release 1</a>, -<a href="http://www.santa-cruz.com/archive/1999/September/22/local/stories/5local.htm"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Press Release 2</a>, -<a href="http://www.ucsc.edu/currents/99-00/09-27/smart.html"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Press Release 3</a>. -</p> - -<p>According to <a href="http://www.ssrc.ucsc.edu/"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />SSRC</a> -smartsuite is no longer maintained; the last release was in 2001.</p> - -<p>Smartmontools was first released in October 2002. It differs from smartsuite -in that it supports the ATA/ATAPI-5 standard. So for example <tt>smartctl</tt> from smartsuite -has no facility for printing the SMART self-test logs, and doesn't print timestamp -information in the most usable way. The <tt>smartctl</tt> utility -in smartmontools has added functionality for this (<tt>-q, -l selftest,-S, --T, -v and -m</tt> 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 -<a href="http://smartmontools.cvs.sourceforge.net/smartmontools/sm5/CHANGELOG?view=markup">CHANGELOG</a> -file in CVS for a summary of what's been done.</p> - -<p>The <tt>smartd</tt> utility differs from the smartsuite <tt>smartd</tt> in major ways. -First, it prints somewhat more informative error messages to the syslog. -Second, on startup it looks for a configuration file -<tt>/etc/smartd.conf</tt>, and if <tt>smartd</tt> 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 <tt>smartmontools</tt> version of -<tt>smartd</tt> 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. <tt>smartd</tt> can also send an email warning or run a -user-specified executable if it detects a problem with the disk. -</p> - -<p>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 <a -href="http://lists.sourceforge.net/mailman/listinfo/smartmontools-support"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />smartmontools-support</a>.</p> - -<p>But the bottom line is that the code in smartmontools is derived -directly from smartsuite and is similar. The smartsuite package -can be found <a href="http://sourceforge.net/projects/smartsuite/"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />here</a>.</p> - - -<h3><a name="team"></a>The developers and supporters of smartmontools</h3> - -<ul class="High"> - <li><strong>Bruce Allen (Initiator and Project Leader)</strong></li> -</ul> - -<div class="left-header"><img src="pics/BruceAndCat_2008_04_22-sm.jpg" width="200" height="150" vspace="10" align="top" alt="Bruce Allen" /></div> -<div><p>I am a professor of physics at the U. of Wisconsin - Milwaukee, and a Director of the Albert Einstein -Institute in Hannover, which is operated by the Max Planck Gesellschaft and Leibniz University Hannover. -</p> -<p>I got interested in SMART because of my research work. I work on data analysis -for gravitational waves (the LIGO, GEO and VIRGO detectors) and my research groups build and operate -large computer clusters -for this purpose. -My research group at the Albert Einstein Institute in Hannover operates a cluster with -2400 disks (the Atlas Cluster) and 1100 TB of storage. My research group at U. Wisconsin - Milwaukee runs a <a -href="http://www.lsc-group.phys.uwm.edu/beowulf/nemo/"> -<img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />beowulf -cluster</a> with 1200 (SATA-II) distributed disks attached to hardware RAID controllers. -We have more than 300 TB disk space on that system. -It's nice to have advanced warning when a disk is going to fail.</p> -<p>Smartmontools is the only open-source software project that I manage. When smartmontools first started in 2002, -I did most of the coding and real work. I was lucky to quickly find several other developers like Doug Gilbert and -Christian Franke who -knew much more than I did! These days I mostly do coordination and cheerleading - -in any given technical area there are typically other developers who know more than I do. -</p> -<p> -I also do -some work on BOINC, and run the Einstein@Home distributed search for gravitational waves.</p> -</div> - -<ul class="High"> - <li><strong>Christian Franke (Developer and Maintainer)</strong></li> -</ul> -<div class="right-header"><img src="pics/chrfranke.jpg" width="120" height="150" vspace="10" align="top" alt="Christian Franke" /></div> -<div><p>My interest in hard disk monitoring actually starts when the disk of the christmas-gift-PC for -my son failed in the evening of Dec. 23, 2003. This resulted in a first Windows port of smartctl checked -in on Feb. 23, 2004. Future plan for smartmontools is a major redesign of smartd and the internal device -interface, which benefits from the transition from C to C++.</p> -<p>My other open source contributions include some small patches for Cygwin and Mozilla.org -(Firefox/Thunderbird/SeaMonkey and Bugzilla) codebase, a Windows port of hdparm, and a recent Cygwin port -of GRUB2.</p> -<p>In real life, I hold a degree in computer science and work for a company developing applications for -banking & finance.</p> -<br /></div> - -<ul class="High"> - <li><strong>Guido Guenther (Developer and Maintainer)</strong></li> -</ul> -<p>Guido has a sharp eye for distribution issues and clean system architecture. -He improves Makefiles, configuration and installation scripts, cares for packaging -issues and makes sure that <tt>Return Values</tt> are correct. -Last not least, he added CCISS (Compaq Smart Array Controller) support with -contributions from Praveen Chidambaram, Douglas Gilbert and Frederic Boiteux.</p> - -<ul class="High"> - <li><strong>Gabriele Pohl (Website Maintainer)</strong></li> -</ul> - -<div class="left-header-yellow"><img src="pics/gap-woody.jpg" width="200" height="178" alt="Gabriele Pohl" vspace="10"/></div> - -<div><p>Once upon a time I got an alarming BIOS message whilst booting my computer:</p> - -<div class="code">SMART Failure Predicted on Primary Master:<br /> -Warning! Immediately back-up your data and replace your hard disk drive. A Failure may be imminent..</div> - -<p>I was very curious, what it could be, that claimed to know, what's up with my harddisk. -I started an investigation about the predicted disk error and SMART in general, -which leads me straightly to smartmontools. I use it for 4 years now and wrote two -<a href="http://www.dipohl.de/publikationen/anleitung-zu-smartmontools.html">articles</a> (German), -to spread good news about it. To help both, the project and the users, I reorganized the smartmontools -website a bit. I hope you'll like it.</p> - -<p>We have a main menu with seven sections, an integrated search engine and a new layout. -Next step will be, to update the websites content, so that it reflects the state of the -current version <tt>5.3.8</tt>. Conributions are welcome! -Mail to <a href="mailto:smartmontools-support@lists.sourceforge.net">smartmontools-support</a> -list, if you have questions or want to add information.</p> -</div> - -<ul class="High"> - <li><strong>Other portraits</strong></li> -</ul> -<p> will follow..</p> - -</div> - -<hr style="clear:left" /> -<div align="center"> -Hosted by<br /> -<a href="http://sourceforge.net/"><img style="border:0;width=:88px;height:31px" - src="http://sourceforge.net/sflogo.php?group_id=64297&type=5" alt="SourceForge.net" /></a> - <br /> -<font size="-1">Maintained by: <a href="mailto:smartmontools-support@lists.sourceforge.net">Gabriele Pohl</a><br /> -Copyright (C) 2002-8 Bruce Allen, published under <a href="http://www.gnu.org/licenses/gpl-2.0.html#SEC1">GNU GPL</a><br /> -Last update: $Date: 2008/04/30 21:01:51 $</font><br /> -<a href="http://validator.w3.org/checklink?uri=http%3A%2F%2Fsmartmontools.sourceforge.net%2Fabout.html">W3C Link-Checker</a><br /> -<a href="http://validator.w3.org/check?uri=referer"><img - src="http://www.w3.org/Icons/valid-xhtml10-blue" - alt="Valid XHTML 1.0 Transitional" height="31" width="88" border="0" /></a> -<a href="http://jigsaw.w3.org/css-validator/check/referer"> - <img style="border:0;width:88px;height:31px" - src="http://jigsaw.w3.org/css-validator/images/vcss-blue" - alt="CSS ist valide!" /></a> -</div> - -</body> -</html> diff --git a/www/badblockhowto.xml b/www/badblockhowto.xml deleted file mode 100644 index 80d7f54cf..000000000 --- a/www/badblockhowto.xml +++ /dev/null @@ -1,1233 +0,0 @@ -<?xml version='1.0' encoding='ISO-8859-1'?> -<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" - "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" > - -<!-- -This is DocBook XML that can be rendered into a single HTML page with a -command like 'xmlto html-nochunks <this_file_name>'. It can -also be rendered into multi-page HTML (drop the "-nochunks") or pdf, -ps, txt, etc. ---> - -<article id="index"> - <articleinfo> - <title>Bad block HOWTO for smartmontools</title> - <author> - <firstname>Bruce</firstname> - <surname>Allen</surname> - <affiliation> - <address> - <email>smartmontools-support@lists.sourceforge.net</email> - </address> - </affiliation> - </author> - <authorinitials>ba</authorinitials> - <author> - <firstname>Douglas</firstname> - <surname>Gilbert</surname> - <affiliation> - <address> - <email>smartmontools-support@lists.sourceforge.net</email> - </address> - </affiliation> - </author> - <authorinitials>dpg</authorinitials> - <pubdate>2007-01-23</pubdate> - - <revhistory> - <revision> - <revnumber>1.1</revnumber> - <date>2007-01-23</date> - <authorinitials>dpg</authorinitials> - <revremark> - add sections on ReiserFS and partition table damage - </revremark> - </revision> - <revision> - <revnumber>1.0</revnumber> - <date>2006-11-14</date> - <authorinitials>dpg</authorinitials> - <revremark> - merge BadBlockHowTo.txt and BadBlockSCSIHowTo.txt - </revremark> - </revision> - </revhistory> - - <copyright> - <year>2004</year> - <year>2005</year> - <year>2006</year> - <year>2007</year> - <holder>Bruce Allen</holder> - </copyright> - - <legalnotice> - <para> - Permission is granted to copy, distribute and/or modify this document - under the terms of the GNU Free Documentation License, Version 1.1 - or any later version published by the Free Software Foundation; - with no Invariant Sections, with no Front-Cover Texts, and with - no Back-Cover Texts. - </para> - <para> - For an online copy of the license see - <ulink url="http://www.fsf.org/copyleft/fdl.html"> - <literal>www.fsf.org/copyleft/fdl.html</literal></ulink>. - </para> - - </legalnotice> - - <abstract> - <para> - This article describes what actions might be taken when smartmontools - detects a bad block on a disk. It demonstrates how to identify the file - associated with an unreadable disk sector, and how to force that sector - to reallocate. - </para> - </abstract> - </articleinfo> - -<!-- -<toc></toc> ---> - - <sect1 id="intro"> - <title>Introduction</title> -<para> -Handling bad blocks is a difficult problem as it often involves -decisions about losing information. Modern storage devices tend -to handle the simple cases automatically, for example by writing -a disk sector that was read with difficulty to another area on -the media. Even though such a remapping can be done by a disk -drive transparently, there is still a lingering worry about media -deterioration and the disk running out of spare sectors to remap. -</para> -<para> -Can smartmontools help? As the <acronym>SMART</acronym> acronym -<footnote><para> -Self-Monitoring, Analysis and Reporting Technology -> SMART -</para></footnote> -suggests, the <command>smartctl</command> command and the -<command>smartd</command> daemon concentrate on monitoring and analysis. -So apart from changing some reporting settings, smartmontools will not -modify the raw data in a device. Also smartmontools only works with -physical devices, it does not know about partitions and file systems. -So other tools are needed. The job of smartmontools is to alert the user -that something is wrong and user intervention may be required. -</para> -<para> -When a bad block is reported one approach is to work out the mapping between -the logical block address used by a storage device and a file or some other -component of a file system using that device. Note that there may not be such -a mapping reflecting that a bad block has been found at a location not -currently used by the file system. A user may want to do this analysis to -localize and minimize the number of replacement files that are retrieved from -some backup store. This approach requires knowledge of the file system -involved and this document uses the Linux ext2/ext3 and ReiserFS file systems -for examples. Also the type of content may come into play. For example if -an area storing video has a corrupted sector, it may be easiest to accept -that a frame or two might be corrupted and instruct the disk not to retry -as that may have the visual effect of causing a momentary blank into a 1 -second pause (while the disk retries the faulty sector, often accompanied -by a telltale clicking sound). -</para> -<para> -Another approach is to ignore the upper level consequences (e.g. corrupting -a file or worse damage to a file system) and use the facilities offered by -a storage device to repair the damage. The SCSI disk command set is used -elaborate on this low level approach. -</para> -</sect1> - - <sect1 id="rfile"> - <title>Repairs in a file system</title> -<para> -This section contains examples of what to do at the file system level -when smartmontools reports a bad block. These examples assume the Linux -operating system and either the ext2/ext3 or ReiserFS file system. The -various Linux commands shown have man pages and the reader is encouraged -to examine these. Of note is the <command>dd</command> command which is -often used in repair work -<footnote><para> -Starting with GNU coreutils release 5.3.0, the <command>dd</command> -command in Linux includes the options 'iflag=direct' and 'oflag=direct'. -Using these with the <command>dd</command> commands should be helpful, -because adding these flags should avoid any interaction -with the block buffering IO layer in Linux and permit direct reads/writes -from the raw device. Use <command>dd --help</command> to see if your -version of dd supports these options. If not, the latest code for dd -can be found at <ulink url="http://alpha.gnu.org/gnu/coreutils"> -<literal>alpha.gnu.org/gnu/coreutils</literal></ulink>. -</para></footnote> -and has a unique command line syntax. -</para> -<para> -The authors would like to thank Sergey Vlasov, Theodore Ts'o, -Michael Bendzick, and others for explaining this approach. The authors would -like to add text showing how to do this for other file systems, in -particular XFS, and JFS: please email if you can provide this -information. -</para> - - <sect2 id="e2_example1"> - <title>ext2/ext3 first example</title> -<para> -In this example, the disk is failing self-tests at Logical Block -Address LBA = 0x016561e9 = 23421417. The LBA counts sectors in units -of 512 bytes, and starts at zero. -</para> -<para> -<programlisting> -root]# smartctl -l selftest /dev/hda: - -SMART Self-test log structure revision number 1 -Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error -# 1 Extended offline Completed: read failure 90% 217 0x016561e9 -</programlisting> -Note that other signs that there is a bad sector on the disk can be -found in the non-zero value of the Current Pending Sector count: -<programlisting> -root]# smartctl -A /dev/hda -ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE - 5 Reallocated_Sector_Ct 0x0033 100 100 005 Pre-fail Always - 0 -196 Reallocated_Event_Count 0x0032 100 100 000 Old_age Always - 0 -197 Current_Pending_Sector 0x0022 100 100 000 Old_age Always - 1 -198 Offline_Uncorrectable 0x0008 100 100 000 Old_age Offline - 1 -</programlisting> -</para> -<para> -First Step: We need to locate the partition on which this sector of -the disk lives: -<programlisting> -root]# fdisk -lu /dev/hda - -Disk /dev/hda: 123.5 GB, 123522416640 bytes -255 heads, 63 sectors/track, 15017 cylinders, total 241254720 sectors -Units = sectors of 1 * 512 = 512 bytes - - Device Boot Start End Blocks Id System -/dev/hda1 * 63 4209029 2104483+ 83 Linux -/dev/hda2 4209030 5269319 530145 82 Linux swap -/dev/hda3 5269320 238227884 116479282+ 83 Linux -/dev/hda4 238227885 241248104 1510110 83 Linux -</programlisting> - -The partition <filename>/dev/hda3</filename> starts at LBA 5269320 and -extends past the 'problem' LBA. The 'problem' LBA is offset -23421417 - 5269320 = 18152097 sectors into the partition -<filename>/dev/hda3</filename>. -</para> -<para> -To verify the type of the file system and the mount point, look in -<filename>/etc/fstab</filename>: -<programlisting> -root]# grep hda3 /etc/fstab -/dev/hda3 /data ext2 defaults 1 2 -</programlisting> -You can see that this is an ext2 file system, mounted at -<filename>/data</filename>. -</para> -<para> -Second Step: we need to find the block size of the file system -(normally 4096 bytes for ext2): -<programlisting> -root]# tune2fs -l /dev/hda3 | grep Block -Block count: 29119820 -Block size: 4096 -</programlisting> -In this case the block size is 4096 bytes. - -Third Step: we need to determine which File System Block contains this -LBA. The formula is: -<programlisting> - b = (int)((L-S)*512/B) -where: -b = File System block number -B = File system block size in bytes -L = LBA of bad sector -S = Starting sector of partition as shown by fdisk -lu -and (int) denotes the integer part. -</programlisting> - -In our example, L=23421417, S=5269320, and B=4096. Hence the -'problem' LBA is in block number -<programlisting> - b = (int)18152097*512/4096 = (int)2269012.125 -so b=2269012. -</programlisting> -</para> -<para> -Note: the fractional part of 0.125 indicates that this problem LBA is -actually the second of the eight sectors that make up this file system -block. -</para> -<para> -Fourth Step: we use debugfs to locate the inode stored in this block, -and the file that contains that inode: -<programlisting> -root]# debugfs -debugfs 1.32 (09-Nov-2002) -debugfs: open /dev/hda3 -debugfs: icheck 2269012 -Block Inode number -2269012 41032 -debugfs: ncheck 41032 -Inode Pathname -41032 /S1/R/H/714197568-714203359/H-R-714202192-16.gwf -</programlisting> - -In this example, you can see that the problematic file (with the mount -point included in the path) is: -<filename>/data/S1/R/H/714197568-714203359/H-R-714202192-16.gwf</filename> -</para> -<para> -To force the disk to reallocate this bad block we'll write zeros to -the bad block, and sync the disk: -<programlisting> -root]# dd if=/dev/zero of=/dev/hda3 bs=4096 count=1 seek=2269012 -root]# sync -</programlisting> -</para> -<para> -<emphasis>NOTE:</emphasis> This last step has <emphasis>permanently -</emphasis> and irretrievably <emphasis>destroyed</emphasis> some of -the data that was in this file. Don't do this unless you don't need -the file or you can replace it with a fresh or correct version. -</para> -<para> -Now everything is back to normal: the sector has been reallocated. -Compare the output just below to similar output near the top of this -article: -<programlisting> -root]# smartctl -A /dev/hda -ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE - 5 Reallocated_Sector_Ct 0x0033 100 100 005 Pre-fail Always - 1 -196 Reallocated_Event_Count 0x0032 100 100 000 Old_age Always - 1 -197 Current_Pending_Sector 0x0022 100 100 000 Old_age Always - 0 -198 Offline_Uncorrectable 0x0008 100 100 000 Old_age Offline - 1 -</programlisting> - -Note: for some disks it may be necessary to update the SMART Attribute values by using -<command>smartctl -t offline /dev/hda</command> -</para> -<para> -The disk now passes its self-tests again: - -<programlisting> -root]# smartctl -t long /dev/hda [wait until test completes, then] -root]# smartctl -l selftest /dev/hda - -SMART Self-test log structure revision number 1 -Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error -# 1 Extended offline Completed without error 00% 239 - -# 2 Extended offline Completed: read failure 90% 217 0x016561e9 -# 3 Extended offline Completed: read failure 90% 212 0x016561e9 -# 4 Extended offline Completed: read failure 90% 181 0x016561e9 -# 5 Extended offline Completed without error 00% 14 - -# 6 Extended offline Completed without error 00% 4 - -</programlisting> -</para> -<para> -and no longer shows any offline uncorrectable sectors: - -<programlisting> -root]# smartctl -A /dev/hda -ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE - 5 Reallocated_Sector_Ct 0x0033 100 100 005 Pre-fail Always - 1 -196 Reallocated_Event_Count 0x0032 100 100 000 Old_age Always - 1 -197 Current_Pending_Sector 0x0022 100 100 000 Old_age Always - 0 -198 Offline_Uncorrectable 0x0008 100 100 000 Old_age Offline - 0 -</programlisting> -</para> -</sect2> - - - <sect2 id="e2_example2"> - <title>ext2/ext3 second example</title> -<para> -On this drive, the first sign of trouble was this email from smartd: -<programlisting> - To: ballen - Subject: SMART error (selftest) detected on host: medusa-slave166.medusa.phys.uwm.edu - - This email was generated by the smartd daemon running on host: - medusa-slave166.medusa.phys.uwm.edu in the domain: master001-nis - - The following warning/error was logged by the smartd daemon: - Device: /dev/hda, Self-Test Log error count increased from 0 to 1 -</programlisting> -</para> -<para> -Running <command>smartctl -a /dev/hda</command> confirmed the problem: - -<programlisting> -Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error -# 1 Extended offline Completed: read failure 80% 682 0x021d9f44 - -Note that the failing LBA reported is 0x021d9f44 (base 16) = 35495748 (base 10) - -ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE - 5 Reallocated_Sector_Ct 0x0033 100 100 005 Pre-fail Always - 0 -196 Reallocated_Event_Count 0x0032 100 100 000 Old_age Always - 0 -197 Current_Pending_Sector 0x0022 100 100 000 Old_age Always - 3 -198 Offline_Uncorrectable 0x0008 100 100 000 Old_age Offline - 3 -</programlisting> -</para> -<para> -and one can see above that there are 3 sectors on the list of pending -sectors that the disk can't read but would like to reallocate. -</para> -<para> -The device also shows errors in the SMART error log: -<programlisting> -Error 212 occurred at disk power-on lifetime: 690 hours - After command completion occurred, registers were: - ER ST SC SN CL CH DH - -- -- -- -- -- -- -- - 40 51 12 46 9f 1d e2 Error: UNC 18 sectors at LBA = 0x021d9f46 = 35495750 - - Commands leading to the command that caused the error were: - CR FR SC SN CL CH DH DC Timestamp Command/Feature_Name - -- -- -- -- -- -- -- -- --------- -------------------- - 25 00 12 46 9f 1d e0 00 2485545.000 READ DMA EXT -</programlisting> -</para> -<para> -Signs of trouble at this LBA may also be found in SYSLOG: -<programlisting> -[root]# grep LBA /var/log/messages | awk '{print $12}' | sort | uniq - LBAsect=35495748 - LBAsect=35495750 -</programlisting> -</para> -<para> -So I decide to do a quick check to see how many bad sectors there -really are. Using the bash shell I check 70 sectors around the trouble -area: -<programlisting> -[root]# export i=35495730 -[root]# while [ $i -lt 35495800 ] - > do echo $i - > dd if=/dev/hda of=/dev/null bs=512 count=1 skip=$i - > let i+=1 - > done - -<SNIP> - -35495734 -1+0 records in -1+0 records out -35495735 -dd: reading `/dev/hda': Input/output error -0+0 records in -0+0 records out - -<SNIP> - -35495751 -dd: reading `/dev/hda': Input/output error -0+0 records in -0+0 records out -35495752 -1+0 records in -1+0 records out - -<SNIP> -</programlisting> -</para> -<para> -which shows that the seventeen sectors 35495735-35495751 (inclusive) -are not readable. -</para> -<para> -Next, we identify the files at those locations. The partitioning -information on this disk is identical to the first example above, and -as in that case the problem sectors are on the third partition -<filename>/dev/hda3</filename>. So we have: -<programlisting> - L=35495735 to 35495751 - S=5269320 - B=4096 -</programlisting> -so that b=3778301 to 3778303 are the three bad blocks in the file -system. - -<programlisting> -[root]# debugfs -debugfs 1.32 (09-Nov-2002) -debugfs: open /dev/hda3 -debugfs: icheck 3778301 -Block Inode number -3778301 45192 -debugfs: icheck 3778302 -Block Inode number -3778302 45192 -debugfs: icheck 3778303 -Block Inode number -3778303 45192 -debugfs: ncheck 45192 -Inode Pathname -45192 /S1/R/H/714979488-714985279/H-R-714979984-16.gwf -debugfs: quit -</programlisting> -</para> -<para> -And finally, just to confirm that this is really the damaged file: -</para> -<para> -<programlisting> -[root]# md5sum /data/S1/R/H/714979488-714985279/H-R-714979984-16.gwf -md5sum: /data/S1/R/H/714979488-714985279/H-R-714979984-16.gwf: Input/output error -</programlisting> -</para> -<para> -Finally we force the disk to reallocate the three bad blocks: -<programlisting> -[root]# dd if=/dev/zero of=/dev/hda3 bs=4096 count=3 seek=3778301 -[root]# sync -</programlisting> -</para> -<para> -We could also probably use: -<programlisting> -[root]# dd if=/dev/zero of=/dev/hda bs=512 count=17 seek=35495735 -</programlisting> -</para> -<para> -At this point we now have: -<programlisting> -ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE - 5 Reallocated_Sector_Ct 0x0033 100 100 005 Pre-fail Always - 0 -196 Reallocated_Event_Count 0x0032 100 100 000 Old_age Always - 0 -197 Current_Pending_Sector 0x0022 100 100 000 Old_age Always - 0 -198 Offline_Uncorrectable 0x0008 100 100 000 Old_age Offline - 0 -</programlisting> -</para> -<para> -which is encouraging, since the pending sectors count is now zero. -Note that the drive reallocation count has not yet increased: the -drive may now have confidence in these sectors and have decided not to -reallocate them.. -</para> -<para> -A device self test: -<programlisting> - [root#] smartctl -t long /dev/hda -(then wait about an hour) shows no unreadable sectors or errors: - -Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error -# 1 Extended offline Completed without error 00% 692 - -# 2 Extended offline Completed: read failure 80% 682 0x021d9f44 -</programlisting> -</para> -</sect2> - - <sect2 id="unassigned"> - <title>Unassigned sectors</title> -<para> -This section was written by Kay Diederichs. Even though this section -assumes Linux and the ext2/ext3 file system, the strategy should be -more generally applicable. -</para> -<para> -I read your badblocks-howto at and greatly -benefited from it. One thing that's (maybe) missing is that often the -<command>smartctl -t long</command> scan finds a bad sector which is -<emphasis> not</emphasis> assigned to -any file. In that case it does not help to run debugfs, or rather -debugfs reports the fact that no file owns that sector. Furthermore, -it is somewhat laborious to come up with the correct numbers for -debugfs, and debugfs is slow ... -</para> -<para> -So what I suggest in the case of presence of -Current_Pending_Sector/Offline_Uncorrectable errors is to create a -huge file on that file system. -<programlisting> - dd if=/dev/zero of=/some/mount/point bs=4k -</programlisting> -creates the file. Leave it running until the partition/file system is -full. This will make the disk reallocate those sectors which do not -belong to a file. Check the <command>smartctl -a</command> output after -that and make -sure that the sectors are reallocated. If any remain, use the debugfs -method. Of course the usual caveats apply - back it up first, and so -on. -</para> -</sect2> - - <sect2 id="reiserfs_ex"> - <title>ReiserFS example</title> -<para> -This section was written by Joachim Jautz with additions from Manfred -Schwarb. -</para> -<para> -The following problems were reported during a scheduled test: -<programlisting> -smartd[575]: Device: /dev/hda, starting scheduled Offline Immediate Test. -[... 1 hour later ...] -smartd[575]: Device: /dev/hda, 1 Currently unreadable (pending) sectors -smartd[575]: Device: /dev/hda, 1 Offline uncorrectable sectors -</programlisting> -</para> -<para> -[Step 0] The SMART selftest/error log -(see <command>smartctl -l selftest</command>) indicated there was a problem -with block address (i.e. the 512 byte sector at) 58656333. The partition -table (e.g. see <command>sfdisk -luS /dev/hda</command> or -<command>fdisk -ul /dev/hda</command>) indicated that this block was in the -<filename>/dev/hda3</filename> partition which contained a ReiserFS file -system. That partition started at block address 54781650. -</para> -<para> -While doing the initial analysis it may also be useful to take a copy -of the disk attributes returned by <command>smartctl -A /dev/hda</command>. -Specifically the values associated with the "Reallocated_Sector_Ct" and -"Reallocated_Event_Count" attributes (for ATA disks, the grown list (GLIST) -length for SCSI disks). If these are incremented at the end of the procedure -it indicates that the disk has re-allocated one or more sectors. -</para> -<para> -[Step 1] Get the file system's block size: -<programlisting> -# debugreiserfs /dev/hda3 | grep '^Blocksize' -Blocksize: 4096 -</programlisting> -</para> -<para> -[Step 2] Calculate the block number: -<programlisting> -# echo "(58656333-54781650)*512/4096" | bc -l -484335.37500000000000000000 -</programlisting> -It is re-assuring that the calculated 4 KB damaged block address in -<filename>/dev/hda3</filename> is less than "Count of blocks on the -device" shown in the output of <command>debugreiserfs</command> shown above. -</para> -<para> -[Step 3] Try to get more info about this block => reading the block -fails as expected but at least we see now that it seems to be unused. -If we do not get the `Cannot read the block' error we should -check if our calculation in [Step 2] was correct ;) -<programlisting> -# debugreiserfs -1 484335 /dev/hda3 -debugreiserfs 3.6.19 (2003 http://www.namesys.com) - -484335 is free in ondisk bitmap -The problem has occurred looks like a hardware problem. -</programlisting> -</para> -<para> -If you have bad blocks, we advise you to get a new hard drive, because -once you get one bad block that the disk drive internals cannot hide from -your sight, the chances of getting more are generally said to become -much higher (precise statistics are unknown to us), and this disk -drive is probably not expensive enough for you to risk your -time and data on it. If you don't want to follow that -advice then if you have just a few bad blocks, try writing to the -bad blocks and see if the drive remaps the bad blocks (that means -it takes a block it has in reserve and allocates it for use for -of that block number). If it cannot remap the block, use -<command>badblock</command> option (-B) with reiserfs utils to handle -this block correctly. -<programlisting> -bread: Cannot read the block (484335): (Input/output error). - -Aborted -</programlisting> -So it looks like we have the right (i.e. faulty) block address. -</para> -<para> -[Step 4] Try then to find the affected file -<footnote><para> -Do not use <command>tar cf /dev/null</command>, see -<command>info tar</command>. -</para></footnote>: -<programlisting> -tar -cO /mydir >/dev/null -</programlisting> -If you do not find any unreadable files, then the block may be free or -located in some metadata of the file system. -</para> -<para> -[Step 5] Try your luck: bang the affected block with -<command>badblocks -n</command> (non-destructive read-write mode, do unmount -first), if you are very lucky the failure is transient and you can provoke -reallocation -<footnote><para> -Important: set blocksize range is arbitrary, but do not only test a single -block, as bad blocks are often social. Not too large as this test probably -has not 0% risk. -</para></footnote>: -<programlisting> -# badblocks -b 4096 -p 3 -s -v -n /dev/hda3 `expr 484335 + 100` `expr 484335 - 100` -</programlisting> -<footnote><para> -The rather awkward `expr 484335 + 100` (note the back quotes) can be replaced -with $((484335+100)) if the bash shell is being used. Similarly the last -argument can become $((484335-100)) . -</para></footnote> -</para> -<para> -check success with <command>debugreiserfs -1 484335 /dev/hda3</command>. -Otherwise: -</para> -<para> -[Step 6] Perform this step <emphasis>only</emphasis> if Step 5 has failed -to fix the problem: overwrite that block to force reallocation: -<programlisting> -# dd if=/dev/zero of=/dev/hda3 count=1 bs=4096 seek=484335 -1+0 records in -1+0 records out -4096 bytes transferred in 0.007770 seconds (527153 bytes/sec) -</programlisting> -</para> -<para> -[Step 7] If you can't rule out the bad block being in metadata, do -a file system check: -<programlisting> -reiserfsck --check -</programlisting> -This could take a long time so you probably better go for lunch ... -</para> -<para> -[Step 8] Proceed as stated earlier. For example, sync disk and run a long -selftest that should succeed now. -</para> -</sect2> - -</sect1> - - <sect1 id="sdisk"> - <title>Repairs at the disk level</title> -<para> -This section first looks at a damaged partition table. Then it ignores -the upper level impact of a bad block and just repairs the underlying -sector so that defective sector will not cause problems in the future. -</para> - - <sect2 id="partition"> - <title>Partition table problems</title> -<para> -Some software failures can lead to zeroes or random data being written -on the first block of a disk. For disks that use a DOS-based partitioning -scheme this will overwrite the partition table which is found at the -end of the first block. This is a single point of failure so after the -damage tools like <command>fdisk</command> have no alternate data to use -so they report no partitions or a damaged partition table. -</para> -<para> -One utility that may help is -<ulink url="http://www.cgsecurity.org/wiki/TestDisk"> -<literal>testdisk</literal></ulink> which can scan a disk looking for -partitions and recreate a partition table if requested. -<footnote><para> -<command>testdisk</command> scans the media for the beginning of file -systems that it recognizes. It can be tricked by data that looks -like the beginning of a file system or an old file system from a -previous partitioning of the media (disk). So care should be taken. -Note that file systems should not overlap apart from the fact that -extended partitions lie wholly within a extended partition table -allocation. Also if the root partition of a Linux/Unix installation -can be found then the <filename>/etc/fstab</filename> file is a useful -resource for finding the partition numbers of other partitions. -</para></footnote> -</para> -<para> -Programs that create DOS partitions -often place the first partition at logical block address 63. In Linux -a loop back mount can be attempted at the appropriate offset of a disk -with a damaged partition table. This approach may involve placing the -disk with the damaged partition table in a working computer or perhaps -an external USB enclosure. Assuming the disk with the damaged partition -is <filename>/dev/hdb</filename>. Then the following read-only loop back -mount could be tried: -<programlisting> -# mount -r /dev/hdb -o loop,offset=32256 /mnt -</programlisting> -The offset is in bytes so the number given is (63 * 512). If the file -system cannot be identified then a '-t <fs_type>' -may be needed (although this is not a good sign). If this mount is -successful, a backup procedure is advised. -</para> -<para> -Only the primary DOS partitions are recorded in the first block of -a disk. The extended DOS partition table is placed elsewhere on -a disk. Again there is only one copy of it so it represents another -single point of failure. All DOS partition information can be -read in a form that can be used to recreate the tables with the -<command>sfdisk</command> command. Obviously this needs to be done -beforehand and the file put on other media. Here is how to fetch the -partition table information: -<programlisting> -# sfdisk -dx /dev/hda > my_disk_partition_info.txt -</programlisting> -Then <filename>my_disk_partition_info.txt</filename> should be placed on -other media. If disaster strikes, then the disk with the damaged partition -table(s) can be placed in a working system, let us say the damaged disk is -now at <filename>/dev/hdc</filename>, and the following command restores -the partition table(s): -<programlisting> -# sfdisk -x -O part_block_prior.img /dev/hdc < my_disk_partition_info.txt -</programlisting> -Since the above command is potentially destructive it takes a copy of the -block(s) holding the partition table(s) and puts it in -<filename>part_block_prior.img</filename> prior to any changes. Then it -changes the partition tables as indicated by -<filename>my_disk_partition_info.txt</filename>. For what it is worth the -author did test this on his system! -<footnote><para> -Thanks to Manfred Schwarb for the information about storing partition -table(s) beforehand. -</para></footnote> -</para> -<para> -For creating, destroying, resizing, checking and copying partitions, and -the file systems on them, GNU's -<ulink url="http://www.gnu.org/software/parted"> -<literal>parted</literal></ulink> is worth examining. -The <ulink url="http://www.tldp.org/HOWTO/Large-Disk-HOWTO.html"> -<literal>Large Disk HOWTO</literal></ulink> is also a useful resource. -</para> -</sect2> - - <sect2 id="lvm"> - <title>LVM repairs</title> -<para> -This section was written by Frederic BOITEUX. It was titled: "HOW TO -LOCATE AND REPAIR BAD BLOCKS ON AN LVM VOLUME". -</para> -<para> -Smartd reports an error in a short test�: -<programlisting> -# smartctl -a /dev/hdb -... -SMART Self-test log structure revision number 1 -Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error -# 1 Short offline Completed: read failure 90% 66 37383668 -</programlisting> -So the disk has a bad block located in LBA block 37383668 -</para> -<para> -In which physical partition is the bad block�? -<programlisting> -# sfdisk -luS /dev/hdb # or 'fdisk -ul /dev/hdb' - -Disk /dev/hdb: 9729 cylinders, 255 heads, 63 sectors/track -Units = sectors of 512 bytes, counting from 0 - - Device Boot Start End #sectors Id System -/dev/hdb1 63 996029 995967 82 Linux swap / Solaris -/dev/hdb2 * 996030 1188809 192780 83 Linux -/dev/hdb3 1188810 156296384 155107575 8e Linux LVM -/dev/hdb4 0 - 0 0 Empty -</programlisting> - -It's in the <filename>/dev/hdb3</filename> partition, a LVM2 partition. -From the LVM2 partition beginning, the bad block has an offset of -<programlisting> -(37383668 - 1188810) = 36194858 -</programlisting> -</para> -<para> -We have to find in which LVM2 logical partition the block belongs to. -</para> -<para> -In which logical partition is the bad block�? -</para> -<para> -<emphasis>IMPORTANT</emphasis>�: LVM2 can use different schemes dividing -its physical partitions to logical ones�: linear, striped, contiguous or - not... The following example assumes that allocation is linear�! -</para> -<para> -The physical partition used by LVM2 is divided in PE (Physical Extent) -units of the same size, starting at pe_start' 512 bytes blocks from -the beginning of the physical partition. -</para> -<para> -The 'pvdisplay' command gives the size of the PE (in KB) of the -LVM partition�: -<programlisting> -# part=/dev/hdb3�; pvdisplay -c $part | awk -F: '{print $8}' -4096 -</programlisting> -</para> -<para> -To get its size in LBA block size (512 bytes or 0.5 KB), we multiply this -number by 2�: 4096 * 2 = 8192 blocks for each PE. -</para> -<para> -To find the offset from the beginning of the physical partition is a -bit more difficult�: if you have a recent LVM2 version, try�: -<programlisting> -# pvs -o+pe_start $part -</programlisting> -</para> -<para> -Either, you can look in /etc/lvm/backup�: -<programlisting> -# grep pe_start $(grep -l $part /etc/lvm/backup/*) - pe_start = 384 -</programlisting> -</para> -<para> -Then, we search in which PE is the badblock, calculating the PE rank -in which the faulty block of the partition is�: -physical partition's bad block number / sizeof(PE) = -<programlisting> -36194858 / 8192 = 4418.3176 -</programlisting> -</para> -<para> -So we have to find in which LVM2 logical partition is used the PE -number 4418 (count starts from 0)�: -<programlisting> -# lvdisplay --maps |egrep 'Physical|LV Name|Type' - LV Name /dev/WDC80Go/racine - Type linear - Physical volume /dev/hdb3 - Physical extents 0 to 127 - LV Name /dev/WDC80Go/usr - Type linear - Physical volume /dev/hdb3 - Physical extents 128 to 1407 - LV Name /dev/WDC80Go/var - Type linear - Physical volume /dev/hdb3 - Physical extents 1408 to 1663 - LV Name /dev/WDC80Go/tmp - Type linear - Physical volume /dev/hdb3 - Physical extents 1664 to 1791 - LV Name /dev/WDC80Go/home - Type linear - Physical volume /dev/hdb3 - Physical extents 1792 to 3071 - LV Name /dev/WDC80Go/ext1 - Type linear - Physical volume /dev/hdb3 - Physical extents 3072 to 10751 - LV Name /dev/WDC80Go/ext2 - Type linear - Physical volume /dev/hdb3 - Physical extents 10752 to 18932 -</programlisting> -</para> -<para> -So the PE #4418 is in the <filename>/dev/WDC80Go/ext1</filename> -LVM logical partition. -</para> -<para> -Size of logical block of file system on <filename>/dev/WDC80Go/ext1 -</filename>�: -</para> -<para> -It's a ext3 fs, so I get it like this�: -<programlisting> -# dumpe2fs /dev/WDC80Go/ext1 | grep 'Block size' -dumpe2fs 1.37 (21-Mar-2005) -Block size: 4096 -</programlisting> -</para> -<para> -bad block number for the file system�: -</para> -<para> -The logical partition begins on PE 3072�: -<programlisting> - (# PE's start of partition * sizeof(PE)) + parttion offset[pe_start] = - (3072 * 8192) + 384 = 25166208 -</programlisting> -512b block of the physical partition, so the bad block number for the -file system� is�: -<programlisting> -(36194858 - 25166208) / (sizeof(fs block) / 512) -= 11028650 / (4096 / 512) = 1378581.25 -</programlisting> -</para> -<para> -Test of the fs bad block�: -<programlisting> -dd if=/dev/WDC80Go/ext1 of=block1378581 bs=4096 count=1 skip=1378581 -</programlisting> -</para> -<para> -If this dd command succeeds, without any error message in console or -syslog, then the block number calculation is probably wrong�! *Don't* -go further, re-check it and if you don't find the error, please -renounce�! -</para> -<para> -Search / correction follows the same scheme as for simple -partitions�: -<itemizedlist> -<listitem><para> -find possible impacted files with debugfs (icheck <fs block nb>, -then ncheck <icheck nb>). -</para></listitem> -<listitem><para> -reallocate bad block writing zeros in it, *using the fs block size*�: -</para></listitem> -</itemizedlist> -</para> -<para> -<programlisting> -dd if=/dev/zero of=/dev/WDC80Go/ext1 count=1 bs=4096 seek=1378581 -</programlisting> -</para> -<para> -Et voil�! -</para> -</sect2> - - <sect2 id="bb"> - <title>Bad block reassignment</title> -<para> -The SCSI disk command set and associated disk architecture are assumed -in this section. SCSI disks have their own logical to physical mapping -allowing a damaged sector (usually carrying 512 bytes of data) to be -remapped irrespective of the operating system, file system or software -RAID being used. -</para> -<para> -The terms <emphasis>block</emphasis> and <emphasis>sector</emphasis> are -used interchangeably, although block tends to get used in higher level or -more abstract contexts such as a <emphasis>logical block</emphasis>. -</para> -<para> -When a SCSI disk is formatted, defective sectors identified during -the manufacturing process (the so called primary list: PLIST), -those found during the format itself (the certification list: CLIST), -those given explicitly to the format command (the DLIST) and optionally -the previous grown list (GLIST) are not used in the logical block -map. The number (and low level addresses) of the unmapped sectors can be -found with the READ DEFECT DATA SCSI command. -</para> -<para> -SCSI disks tend to be divided into zones which have spare sectors and -perhaps spare tracks, to support the logical block address mapping -process. The idea is that if a logical block is remapped, the heads do not -have to move a long way to access the replacement sector. Note that spare -sectors are a scarce resource. -</para> -<para> -Once a SCSI disk format has completed successfully, other problems -may appear over time. These fall into two categories: -<itemizedlist> -<listitem><para> -recoverable: the Error Correction Codes (ECC) detect a problem -but it is small enough to be corrected. Optionally other strategies -such as retrying the access may retrieve the data. -</para></listitem> -<listitem><para> -unrecoverable: try as it may, the disk logic and ECC algorithms -cannot recover the data. This is often reported as a -<emphasis>medium error</emphasis>. -</para></listitem> -</itemizedlist> -</para> -<para> -Other things can go wrong, typically associated with the transport and -they will be reported using a term other than -<emphasis>medium error</emphasis>. For example a disk may decide a read -operation was successful but a computer's host bus adapter (HBA) checking -the incoming data detects a CRC error due to a bad cable or termination. -</para> -<para> -Depending on the disk vendor, recoverable errors can be ignored. After all, -some disks have up to 68 bytes of ECC above the payload size of 512 bytes -so why use up spare sectors which are limited in number -<footnote><para> -Detecting and fixing an error with ECC "on the fly" and not going the further -step and reassigning the block in question may explain why some disks have -large numbers in their read error counter log. Various worried users have -reported large numbers in the "errors corrected without substantial delay" -counter field which is in the "Errors corrected by ECC fast" column in -the <command>smartctl -l error</command> output. -</para></footnote> -? -If the disk can recover the data and does decide to re-allocate (reassign) -a sector, then first it checks the settings of the ARRE and AWRE bits in the -read-write error recovery mode page. Usually these bits are set -<footnote><para> -Often disks inside a hardware RAID have the ARRE and AWRE bits -cleared (disabled) so the RAID controller can do things manually or flag -the disk for replacement. -</para></footnote> -enabling automatic (read or write) re-allocation. The automatic -re-allocation may also fail if the zone (or disk) has run out of spare -sectors. -</para> -<para> -Another consideration with RAIDs, and applications that require a high -data rate without pauses, is that the controller logic may not want a -disk to spend too long trying to recover an error. -</para> -<para> -Unrecoverable errors will cause a <emphasis>medium error</emphasis> sense -key, perhaps with some useful additional sense information. If the extended -background self test includes a full disk read scan, one would expect the -self test log to list the bad block, as shown in the <xref linkend="rfile"/>. -Recent SCSI disks with a periodic background scan should also list -unrecoverable read errors (and some recoverable errors as well). The -advantage of the background scan is that it runs to completion while self -tests will often terminate at the first serious error. -</para> -<para> -SCSI disks expect unrecoverable errors to be fixed manually using the -REASSIGN BLOCKS SCSI command since loss of data is involved. It is possible -that an operating system or a file system could issue the REASSIGN BLOCKS -command itself but the authors are unaware of any examples. The REASSIGN BLOCKS -command will reassign one or more blocks, attempting to (partially ?) recover -the data (a forlorn hope at this stage), fetch an unused spare sector from the -current zone while adding the damaged old sector to the GLIST (hence the -name "grown" list). The contents of the GLIST may not be that interesting -but <command>smartctl</command> prints out the number of entries in the grown -list and if that number grows quickly, the disk may be approaching the end -of its useful life. -</para> -<para> -Here is an alternate brute force technique to consider: if the data on the -SCSI or ATA disk has all been backed up (e.g. is held on the other disks in -a RAID 5 enclosure), then simply reformatting the disk may be the least -cumbersome approach. -</para> - - <sect3 id="sexample"> - <title>Example</title> -<para> -Given a "bad block", it still may be useful to look at the -<command>fdisk</command> command (if the disk has multiple partitions) -to find out which partition is involved, then use -<command>debugfs</command> (or a similar tool for the file system in -question) to find out which, if any, file or other part of the file system -may have been damaged. This is discussed in the <xref linkend="rfile"/>. -</para> -<para> -Then a program that can execute the REASSIGN BLOCKS SCSI command is -required. In Linux (2.4 and 2.6 series), FreeBSD, Tru64(OSF) and Windows -the author's <command>sg_reassign</command> utility in the sg3_utils -package can be used. Also found in that package is -<command>sg_verify</command> which can be used to check that a block is -readable. -</para> -<para> -Assume that logical block address 1193046 (which is 123456 in hex) is -corrupt -<footnote><para> -In this case the corruption was manufactured by using the WRITE LONG -SCSI command. See <command>sg_write_long</command> in sg3_utils. -</para></footnote> -on the disk at <filename>/dev/sdb</filename>. A long selftest command like -<command>smartctl -t long /dev/sdb</command> may result in log results -like this: -<programlisting> -# smartctl -l selftest /dev/sdb -smartctl version 5.37 [i686-pc-linux-gnu] Copyright (C) 2002-6 Bruce Allen -Home page is http://smartmontools.sourceforge.net/ - - -SMART Self-test log -Num Test Status segment LifeTime LBA_first_err [SK ASC ASQ] - Description number (hours) -# 1 Background long Failed in segment - 354 1193046 [0x3 0x11 0x0] -# 2 Background short Completed - 323 - [- - -] -# 3 Background short Completed - 194 - [- - -] -</programlisting> -</para> -<para> -The <command>sg_verify</command> utility can be used to confirm that there -is a problem at that address: -<programlisting> -# sg_verify --lba=1193046 /dev/sdb -verify (10): Fixed format, current; Sense key: Medium Error - Additional sense: Unrecovered read error - Info fld=0x123456 [1193046] - Field replaceable unit code: 228 - Actual retry count: 0x008b -medium or hardware error, reported lba=0x123456 -</programlisting> -</para> -<para> -Now the GLIST length is checked before the block reassignment: -<programlisting> -# sg_reassign --grown /dev/sdb ->> Elements in grown defect list: 0 -</programlisting> -</para> -<para> -And now for the actual reassignment followed by another check of the GLIST -length: -<programlisting> -# sg_reassign --address=1193046 /dev/sdb - -# sg_reassign --grown /dev/sdb ->> Elements in grown defect list: 1 -</programlisting> -</para> -<para> -The GLIST length has grown by one as expected. If the disk was unable to -recover any data, then the "new" block at lba 0x123456 has vendor specific -data in it. The <command>sg_reassign</command> utility can also do bulk -reassigns, see <command>man sg_reassign</command> for more information. -</para> -<para> -The <command>dd</command> command could be used to read the contents of -the "new" block: -<programlisting> -# dd if=/dev/sdb iflag=direct skip=1193046 of=blk.img bs=512 count=1 -</programlisting> -</para> -<para> -and a hex editor -<footnote><para> -Most window managers have a handy calculator that will do hex to -decimal conversions. More work may be needed at the file system level, -</para></footnote> -used to view and potentially change the -<filename>blk.img</filename> file. An altered <filename>blk.img</filename> -file (or <filename>/dev/zero</filename>) could be written back with: -<programlisting> -# dd if=blk.img of=/dev/sdb seek=1193046 oflag=direct bs=512 count=1 -</programlisting> -</para> -<para> -More work may be needed at the file system level, especially if the -reassigned block held critical file system information such as -a superblock or a directory. -</para> -<para> -Even if a full backup of the disk is available, or the disk has been -"ejected" from a RAID, it may still be worthwhile to reassign the bad -block(s) that caused the problem (or simply format the disk (see -<command>sg_format</command> in the sg3_utils package)) and re-use the -disk later (not unlike the way a replacement disk from a manufacturer -might be used). -</para> -<para> -CVS $Id: badblockhowto.xml,v 1.4 2007/01/31 13:56:32 dpgilbert Exp $ -</para> -</sect3> -</sect2> -</sect1> - -<!-- -<appendix id="appendix"> - <title>annex a</title> -<sect1 id="what"> - <title>what</title> -<para> -dummy -</para> - -<para> -CVS $Id: badblockhowto.xml,v 1.4 2007/01/31 13:56:32 dpgilbert Exp $ -</para> -</sect1> -</appendix> - ---> - -</article> diff --git a/www/css/style.css b/www/css/style.css deleted file mode 100755 index 4cb45c4e4..000000000 --- a/www/css/style.css +++ /dev/null @@ -1,198 +0,0 @@ -/* - $Id: style.css,v 1.6 2008/04/23 20:22:23 dipohl Exp $ - - Lookup Table for Colors: - blue: #3333FF - green: #009966 - yellow: #FFFFCC - -*/ - -body { - background: #FFFFFF; - color: #000000; - margin: 1em; - font-size: 0.95em; - font-family: verdana,arial,helvetica,sans-serif; -} - -div { - margin-left: 1em; -} - -div.left-header { - float:left; - position:relative; - top:0px; - left:0px; - max-width: 350px; - padding: 0.4em 1em; - margin-right: 1em; - font-size: 0.95em; - line-height: 1.6em; - border: 1px solid #000000; - background: #E6E6FA; -} - -div.right-header { - float:right; - position:relative; - top:0px; - left:0px; - max-width: 350px; - padding: 0.4em 1em; - margin-left: 1em; - font-size: 0.95em; - line-height: 1.6em; - border: 1px solid #000000; - background: #E6E6FA; -} - -div.left-header-yellow { - float:left; - position:relative; - top:0px; - left:0px; - max-width: 350px; - padding: 0.4em 1em; - margin-right: 1em; - font-size: 0.95em; - line-height: 1.6em; - border: 1px solid #000000; - background: #FFFFCC; -} - -/* draw box around index */ -#index { - float:right; - position:relative; - margin-left: 1em; - width: 400px; - background: #DAEDDA; - border: 1px solid gray; - font-size: 0.95em; - padding: .2em 1em -} - -div.wide { - float:right; - position:relative; - top:0px; - left:0px; - max-width: 450px; - padding: .4em 1em; - margin-left: 1em; - border: 1px solid #000000; - background: #DAEDDA; -} - -h1 { - color: #3333FF -} - -h2 { - font-size: 1.3em; - color: #009966; - border: 1px solid #d7d7d7; - font-style:italic; - background: #FFFFFF; - padding-left: 0.8em; - padding-right: 0.8em; - margin-bottom: 0; -} - -h3 { - font-size: 1.1em; - background: #FFFFCC; - padding-left: 0.8em; - padding-right: 0.8em; -} - -tt {font-size: 1.1em} - -a:active { color: #A020F0; } -a:link { color: #0000FF; } -a:visited { color: #1E90FF; } - -/* Navigation */ -.nav h2, .nav hr { display: none } -.nav ul { font-size: 1em; list-style: none; margin: 0; text-align: left } -.nav li { - border-right: 1px solid #d7d7d7; - display: inline; - padding: 0.75em; - white-space: nowrap; -} -.nav li.first { border-left: none } -.nav li.last { border-right: none } - -/* Main navigation bar */ -#mainmenu { - background: #FFFFFF; - border: 1px solid #000; - font-size: 0.8em; - margin: .66em 0 .33em; - margin-bottom: 1em; - padding: .2em 0; -} -#mainmenu li { border-right: none; padding: .25em 0 } -#mainmenu :link, #mainmenu :visited { - border-right: 1px solid #fff; - border-bottom: 1em; - border-left: 1px solid #555; - color: #000000; - padding: .2em 20px; - font-weight: bold; -} -* html #mainmenu :link, * html #mainmenu :visited { background-position: 1px 0 } -#mainmenu :link:hover, #mainmenu :visited:hover { - background-color: #FFFFCC; - border-right: 1px solid #ddd; -} -#mainmenu .active :link, #mainmenu .active :visited { - background: #009966; - border-top: none; - border-right: 1px solid #000; - color: #eee; - font-weight: bold; -} -#mainmenu .active :link:hover, #mainmenu .active :visited:hover { - border-right: 1px solid #000; -} - -ul.High { - list-style-image: url(../pics/raute-blau.gif); - font-size: 1em; - font-style: italic; - position: relative; - margin-top: 0em; - margin-left: 1em; - margin-bottom: 0; - padding: 1em; -} - -ul.Circle { - list-style-type: circle; - font-size: 1em; - margin-top: 0.5em; - margin-left: 0; - margin-bottom: 0.5em; - line-height: 1.6em; -} - -ul.Square { - list-style-type: square; - font-size: 1em; -} - -.marked { color: #FF0000; } - -.decent { color: #FF0000; } - -.code { - font-family: monospace; - font-weight: bold; - font-size: 1.1em; -} - -.copyright {font-size: 0.84em;} \ No newline at end of file diff --git a/www/cvs-script b/www/cvs-script deleted file mode 100755 index 52cbaea9b..000000000 --- a/www/cvs-script +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash -# execute this script in the current shell, using for example -# . cvs_script -unset CVS_SERVER -export CVS_RSH=ssh -export CVSROOT=:ext:ballen4705@smartmontools.cvs.sourceforge.net:/cvsroot/smartmontools diff --git a/www/doc.html b/www/doc.html deleted file mode 100644 index e93c92ea9..000000000 --- a/www/doc.html +++ /dev/null @@ -1,131 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> -<head> - <title>smartmontools Documentation Page (last updated $Date: 2008/05/01 11:28:12 $)</title> - <link rev="made" href="mailto:smartmontools-support@sourceforge.net" /> - <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=ISO-8859-1" /> - <meta name="description" content="smartmontools Documentation Page" /> - <meta name="keywords" content="Documentation, smartctl, smartd, crash prevention, S.M.A.R.T., SMART, FreeBSD, Linux, NetBSD, Solaris, Windows, disk, monitor, monitoring" /> - <meta name="DC.creator" content="Bruce Allen" /> - <meta name="DC.contributor" content="Gabriele Pohl" /> - <meta name="DC.rights" scheme="DCTERMS.URI" content="http://www.gnu.org/licenses/gpl-2.0.html" /> - <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /> - <meta http-equiv="content-style-type" content="text/css" /> - <link rel="stylesheet" type="text/css" href="css/style.css" /> -</head> -<body> -<!-- $Id: doc.html,v 1.10 2008/05/01 11:28:12 dipohl Exp $ --> -<div id="header"> - <h1><a id="logo" href="http://smartmontools.sourceforge.net/"><img src="smart_logo.gif" width="105" height="59" border="0" hspace="20" align="middle" name="smartmontools_Logo" alt="S.M.A.R.T. Logo" /></a> - smartmontools Documentation Page</h1> -</div> - -<div id="mainmenu" class="nav"> - <ul> - <li class="first"><a accesskey="n" href="index.html">Home</a></li> - <li class="active"><a href="doc.html">Documentation</a></li> - <li><a accesskey="d" href="download.html">Download</a></li> - <li><a accesskey="f" href="faq.html">FAQ</a></li> - <li><a accesskey="h" href="help.html">Help</a></li> - <li><a accesskey="a" href="about.html">About</a></li> - <li><a accesskey="l" href="links.html">Links</a></li> - <li class="last"><a accesskey="s" href="sphider/search.php">Search</a></li> - </ul> -</div> - -<div id="index"> -<h2>Documentation</h2> -<p>In this section we provide documentation upon basic and general understanding -of smartmontools. Have a look on the <a href="faq.html">FAQ Page</a> too, -where you find information concerning more specific issues.</p> - -<ul class="High"> - <li><a href="#man-pages">Manual pages</a> of smartmontools</li> - <li><a href="#attributes">SMART attributes</a></li> - <li><a href="#tutorials">Tutorials and articles</a> about smartmontools</li> - <li><a href="links.html#references">References on SMART and ATA/ATAPI standards</a></li> -</ul> -</div> -<div> -<h3><a name="man-pages"></a>Smartmontools manual pages</h3> -<p>If you are having trouble understanding the output of smartctl -or smartd, please first read the manual pages installed on your -system:</p> - -<p class="code"> -man 8 smartctl<br /> -man 8 smartd<br /> -man 5 smartd.conf</p> - -<p>Here are on-line versions of the smartmontools man pages:</p> -<ul class="Square"> - <li><a href="man/smartctl.8.html">smartctl manual page</a></li> - <li><a href="man/smartd.8.html">smartd manual page</a></li> - <li><a href="man/smartd.conf.5.html">smartd.conf manual page</a></li> -</ul> - -<p>Note that these are the manual pages for the <strong><em>current version</em></strong> -of smartmontools in the developers CVS repository; they might not -correspond to the (possibly older) version of smartmontools installed -on <em>your</em> system. So the manual pages installed on your system -should be regarded as definitive for your installation.</p> -<hr /> - -<h3><a name="attributes"></a>SMART attributes</h3> - -<ul class="Circle"> -<li><a href="http://www.t13.org/Documents/UploadedDocuments/docs2005/e05148r0-ACS-SMARTAttributesAnnex.pdf">SMART - Attribute Annex</a>, Jim Hatfield (Seagate Technology) to T13 Technical Committee on September 30, 2005.</li> -<li>Wikipedia about <a href="http://en.wikipedia.org/wiki/S.M.A.R.T.">SMART attributes</a></li> -</ul> -<hr /> - -<h3><a name="tutorials"></a>Tutorials and articles about smartmontools and S.M.A.R.T.</h3> - -<p>If you'd like to know more about SMART, then the following -references may be helpful:</p> - -<ul> -<li><a href="http://www.linuxjournal.com/article.php?sid=6983"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Monitoring Hard Disks with SMART (Linux Journal, Jan 2004)</a></li> -<li><a href="http://lea-linux.org/cached/index/Hardware-hard_plus-smart.html"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Soyez Smart (Francais) from GNU Linux Magazine France n�68,</a></li> -<li><a href="http://www.linux-user.de/ausgabe/2004/10/056-smartmontools/"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Vorbeugen statt Crash (Deutsch)</a> -from <a href="http://www.linux-user.de/ausgabe/2004/10"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />LinuxUser 2004/10</a></li> -<li><a href="http://www.linux-magazine.com/issue/49/Monitoring_Hard_Disks_with_smartmontools.pdf"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Crash Prevention -(English version of above)</a> from <a href="http://www.linux-magazine.com/"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Linux Magazine Dec 2004</a></li> -<li><a href="http://www.wikipedia.org/"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Wikipedia</a> articles about SMART: -<a href="http://en.wikipedia.org/wiki/Self-Monitoring%2C_Analysis%2C_and_Reporting_Technology"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />English</a>, -<a href="http://de.wikipedia.org/wiki/Self-Monitoring%2C_Analysis_and_Reporting_Technology"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Deutsch</a>, -<a href="http://es.wikipedia.org/wiki/S.M.A.R.T."><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Español</a>, -<a href="http://fr.wikipedia.org/wiki/Self-Monitoring%2C_Analysis_and_Reporting_Technology"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Français</a>, -<a href="http://it.wikipedia.org/wiki/Self-Monitoring%2C_Analysis_and_Reporting_Technology"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Italiano</a>, -<a href="http://ja.wikipedia.org/wiki/Self-Monitoring%2C_Analysis_and_Reporting_Technology"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Japanese</a>, -<a href="http://nl.wikipedia.org/wiki/S.M.A.R.T."><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Nederlands</a>, -<a href="http://pl.wikipedia.org/wiki/S.M.A.R.T._%28informatyka%29"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Polski</a>, -<a href="http://pt.wikipedia.org/wiki/S.M.A.R.T."><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Português</a>, -<a href="http://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D1%8F_SMART"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Russian</a>, -<a href="http://sk.wikipedia.org/wiki/S.M.A.R.T"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Slovenčina</a>, -<a href="http://sv.wikipedia.org/wiki/S.M.A.R.T."><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Svenska</a> -</li> -</ul> -</div> -<hr style="clear:left" /> -<div align="center"> -Hosted by<br /> -<a href="http://sourceforge.net/"><img style="border:0;width=:88px;height:31px" - src="http://sourceforge.net/sflogo.php?group_id=64297&type=5" alt="SourceForge.net" /></a> - <br /> -<font size="-1">Maintained by: <a href="mailto:smartmontools-support@lists.sourceforge.net">Gabriele Pohl</a><br /> -Copyright (C) 2002-8 Bruce Allen, published under <a href="http://www.gnu.org/licenses/gpl-2.0.html#SEC1">GNU GPL</a><br /> -Last update: $Date: 2008/05/01 11:28:12 $</font><br /> -<a href="http://validator.w3.org/checklink?uri=http%3A%2F%2Fsmartmontools.sourceforge.net%2Fdoc.html">W3C Link-Checker</a><br /> -<a href="http://validator.w3.org/check?uri=referer"><img - src="http://www.w3.org/Icons/valid-xhtml10-blue" - alt="Valid XHTML 1.0 Transitional" height="31" width="88" border="0" /></a> -<a href="http://jigsaw.w3.org/css-validator/check/referer"> - <img style="border:0;width:88px;height:31px" - src="http://jigsaw.w3.org/css-validator/images/vcss-blue" - alt="CSS ist valide!" /></a> -</div> -</body> -</html> \ No newline at end of file diff --git a/www/download.html b/www/download.html deleted file mode 100644 index 77d6dc024..000000000 --- a/www/download.html +++ /dev/null @@ -1,306 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> -<head> - <title>smartmontools Download Page (last updated $Date: 2008/04/23 20:22:23 $)</title> - <link rev="made" href="mailto:smartmontools-support@sourceforge.net" /> - <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=ISO-8859-1" /> - <meta name="description" content="smartmontools Home Page" /> - <meta name="keywords" content="Download, Install, Tutorial, S.M.A.R.T., SMART, FreeBSD, Linux, NetBSD, Solaris, Windows, disk, monitor, monitoring" /> - <meta name="DC.creator" content="Bruce Allen" /> - <meta name="DC.contributor" content="Gabriele Pohl" /> - <meta name="DC.rights" scheme="DCTERMS.URI" content="http://www.gnu.org/licenses/gpl-2.0.html" /> - <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /> - <meta http-equiv="content-style-type" content="text/css" /> -<link rel="stylesheet" type="text/css" href="css/style.css" /> -</head> -<body> -<!-- $Id: download.html,v 1.5 2008/04/23 20:22:23 dipohl Exp $ --> -<div id="header"> - <h1><a id="logo" href="http://smartmontools.sourceforge.net/"><img src="smart_logo.gif" width="105" height="59" border="0" hspace="20" align="middle" name="smartmontools_Logo" alt="S.M.A.R.T. Logo" /></a> - smartmontools Download Page</h1> -</div> - -<div id="mainmenu" class="nav"> - <ul> - <li class="first"><a accesskey="n" href="index.html">Home</a></li> - <li><a accesskey="k" href="doc.html">Documentation</a></li> - <li class="active"><a accesskey="d" href="download.html">Download</a></li> - <li><a accesskey="f" href="faq.html">FAQ</a></li> - <li><a accesskey="h" href="help.html">Help</a></li> - <li><a accesskey="a" href="about.html">About</a></li> - <li><a accesskey="l" href="links.html">Links</a></li> - <li class="last"><a accesskey="s" href="sphider/search.php">Search</a></li> - </ul> -</div> -<div class="right-header"> -<h2>How to download and install</h2> -<p>There are different ways to get and install -smartmontools. You can use any of the procedures below -(the fourth is for Debian Linux only). On the right side are instructions for trying -out smartmontools once you have completed the installation. The -<b><a href="http://smartmontools.cvs.sourceforge.net/smartmontools/sm5/INSTALL?view=markup"> -INSTALL</a></b> file contains additional information.</p> -<ol> -<li><strong>Install from your distributions RPM file</strong><br />(<a href="#rpm">Instructions</a>)</li> -<li><strong>Install from our source tarball</strong><br />(<a href="#tarball">Instructions</a>)</li> -<li><strong>Install latest unreleased code from CVS repository</strong><br />(<a href="#CVSInstall">Instructions</a>)</li> -<li><strong>Install the Debian package</strong><br />(<a href="#debian">Instructions</a>)</li> -<li><strong>Install the Cygwin package</strong><br />(<a href="#CygwinInstall">Instructions</a>)<br /> -(Windows with <a href="http://cygwin.com/"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Cygwin</a> installed)</li> -<li><strong>Install the Windows package</strong><br />(<a href="#WindowsInstall">Instructions</a>)</li> -</ol> -</div> - -<!-- Box on the right side --> -<div><p><b>After installing it using Method 1, 2, 3, 4 or 5, you can read the -man pages, and try out the commands:</b></p> - -<p class="code"> -man smartd.conf<br /> -man smartctl<br /> -man smartd<br /> -# Only root can do this<br /> -/usr/sbin/smartctl -s on -o on -S on /dev/hda<br /> -/usr/sbin/smartctl -a /dev/hda</p> - -<p>Note that the default location for the manual pages are -<tt>/usr/share/man/man5</tt> and <tt>/usr/share/man/man8</tt>.  If -'<tt>man</tt>' doesn't find them, then you may need to add -<tt>/usr/share/man</tt> to your <tt>MANPATH</tt> environment -variable.</p> - -<p>The Windows package (see Method 6 above) provides preformatted man pages -in <tt>*.html</tt> and <tt>*.txt</tt> format.</p> -<hr /> - -<h3><a name="rpm"></a>First Method - Install from your distributions RPM file</h3> -<p class="marked">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.</p> - -<h4>On Red Hat Enterprise Linux, CentOS (both in versions 5 and newer) and Fedora -Linux distributions</h4> - -<ul class="Square"> -<li>The smartmontools package is part of the official -repositories and can be installed using the <tt>yum</tt> command: -<p class="code"># you need to be root to do this<br /> -yum install smartmontools</p></li> -</ul> - -<h4>Other distributions providing RPM packages</h4> - -<ul class="Square"> - -<li>Download the latest binary RPM file (<tt>smartmontools*.rpm</tt>) for your -distribution. Don't get the SRPM file (<tt>*.src.rpm</tt>).<br /><br /></li> - -<li>Install it using RPM. <em>You must be <tt>root</tt> to do this</em>:<br /> -<p class="code">su root # -> enter root password -<br />rpm -ivh smartmontools-5.33-6.i586.rpm</p> -For most users, this is all that is needed.<br /><br /></li> - -<li>If you want to remove the package (<tt>rpm -e smartmontools</tt>) -and your system does not have <tt>chkconfig</tt> installed, you may need -to use: -<p class="code">rpm -e --noscripts smartmontools</p></li> -</ul> - -<h3><a name="tarball"></a>Second Method (Linux/Solaris/FreeBSD/NetBSD/OpenBSD/Cygwin) - Install from the source tarball</h3> -<ul class="Square"> -<li>Download the latest source tarball from <a -href="http://sourceforge.net/project/showfiles.php?group_id=64297">here</a>. -Note: you probably want the most recent stable release. Stable releases have -even-numbered extensions, and unstable experimental releases have -odd-numbered extensions.<br /><br /></li> - -<li>Uncompress the tarball: -<p class="code">tar zxvf smartmontools-5.38.tar.gz</p></li> -<li>The previous step created a directory called <tt>smartmontools-5.38</tt> -containing the code.  Go to that directory, build, and install: -<p class="code">cd smartmontools-5.38<br /> -./configure<br /> -make<br /> -make install</p></li> - -<li>For releases >=5.19, <tt>./configure</tt> -can take optional arguments. These optional arguments are fully explained in the -<a href="http://smartmontools.cvs.sourceforge.net/smartmontools/sm5/INSTALL?view=markup">INSTALL</a> -file. The most important one is <tt>--prefix</tt> to change the default installation directories.<br /> -<i>Please note that the default installation location changed in versions >=5.31.</i> -If you don't pass any arguments to <tt>./configure</tt> all files will reside under -<tt>/usr/local</tt> to not interfere with files from your distribution. For more detailed -information please also refer to the -<a href="http://smartmontools.cvs.sourceforge.net/smartmontools/sm5/INSTALL?view=markup">INSTALL</a> -document.<br /><br /></li> - -<li>To compile from another directory (avoids overwriting virgin files from the smartmontools package) -replace <tt>./configure [options]</tt> by: -<p class="code"> -mkdir objdir<br /> -cd objdir<br /> -../configure [options]<br /> -</p></li> - -<li>To install to another destination (useful for testing and to avoid overwriting an existing smartmontools installation) -replace <tt>make install</tt> by: -<p class="code">make DESTDIR=/home/myself/smartmontools-test install</p> -Use a full path: <tt>~/smartmontools-test</tt> won't work.<br /><br /></li> - -<li>Unless the destination directory is your home directory (or a location that you have write permission) -<br /> -<p class="code"># only root can do that:<br /> -make install</p> -</li> -</ul> - -<h3><a name="CVSInstall"></a> -Third Method - Install latest unreleased code from CVS repository</h3> -<ul class="Square"> -<li><span class="marked">Due to the new SourceForge CVS -architecture, the hostname for CVS access has changed from -<tt>cvs.sourceforge.net</tt> to <tt>smartmontools.cvs.sourceforge.net</tt>. -To update a copy of smartmontools checked out before 2006-05-12, change all -the <tt>*/CVS/Root</tt> files accordingly.</span><br /><br /></li> - -<li>One of the really cool things about CVS is that you can get -<i>any</i> 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 <u>tagged</u> with a name like -<tt>RELEASE_5_38</tt>. You can see what the different names are -by looking at the <a href="http://smartmontools.cvs.sourceforge.net/smartmontools/sm5/"> -CVS repository</a>. 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): - -<p class="code">cvs -d:pserver:anonymous@smartmontools.cvs.sourceforge.net:/cvsroot/smartmontools login<br /> -# when prompted for a password, just press Enter<br /> -cvs -d:pserver:anonymous@smartmontools.cvs.sourceforge.net:/cvsroot/smartmontools co sm5</p></li> - -<li>To instead get the RELEASE_5_37 release: - -<p class="code">cvs -d:pserver:anonymous@smartmontools.cvs.sourceforge.net:/cvsroot/smartmontools co -r RELEASE_5_37 sm5</p></li> - -<li>This will create a subdirectory called <tt>sm5/</tt> containing the -code. Go to that directory, build, and install: -<p class="code">cd sm5<br /> -./autogen.sh<br /> -./configure<br /> -make<br /> -make install</p> - -<p>- See notes under <b>Second method - install from source tarball</b> for different options to <tt>./configure</tt> -and other useful remarks.</p> -<p>- Skip <tt>./autogen.sh</tt> and <tt>./configure</tt> for tagged releases -<= 5.1-18 (RELEASE_5_X_Y, where X = 0 or 1 and Y = 0 to 18).</p> -<p>- If you get the current sources (<tt>cvs co</tt> with no arguments or do <tt>cvs up --A</tt>) then you <i>will</i> need those two additional steps.</p> -</li> - -<li>To update your sources to the RELEASE_5_38 release: -<p class="code">cd sm5<br /> -cvs up -r RELEASE_5_38</p></li> - -<li>To update any tagged release to the latest development code: - -<p class="code">cd sm5 -cvs up -A</p></li> -</ul> - -<h3><a name="debian"></a>Fourth Method (Debian Linux) - Install the Debian package</h3> -<ul class="Square"> -<li>All versions of the smartmontools package in <i>.deb</i> format are -available at the <a href="http://packages.debian.org/search?keywords=smartmontools&searchon=names&suite=all&section=all"> -<img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Debian package search page</a>.</li> - -<li>If you're running Debian <a -href="http://www.debian.org/releases/stable/"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />stable</a> please download a -backport to stable <a -href="http://www.backports.org/debian/pool/main/s/smartmontools/"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />here</a>. -These packages are provided by <a -href="http://www.backports.org"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />www.backports.org</a>.<br /><br /></li> - -<li>You can then install the package using: -<p class="code">dpkg -i smartmontools_5.36-1_i386.deb</p> - -If you prefer to fetch the packages using apt, please read the instructions at -<a href="http://www.backports.org/dokuwiki/doku.php?id=instructions"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />backports.org</a>. -</li> -</ul> - -<h3><a name="CygwinInstall"></a> -Fifth Method (Windows with <a href="http://cygwin.com/"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Cygwin</a> installed) - Install the Cygwin package</h3> -<ul class="Square"> -<li>Starting with CVS snapshot 2005-11-15, smartmontools is part of -the <a href="http://cygwin.com/packages/"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Cygwin distribution</a>. -A list of available smartmontools packages and their contents is -<a href="http://cygwin.com/packages/smartmontools/"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />here</a>.<br /><br /></li> -<li>To update your installation, click on the "Install or update now!" -link on the <a href="http://cygwin.com/"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Cygwin web page</a>. -This downloads <tt>setup.exe</tt> to your system. -Then, run setup and answer all of the questions. -Select smartmontools package in the "Utils" category.<br /><br /></li> - -<li>The optional source package (<tt>smartmontools-*-src.tar.bz2</tt>) -can be used to build both the Cygwin and the Windows binary packages -on Cygwin. -Refer to the file <tt>/usr/share/doc/Cygwin/smartmontools-*.README</tt> -for details.</li> -</ul> - -<h3><a name="WindowsInstall"></a> -Sixth Method (Windows) - Install the Windows package -</h3> -<ul class="Square"> -<li>Download and run the latest smartmontools -<a href="http://nsis.sourceforge.net/Main_Page"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />NSIS</a>-installer -(<tt>*.win32-setup.exe</tt>) from -<a href="http://sourceforge.net/project/showfiles.php?group_id=64297"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />here</a>. -<ul> -<li>The default install type "Full" creates start menu shortcuts -including an uninstaller, and adds the install directory to the PATH variable. -</li> -<li>Select install type "Extract files only" to disable these extra -components. -</li> -<li>Virus scanners occasionally produce false positive virus reports for -NSIS-installers, see the -<a href="http://nsis.sourceforge.net/NSIS_False_Positives"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />NSIS False Positives page</a>. -If this is the case for the smartmontools installer, please send a report to the -<a href="mailto:smartmontools-support@lists.sourceforge.net"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />smartmontools-support -mailing list</a>.<br /><br /></li> -</ul> -</li> -<li><span class="marked">Starting with smartmontools release 5.37, the Windows package -is no longer provided as a ZIP archive (<tt>*.win32.zip</tt>).</span><br /> -If the self extracting installer cannot be used for some reason, the files may also -be unpacked by a recent version of <a href="http://www.7-zip.org/"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />7-Zip</a>.<br /><br /></li> - -<li>More recent (and probably unstable) Windows test releases build from CVS -snapshots are available <a href="http://smartmontools-win32.dyndns.org/smartmontools/"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />here</a>.</li> -</ul> -</div> -<hr style="clear:left" /> -<div align="center"> -Hosted by<br /> -<a href="http://sourceforge.net/"><img style="border:0;width=:88px;height:31px" - src="http://sourceforge.net/sflogo.php?group_id=64297&type=5" alt="SourceForge.net" /></a> - <br /> -<font size="-1">Maintained by: <a href="mailto:smartmontools-support@lists.sourceforge.net">Gabriele Pohl</a><br /> -Copyright (C) 2002-8 Bruce Allen, published under <a href="http://www.gnu.org/licenses/gpl-2.0.html#SEC1">GNU GPL</a><br /> -Last update: $Date: 2008/04/23 20:22:23 $</font><br /> -<a href="http://validator.w3.org/checklink?uri=http%3A%2F%2Fsmartmontools.sourceforge.net%2Fdownload.html">W3C Link-Checker</a><br /> -<a href="http://validator.w3.org/check?uri=referer"><img - src="http://www.w3.org/Icons/valid-xhtml10-blue" - alt="Valid XHTML 1.0 Transitional" height="31" width="88" border="0" /></a> -<a href="http://jigsaw.w3.org/css-validator/check/referer"> - <img style="border:0;width:88px;height:31px" - src="http://jigsaw.w3.org/css-validator/images/vcss-blue" - alt="CSS ist valide!" /></a> -</div> - -</body> -</html> \ No newline at end of file diff --git a/www/examples/FUJITSU1.txt b/www/examples/FUJITSU1.txt deleted file mode 100644 index b10abf7a3..000000000 --- a/www/examples/FUJITSU1.txt +++ /dev/null @@ -1,80 +0,0 @@ -[root/]# smartctl -v 9,seconds -v 200,writeerrorcount /dev/hda - -smartctl version 5.1-18 Copyright (C) 2002-3 Bruce Allen -Home page is http://smartmontools.sourceforge.net/ - -=== START OF INFORMATION SECTION === -Device Model: FUJITSU MHR2040AT -Serial Number: NJ41T291391J -Firmware Version: 40BA -Device is: Not in smartctl database [for details use: -P showall] -ATA Version is: 6 -ATA Standard is: ATA/ATAPI-6 T13 1410D revision 1 -Local Time is: Thu Sep 4 22:18:48 2003 CEST -SMART support is: Available - device has SMART capability. -SMART support is: Enabled - -=== START OF READ SMART DATA SECTION === -SMART overall-health self-assessment test result: FAILED! -Drive failure expected in less than 24 hours. SAVE ALL DATA. -See vendor-specific Attribute list for failed Attributes. - -General SMART Values: -Off-line data collection status: (0x00) Offline data collection activity was - never started. - Auto Off-line Data Collection: Disabled. -Self-test execution status: ( 0) The previous self-test routine completed - without error or no self-test has ever - been run. -Total time to complete off-line -data collection: ( 468) seconds. -Offline data collection -capabilities: (0x1b) SMART execute Offline immediate. - Automatic timer ON/OFF support. - Suspend Offline collection upon new - command. - Offline surface scan supported. - Self-test supported. - No Conveyance Self-test supported. - No Selective Self-test supported. -SMART capabilities: (0x0003) Saves SMART data before entering - power-saving mode. - Supports SMART auto save timer. -Error logging capability: (0x01) Error logging supported. - No General Purpose Logging support. -Short self-test routine -recommended polling time: ( 2) minutes. -Extended self-test routine -recommended polling time: ( 60) minutes. - -SMART Attributes Data Structure revision number: 16 -Vendor Specific SMART Attributes with Thresholds: -ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE - 1 Raw_Read_Error_Rate 0x000f 100 100 046 Pre-fail Always - 52685626284 - 2 Throughput_Performance 0x0005 100 100 020 Pre-fail Offline - 0 - 3 Spin_Up_Time 0x0003 093 093 025 Pre-fail Always - 24065 - 4 Start_Stop_Count 0x0032 100 100 000 Old_age Always - 160 - 5 Reallocated_Sector_Ct 0x0033 099 099 024 Pre-fail Always - 31 - 7 Seek_Error_Rate 0x000f 100 100 047 Pre-fail Always - 131071 - 8 Seek_Time_Performance 0x0005 100 100 019 Pre-fail Offline - 0 - 9 Power_On_Seconds 0x0032 092 092 000 Old_age Always - 1335h+10m+34s - 10 Spin_Retry_Count 0x0013 100 100 020 Pre-fail Always - 0 - 12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 150 -192 Power-Off_Retract_Count 0x0032 099 099 000 Old_age Always - 7 -193 Load_Cycle_Count 0x0032 074 074 000 Old_age Always - 95890 -194 Temperature_Celsius 0x0022 090 100 000 Old_age Always - 57 -195 Hardware_ECC_Recovered 0x001a 100 100 000 Old_age Always - 10141348 -196 Reallocated_Event_Count 0x0032 099 099 000 Old_age Always - 30 -197 Current_Pending_Sector 0x0012 100 100 000 Old_age Always - 0 -198 Offline_Uncorrectable 0x0010 100 100 000 Old_age Offline - 0 -199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always - 0 -200 Write_Error_Count 0x000f 036 033 060 Pre-fail Always FAILING_NOW 2883583 -203 Run_Out_Cancel 0x0002 091 091 000 Old_age Always - 2589872160305 - -SMART Error Log Version: 1 -No Errors Logged - -SMART Self-test log structure revision number 1 -No self-tests have been logged - - diff --git a/www/examples/FUJITSU_MHR2020AT.txt b/www/examples/FUJITSU_MHR2020AT.txt deleted file mode 100644 index 4f8dc82b9..000000000 --- a/www/examples/FUJITSU_MHR2020AT.txt +++ /dev/null @@ -1,158 +0,0 @@ -smartctl version 5.32 Copyright (C) 2002-4 Bruce Allen -Home page is http://smartmontools.sourceforge.net/ - -=== START OF INFORMATION SECTION === -Device Model: FUJITSU MHR2020AT -Serial Number: NJ13T2215TUH -Firmware Version: 30B8 -Device is: Not in smartctl database [for details use: -P showall] -ATA Version is: 6 -ATA Standard is: ATA/ATAPI-6 T13 1410D revision 1 -Local Time is: Sun Aug 15 13:21:33 2004 MEST -SMART support is: Available - device has SMART capability. -SMART support is: Enabled - -=== START OF READ SMART DATA SECTION === -SMART overall-health self-assessment test result: FAILED! -Drive failure expected in less than 24 hours. SAVE ALL DATA. -See vendor-specific Attribute list for failed Attributes. - -General SMART Values: -Offline data collection status: (0x00) Offline data collection activity - was never started. - Auto Offline Data Collection: Disabled. -Self-test execution status: ( 105) The previous self-test completed having - the servo (and/or seek) element of the - test failed. -Total time to complete Offline -data collection: ( 234) seconds. -Offline data collection -capabilities: (0x1b) SMART execute Offline immediate. - Auto Offline data collection on/off support. - Suspend Offline collection upon new - command. - Offline surface scan supported. - Self-test supported. - No Conveyance Self-test supported. - No Selective Self-test supported. -SMART capabilities: (0x0003) Saves SMART data before entering - power-saving mode. - Supports SMART auto save timer. -Error logging capability: (0x01) Error logging supported. - No General Purpose Logging support. -Short self-test routine -recommended polling time: ( 2) minutes. -Extended self-test routine -recommended polling time: ( 30) minutes. - -SMART Attributes Data Structure revision number: 16 -Vendor Specific SMART Attributes with Thresholds: -ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE - 1 Raw_Read_Error_Rate 0x000f 007 001 046 Pre-fail Always FAILING_NOW 154618843423 - 2 Throughput_Performance 0x0005 100 100 020 Pre-fail Offline - 145 - 3 Spin_Up_Time 0x0003 094 083 025 Pre-fail Always - 24321 - 4 Start_Stop_Count 0x0032 097 097 000 Old_age Always - 1887 - 5 Reallocated_Sector_Ct 0x0033 099 099 024 Pre-fail Always - 1 - 7 Seek_Error_Rate 0x000f 100 100 047 Pre-fail Always - 458751 - 8 Seek_Time_Performance 0x0005 100 100 019 Pre-fail Offline - 0 - 9 Power_On_Seconds 0x0032 088 088 000 Old_age Always - 1819h+16m+52s - 10 Spin_Retry_Count 0x0013 100 100 020 Pre-fail Always - 0 - 12 Power_Cycle_Count 0x0032 091 091 000 Old_age Always - 1467 -192 Power-Off_Retract_Count 0x0032 099 099 000 Old_age Always - 44 -193 Load_Cycle_Count 0x0032 086 086 000 Old_age Always - 49810 -194 Temperature_Celsius 0x0022 100 100 000 Old_age Always - 32 -195 Hardware_ECC_Recovered 0x001a 100 100 000 Old_age Always - 1221 -196 Reallocated_Event_Count 0x0032 099 099 000 Old_age Always - 1 -197 Current_Pending_Sector 0x0012 001 001 000 Old_age Always - 10 -198 Offline_Uncorrectable 0x0010 092 092 000 Old_age Offline - 17 -199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always - 0 -200 Multi_Zone_Error_Rate 0x000f 100 100 060 Pre-fail Always - 393215 -203 Run_Out_Cancel 0x0002 100 100 000 Old_age Always - 429515210380 - -SMART Error Log Version: 1 -ATA Error Count: 6861 (device log contains only the most recent five errors) - CR = Command Register [HEX] - FR = Features Register [HEX] - SC = Sector Count Register [HEX] - SN = Sector Number Register [HEX] - CL = Cylinder Low Register [HEX] - CH = Cylinder High Register [HEX] - DH = Device/Head Register [HEX] - DC = Device Command Register [HEX] - ER = Error register [HEX] - ST = Status register [HEX] -Powered_Up_Time is measured from power on, and printed as -DDd+hh:mm:SS.sss where DD=days, hh=hours, mm=minutes, -SS=sec, and sss=millisec. It "wraps" after 49.710 days. - -Error 6861 occurred at disk power-on lifetime: 1818 hours (75 days + 18 hours) - When the command that caused the error occurred, the device was active or idle. - - After command completion occurred, registers were: - ER ST SC SN CL CH DH - -- -- -- -- -- -- -- - 40 59 8b 7d 16 51 f0 Error: UNC 139 sectors at LBA = 0x0051167d = 5314173 - - Commands leading to the command that caused the error were: - CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name - -- -- -- -- -- -- -- -- ---------------- -------------------- - 25 00 90 78 16 51 f0 00 08:22:32.857 READ DMA EXT - -Error 6860 occurred at disk power-on lifetime: 1818 hours (75 days + 18 hours) - When the command that caused the error occurred, the device was active or idle. - - After command completion occurred, registers were: - ER ST SC SN CL CH DH - -- -- -- -- -- -- -- - 40 59 8b 7d 16 51 f0 Error: UNC 139 sectors at LBA = 0x0051167d = 5314173 - - Commands leading to the command that caused the error were: - CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name - -- -- -- -- -- -- -- -- ---------------- -------------------- - 25 00 98 70 16 51 f0 00 08:22:27.700 READ DMA EXT - -Error 6859 occurred at disk power-on lifetime: 1818 hours (75 days + 18 hours) - When the command that caused the error occurred, the device was active or idle. - - After command completion occurred, registers were: - ER ST SC SN CL CH DH - -- -- -- -- -- -- -- - 40 59 8b 7d 16 51 f0 Error: UNC 139 sectors at LBA = 0x0051167d = 5314173 - - Commands leading to the command that caused the error were: - CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name - -- -- -- -- -- -- -- -- ---------------- -------------------- - 25 00 a0 68 16 51 f0 00 08:22:22.558 READ DMA EXT - -Error 6858 occurred at disk power-on lifetime: 1818 hours (75 days + 18 hours) - When the command that caused the error occurred, the device was active or idle. - - After command completion occurred, registers were: - ER ST SC SN CL CH DH - -- -- -- -- -- -- -- - 40 59 8b 7d 16 51 f0 Error: UNC 139 sectors at LBA = 0x0051167d = 5314173 - - Commands leading to the command that caused the error were: - CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name - -- -- -- -- -- -- -- -- ---------------- -------------------- - 25 00 a8 60 16 51 f0 00 08:22:17.458 READ DMA EXT - -Error 6857 occurred at disk power-on lifetime: 1818 hours (75 days + 18 hours) - When the command that caused the error occurred, the device was active or idle. - - After command completion occurred, registers were: - ER ST SC SN CL CH DH - -- -- -- -- -- -- -- - 40 59 8b 7d 16 51 f0 Error: UNC 139 sectors at LBA = 0x0051167d = 5314173 - - Commands leading to the command that caused the error were: - CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name - -- -- -- -- -- -- -- -- ---------------- -------------------- - 25 00 b0 58 16 51 f0 00 08:22:12.558 READ DMA EXT - -SMART Self-test log structure revision number 1 -Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error -# 1 Short offline Completed: servo/seek failure 90% 1819 - -# 2 Extended offline Completed: servo/seek failure 90% 1816 - - -Device does not support Selective Self Tests/Logging diff --git a/www/examples/HITACHI_DK23AA-12B.txt b/www/examples/HITACHI_DK23AA-12B.txt deleted file mode 100644 index 6f9b62e60..000000000 --- a/www/examples/HITACHI_DK23AA-12B.txt +++ /dev/null @@ -1,173 +0,0 @@ -smartctl version 5.30 Copyright (C) 2002-4 Bruce Allen -Home page is http://smartmontools.sourceforge.net/ - -=== START OF INFORMATION SECTION === -Device Model: HITACHI_DK23AA-12B -Serial Number: xxxxxx -Firmware Version: 00XDA0B6 -Device is: Not in smartctl database [for details use: -P showall] -ATA Version is: 5 -ATA Standard is: ATA/ATAPI-5 T13 1321D revision 1 -Local Time is: Sat Apr 24 17:19:58 2004 EST -SMART support is: Available - device has SMART capability. -SMART support is: Enabled - -=== START OF READ SMART DATA SECTION === -SMART overall-health self-assessment test result: FAILED! -Drive failure expected in less than 24 hours. SAVE ALL DATA. -See vendor-specific Attribute list for failed Attributes. - -General SMART Values: -Offline data collection status: (0x00) Offline data collection activity was - never started. - Auto Offline Data Collection: Disabled. -Self-test execution status: ( 0) The previous self-test routine completed - without error or no self-test has ever - been run. -Total time to complete Offline -data collection: (1110) seconds. -Offline data collection -capabilities: (0x1b) SMART execute Offline immediate. - Auto Offline data collection on/off support. - Suspend Offline collection upon new - command. - Offline surface scan supported. - Self-test supported. - No Conveyance Self-test supported. - No Selective Self-test supported. -SMART capabilities: (0x0003) Saves SMART data before entering - power-saving mode. - Supports SMART auto save timer. -Error logging capability: (0x01) Error logging supported. - No General Purpose Logging support. -Short self-test routine -recommended polling time: ( 1) minutes. -Extended self-test routine -recommended polling time: ( 19) minutes. - -SMART Attributes Data Structure revision number: 16 -Vendor Specific SMART Attributes with Thresholds: -ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE - 1 Raw_Read_Error_Rate 0x000d 099 099 050 Pre-fail Offline - 68719476757 - 4 Start_Stop_Count 0x0032 097 097 050 Old_age Always - 3259 - 5 Reallocated_Sector_Ct 0x0033 001 001 010 Pre-fail Always FAILING_NOW 1876 - 7 Seek_Error_Rate 0x000b 100 100 050 Pre-fail Always - 760 - 9 Power_On_Hours 0x0032 090 090 060 Old_age Always - 21783 - 10 Spin_Retry_Count 0x0013 100 100 050 Pre-fail Always - 0 -196 Reallocated_Event_Count 0x0032 001 001 001 Old_age Always FAILING_NOW 254 -197 Current_Pending_Sector 0x0032 097 093 001 Old_age Always - 3 -198 Offline_Uncorrectable 0x0010 100 100 001 Old_age Offline - 0 -199 UDMA_CRC_Error_Count 0x000a 200 200 000 Old_age Always - 0 -221 G-Sense_Error_Rate 0x000a 100 100 050 Old_age Always - 42 -223 Load_Retry_Count 0x0012 100 100 050 Old_age Always - 149 -225 Load_Cycle_Count 0x0032 050 050 050 Old_age Always FAILING_NOW 5110222858734 -250 Read_Error_Retry_Rate 0x000a 090 001 050 Old_age Always In_the_past 103 - -SMART Error Log Version: 1 -ATA Error Count: 1151 (device log contains only the most recent five errors) - CR = Command Register [HEX] - FR = Features Register [HEX] - SC = Sector Count Register [HEX] - SN = Sector Number Register [HEX] - CL = Cylinder Low Register [HEX] - CH = Cylinder High Register [HEX] - DH = Device/Head Register [HEX] - DC = Device Command Register [HEX] - ER = Error register [HEX] - ST = Status register [HEX] -Timestamp = decimal seconds since the previous disk power-on. -Note: timestamp "wraps" after 2^32 msec = 49.710 days. - -Error 1151 occurred at disk power-on lifetime: 5445 hours - When the command that caused the error occurred, the device was doing SMART Offline or Self-test. - - After command completion occurred, registers were: - ER ST SC SN CL CH DH - -- -- -- -- -- -- -- - 01 51 01 01 4f c2 e0 Error: obs - - Commands leading to the command that caused the error were: - CR FR SC SN CL CH DH DC Timestamp Command/Feature_Name - -- -- -- -- -- -- -- -- --------- -------------------- - b0 d5 01 01 4f c2 e0 00 46273.155 SMART READ LOG - b0 d1 01 01 4f c2 e0 00 46273.138 SMART READ ATTRIBUTE THRESHOLDS [OBS-4] - b0 d0 01 00 4f c2 e0 00 46273.009 SMART READ DATA - b0 da 00 00 4f c2 a0 00 46272.881 SMART RETURN STATUS - b0 da 00 00 4f c2 e0 00 46272.760 SMART RETURN STATUS - -Error 1150 occurred at disk power-on lifetime: 5354 hours - When the command that caused the error occurred, the device was active or idle. - - After command completion occurred, registers were: - ER ST SC SN CL CH DH - -- -- -- -- -- -- -- - 01 51 01 56 36 54 e1 Error: AMNF 1 sectors at LBA = 0x01543656 = 22296150 - - Commands leading to the command that caused the error were: - CR FR SC SN CL CH DH DC Timestamp Command/Feature_Name - -- -- -- -- -- -- -- -- --------- -------------------- - c8 00 80 d7 35 54 e1 00 1517.332 READ DMA - c8 00 80 57 35 54 e1 00 1517.329 READ DMA - ca 00 08 67 1d cb e0 00 1516.014 WRITE DMA - ca 00 30 37 1d cb e0 00 1515.992 WRITE DMA - ca 00 10 2f e0 ca e0 00 1515.874 WRITE DMA - -Error 1149 occurred at disk power-on lifetime: 5352 hours - When the command that caused the error occurred, the device was active or idle. - - After command completion occurred, registers were: - ER ST SC SN CL CH DH - -- -- -- -- -- -- -- - 01 51 0c bb c5 57 e1 Error: AMNF 12 sectors at LBA = 0x0157c5bb = 22529467 - - Commands leading to the command that caused the error were: - CR FR SC SN CL CH DH DC Timestamp Command/Feature_Name - -- -- -- -- -- -- -- -- --------- -------------------- - c8 00 20 a7 c5 57 e1 00 380.146 READ DMA - 10 00 3f 00 00 00 e0 00 380.146 RECALIBRATE [OBS-4] - c8 00 20 a7 c5 57 e1 00 377.932 READ DMA - c8 00 20 a7 c5 57 e1 00 373.729 READ DMA - c8 00 80 6f 41 5f e1 00 371.776 READ DMA - -Error 1148 occurred at disk power-on lifetime: 5352 hours - When the command that caused the error occurred, the device was active or idle. - - After command completion occurred, registers were: - ER ST SC SN CL CH DH - -- -- -- -- -- -- -- - 01 51 0c bb c5 57 e1 Error: AMNF 12 sectors at LBA = 0x0157c5bb = 22529467 - - Commands leading to the command that caused the error were: - CR FR SC SN CL CH DH DC Timestamp Command/Feature_Name - -- -- -- -- -- -- -- -- --------- -------------------- - c8 00 20 a7 c5 57 e1 00 377.932 READ DMA - c8 00 20 a7 c5 57 e1 00 373.729 READ DMA - c8 00 80 6f 41 5f e1 00 371.776 READ DMA - c8 00 80 ef 40 5f e1 00 371.742 READ DMA - ca 00 08 57 1f cb e0 00 371.291 WRITE DMA - -Error 1147 occurred at disk power-on lifetime: 5352 hours - When the command that caused the error occurred, the device was active or idle. - - After command completion occurred, registers were: - ER ST SC SN CL CH DH - -- -- -- -- -- -- -- - 01 51 0c bb c5 57 e1 Error: AMNF 12 sectors at LBA = 0x0157c5bb = 22529467 - - Commands leading to the command that caused the error were: - CR FR SC SN CL CH DH DC Timestamp Command/Feature_Name - -- -- -- -- -- -- -- -- --------- -------------------- - c8 00 20 a7 c5 57 e1 00 373.729 READ DMA - c8 00 80 6f 41 5f e1 00 371.776 READ DMA - c8 00 80 ef 40 5f e1 00 371.742 READ DMA - ca 00 08 57 1f cb e0 00 371.291 WRITE DMA - ca 00 10 47 1f cb e0 00 371.262 WRITE DMA - -SMART Self-test log structure revision number 1 -Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error -# 1 Short offline Completed without error 00% 5445 - -# 2 Short offline Completed without error 00% 5445 - -# 3 Short offline Aborted by host 90% 5445 - -# 4 Short offline Completed without error 00% 5445 - -# 5 Short offline Completed without error 00% 5445 - - diff --git a/www/examples/HITACHI_DK23BA-20-0.txt b/www/examples/HITACHI_DK23BA-20-0.txt deleted file mode 100644 index 13e9cb012..000000000 --- a/www/examples/HITACHI_DK23BA-20-0.txt +++ /dev/null @@ -1,163 +0,0 @@ -[root@ballen www]# /usr/sbin/smartctl -am /dev/hda - -smartctl version 5.0-25 Copyright (C) 2002 Bruce Allen -Home page is http://smartmontools.sourceforge.net/ - -=== START OF INFORMATION SECTION === -Device Model: HITACHI_DK23BA-20 -Serial Number: 12H7M8 -Firmware Version: 00E0A0D2 -ATA Version is: 5 -ATA Standard is: ATA/ATAPI-5 T13 1321D revision 1 -SMART support is: Available - device has SMART capability. -SMART support is: Enabled - -=== START OF READ SMART DATA SECTION === -SMART overall-health self-assessment test result: PASSED -See vendor-specific Attribute list for marginal Attributes. - -General SMART Values: -Off-line data collection status: (0x00) Offline data collection activity was - never started. -Self-test execution status: ( 0) The previous self-test routine completed - without error or no self-test has ever - been run. -Total time to complete off-line -data collection: (1530) seconds. -Offline data collection -capabilities: (0x1b) SMART execute Offline immediate. - Automatic timer ON/OFF support. - Suspend Offline collection upon new - command. - Offline surface scan supported. - Self-test supported. -SMART capabilities: (0x0003) Saves SMART data before entering - power-saving mode. - Supports SMART auto save timer. -Error logging capability: (0x01) Error logging supported. -Short self-test routine -recommended polling time: ( 2) minutes. -Extended self-test routine -recommended polling time: ( 26) minutes. - -SMART Attributes Data Structure revision number: 16 -Vendor Specific SMART Attributes with Thresholds: -ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE WHEN_FAILED RAW_VALUE - 1 Raw_Read_Error_Rate 0x000d 100 083 050 Pre-fail - 677 - 3 Spin_Up_Time 0x0007 100 100 050 Pre-fail - 0 - 4 Start_Stop_Count 0x0032 100 100 050 Old_age - 249 - 5 Reallocated_Sector_Ct 0x0033 099 099 010 Pre-fail - 30 - 7 Seek_Error_Rate 0x000f 100 100 050 Pre-fail - 319 - 9 Power_On_Hours 0x0032 099 099 060 Old_age - 701 h + 42 m - 10 Spin_Retry_Count 0x0013 100 100 050 Pre-fail - 0 - 12 Power_Cycle_Count 0x0032 100 100 050 Old_age - 249 -192 Power-Off_Retract_Count 0x0032 100 100 050 Old_age - 15 -195 Hardware_ECC_Recovered 0x001a 100 001 050 Old_age In_the_past 559 -196 Reallocated_Event_Count 0x0032 097 097 001 Old_age - 30 -197 Current_Pending_Sector 0x0032 095 095 001 Old_age - 5 -198 Offline_Uncorrectable 0x0010 095 095 001 Old_age - 31 -199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age - 0 -221 G-Sense_Error_Rate 0x000a 100 100 050 Old_age - 0 -223 Load_Retry_Count 0x0012 100 100 050 Old_age - 0 -225 Load_Cycle_Count 0x0032 095 095 050 Old_age - 18446744072753281791 -230 Unknown_Attribute 0x0032 100 100 060 Old_age - 18484 -250 Unknown_Attribute 0x000a 100 070 050 Old_age - 601 - -SMART Error Log Version: 1 -ATA Error Count: 9 (device log contains only the most recent five errors) - DCR = Device Control Register - FR = Features Register - SC = Sector Count Register - SN = Sector Number Register - CL = Cylinder Low Register - CH = Cylinder High Register - D/H = Device/Head Register - CR = Content written to Command Register - ER = Error register - STA = Status register -Timestamp is seconds since the previous disk power-on. -Note: timestamp "wraps" after 2^32 msec = 49.710 days. - -Error 1 occurred at disk power-on lifetime: 458 hours -When the command that caused the error occurred, the device was active or idle. -After command completion occurred, registers were: -ER:40 SC:01 SN:15 CL:be CH:2e D/H:e0 ST:51 -Sequence of commands leading to the command that caused the error were: -DCR FR SC SN CL CH D/H CR Timestamp - 00 00 01 15 be 2e e0 c8 831.599 - 00 00 01 14 be 2e e0 c8 831.594 - 00 00 01 13 be 2e e0 c8 831.594 - 00 00 01 12 be 2e e0 c8 831.594 - 00 00 01 11 be 2e e0 c8 831.594 - -Error 2 occurred at disk power-on lifetime: 458 hours -When the command that caused the error occurred, the device was active or idle. -After command completion occurred, registers were: -ER:40 SC:45 SN:15 CL:be CH:2e D/H:e0 ST:51 -Sequence of commands leading to the command that caused the error were: -DCR FR SC SN CL CH D/H CR Timestamp - 00 00 80 da bd 2e e0 c8 829.680 - 00 00 80 5a bd 2e e0 c8 829.677 - 00 00 80 da bc 2e e0 c8 829.673 - 00 00 80 5a bc 2e e0 c8 829.671 - 00 00 01 58 bc 2e e0 c8 829.671 - -Error 3 occurred at disk power-on lifetime: 458 hours -When the command that caused the error occurred, the device was active or idle. -After command completion occurred, registers were: -ER:40 SC:01 SN:47 CL:bc CH:2e D/H:e0 ST:51 -Sequence of commands leading to the command that caused the error were: -DCR FR SC SN CL CH D/H CR Timestamp - 00 00 01 47 bc 2e e0 c8 826.962 - 00 00 01 46 bc 2e e0 c8 826.961 - 00 00 01 45 bc 2e e0 c8 826.961 - 00 00 01 44 bc 2e e0 c8 826.961 - 00 00 01 43 bc 2e e0 c8 826.961 - -Error 4 occurred at disk power-on lifetime: 458 hours -When the command that caused the error occurred, the device was active or idle. -After command completion occurred, registers were: -ER:40 SC:13 SN:47 CL:bc CH:2e D/H:e0 ST:51 -Sequence of commands leading to the command that caused the error were: -DCR FR SC SN CL CH D/H CR Timestamp - 00 00 80 da bb 2e e0 c8 825.038 - 00 00 80 5a bb 2e e0 c8 825.033 - 00 00 80 da ba 2e e0 c8 825.030 - 00 00 80 5a ba 2e e0 c8 824.940 - 00 00 80 da b9 2e e0 c8 824.937 - -Error 5 occurred at disk power-on lifetime: 458 hours -When the command that caused the error occurred, the device was active or idle. -After command completion occurred, registers were: -ER:40 SC:01 SN:85 CL:19 CH:2c D/H:e0 ST:51 -Sequence of commands leading to the command that caused the error were: -DCR FR SC SN CL CH D/H CR Timestamp - 00 00 01 85 19 2c e0 c8 816.487 - 00 00 01 84 19 2c e0 c8 816.487 - 00 00 01 83 19 2c e0 c8 816.486 - 00 00 01 82 19 2c e0 c8 816.486 - 00 00 01 81 19 2c e0 c8 816.486 - -SMART Self-test log, version number 1 -Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error -# 1 Short off-line Completed 00% 691 -# 2 Extended off-line Completed: read failure 40% 661 0x002c1985 -# 3 Extended off-line Completed: read failure 40% 661 0x002c1985 -# 4 Short off-line Completed 00% 660 -# 5 Extended off-line Completed: read failure 40% 658 0x002c1985 -# 6 Short off-line Completed 00% 658 -# 7 Short off-line Completed 00% 658 -# 8 Extended off-line Completed: read failure 40% 658 0x002c1985 -# 9 Extended off-line Completed: read failure 40% 657 0x002c1985 -#10 Short off-line Completed 00% 647 -#11 Short off-line Completed 00% 587 -#12 Short off-line Completed 00% 583 -#13 Short off-line Completed 00% 551 -#14 Short captive Interrupted (host reset) 40% 551 -#15 Short off-line Completed 00% 551 -#16 Extended off-line Completed: read failure 40% 550 0x002c1985 -#17 Extended off-line Aborted by host 50% 550 -#18 Short off-line Completed 00% 550 -#19 Short off-line Completed 00% 537 -#20 Extended off-line Completed: read failure 40% 536 0x002c1985 -#21 Short off-line Completed 00% 536 diff --git a/www/examples/IC35L120AVV207-0.txt b/www/examples/IC35L120AVV207-0.txt deleted file mode 100644 index 4e43e8c2d..000000000 --- a/www/examples/IC35L120AVV207-0.txt +++ /dev/null @@ -1,67 +0,0 @@ -# smartctl -a /dev/hda -smartctl version 5.0-45 Copyright (C) 2002 Bruce Allen -Home page is http://smartmontools.sourceforge.net/ - -=== START OF INFORMATION SECTION === -Device Model: IC35L120AVV207-0 -Serial Number: VNVD02G4G4BDEG -Firmware Version: V24OA63A -ATA Version is: 6 -ATA Standard is: ATA/ATAPI-6 T13 1410D revision 3a -SMART support is: Available - device has SMART capability. -SMART support is: Enabled - -=== START OF READ SMART DATA SECTION === -SMART overall-health self-assessment test result: PASSED - -General SMART Values: -Off-line data collection status: (0x00) Offline data collection activity was - never started. -Self-test execution status: ( 0) The previous self-test routine completed - without error or no self-test has ever - been run. -Total time to complete off-line -data collection: (2855) seconds. -Offline data collection -capabilities: (0x1b) SMART execute Offline immediate. - Automatic timer ON/OFF support. - Suspend Offline collection upon new - command. - Offline surface scan supported. - Self-test supported. -SMART capabilities: (0x0003) Saves SMART data before entering - power-saving mode. - Supports SMART auto save timer. -Error logging capability: (0x01) Error logging supported. -Short self-test routine -recommended polling time: ( 1) minutes. -Extended self-test routine -recommended polling time: ( 48) minutes. - -SMART Attributes Data Structure revision number: 16 -Vendor Specific SMART Attributes with Thresholds: -ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE WHEN_FAILED RAW_VALUE - 1 Raw_Read_Error_Rate 0x000b 100 100 060 Pre-fail - 0 - 2 Throughput_Performance 0x0005 100 100 050 Pre-fail - 0 - 3 Spin_Up_Time 0x0007 102 102 024 Pre-fail - 16974103 - 4 Start_Stop_Count 0x0012 100 100 000 Old_age - 14 - 5 Reallocated_Sector_Ct 0x0033 100 100 005 Pre-fail - 0 - 7 Seek_Error_Rate 0x000b 100 100 067 Pre-fail - 0 - 8 Seek_Time_Performance 0x0005 100 100 020 Pre-fail - 0 - 9 Power_On_Hours 0x0012 100 100 000 Old_age - 242 - 10 Spin_Retry_Count 0x0013 100 100 060 Pre-fail - 0 - 12 Power_Cycle_Count 0x0032 100 100 000 Old_age - 14 -192 Power-Off_Retract_Count 0x0032 100 100 050 Old_age - 24 -193 Load_Cycle_Count 0x0012 100 100 050 Old_age - 24 -194 Temperature_Celsius 0x0002 203 203 000 Old_age - 27 (Lifetime Min/Max 20/37) -196 Reallocated_Event_Count 0x0032 100 100 000 Old_age - 0 -197 Current_Pending_Sector 0x0022 100 100 000 Old_age - 0 -198 Offline_Uncorrectable 0x0008 100 100 000 Old_age - 0 -199 UDMA_CRC_Error_Count 0x000a 200 200 000 Old_age - 0 - -SMART Error Log Version: 1 -No Errors Logged - -SMART Self-test log, version number 1 -Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error -# 1 Extended off-line Completed 00% 54 diff --git a/www/examples/IC35L120AVV207-1.txt b/www/examples/IC35L120AVV207-1.txt deleted file mode 100644 index 48a699103..000000000 --- a/www/examples/IC35L120AVV207-1.txt +++ /dev/null @@ -1,191 +0,0 @@ -smartctl version 5.31 Copyright (C) 2002-4 Bruce Allen -Home page is http://smartmontools.sourceforge.net/ - -=== START OF INFORMATION SECTION === -Device Model: IC35L120AVV207-1 -Serial Number: VNVD09G4H3HPMT -Firmware Version: V24OA66A -Device is: In smartctl database [for details use: -P show] -ATA Version is: 6 -ATA Standard is: ATA/ATAPI-6 T13 1410D revision 3a -Local Time is: Tue Jun 15 23:38:56 2004 CDT -SMART support is: Available - device has SMART capability. -SMART support is: Enabled - -=== START OF READ SMART DATA SECTION === -SMART overall-health self-assessment test result: FAILED! -Drive failure expected in less than 24 hours. SAVE ALL DATA. -See vendor-specific Attribute list for failed Attributes. - -General SMART Values: -Offline data collection status: (0x84) Offline data collection activity - was suspended by an interrupting command from host. - Auto Offline Data Collection: Enabled. -Self-test execution status: ( 121) The previous self-test completed having - the read element of the test failed. -Total time to complete Offline -data collection: (2855) seconds. -Offline data collection -capabilities: (0x1b) SMART execute Offline immediate. - Auto Offline data collection on/off support. - Suspend Offline collection upon new - command. - Offline surface scan supported. - Self-test supported. - No Conveyance Self-test supported. - No Selective Self-test supported. -SMART capabilities: (0x0003) Saves SMART data before entering - power-saving mode. - Supports SMART auto save timer. -Error logging capability: (0x01) Error logging supported. - General Purpose Logging supported. -Short self-test routine -recommended polling time: ( 1) minutes. -Extended self-test routine -recommended polling time: ( 48) minutes. - -SMART Attributes Data Structure revision number: 16 -Vendor Specific SMART Attributes with Thresholds: -ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE - 1 Raw_Read_Error_Rate 0x000b 089 089 060 Pre-fail Always - 1703986 - 2 Throughput_Performance 0x0005 015 015 050 Pre-fail Offline FAILING_NOW 5518 - 3 Spin_Up_Time 0x0007 100 100 024 Pre-fail Always - 278 - 4 Start_Stop_Count 0x0012 100 100 000 Old_age Always - 9 - 5 Reallocated_Sector_Ct 0x0033 091 091 005 Pre-fail Always - 277 - 7 Seek_Error_Rate 0x000b 100 100 067 Pre-fail Always - 0 - 8 Seek_Time_Performance 0x0005 123 123 020 Pre-fail Offline - 37 - 9 Power_On_Hours 0x0012 100 100 000 Old_age Always - 2759 - 10 Spin_Retry_Count 0x0013 100 100 060 Pre-fail Always - 0 - 12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 9 -192 Power-Off_Retract_Count 0x0032 100 100 050 Old_age Always - 45 -193 Load_Cycle_Count 0x0012 100 100 050 Old_age Always - 45 -194 Temperature_Celsius 0x0002 166 166 000 Old_age Always - 33 (Lifetime Min/Max 23/44) -196 Reallocated_Event_Count 0x0032 092 092 000 Old_age Always - 319 -197 Current_Pending_Sector 0x0022 100 100 000 Old_age Always - 49 -198 Offline_Uncorrectable 0x0008 100 100 000 Old_age Offline - 20 -199 UDMA_CRC_Error_Count 0x000a 200 200 000 Old_age Always - 0 - -SMART Error Log Version: 1 -ATA Error Count: 161 (device log contains only the most recent five errors) - CR = Command Register [HEX] - FR = Features Register [HEX] - SC = Sector Count Register [HEX] - SN = Sector Number Register [HEX] - CL = Cylinder Low Register [HEX] - CH = Cylinder High Register [HEX] - DH = Device/Head Register [HEX] - DC = Device Command Register [HEX] - ER = Error register [HEX] - ST = Status register [HEX] -Powered_Up_Time is measured from power on, and printed as -DDd+hh:mm:SS.sss where DD=days, hh=hours, mm=minutes, -SS=sec, and sss=millisec. It "wraps" after 49.710 days. - -Error 161 occurred at disk power-on lifetime: 2752 hours (114 days + 16 hours) - When the command that caused the error occurred, the device was active or idle. - - After command completion occurred, registers were: - ER ST SC SN CL CH DH - -- -- -- -- -- -- -- - 40 51 46 c2 a7 02 e0 Error: UNC 70 sectors at LBA = 0x0002a7c2 = 174018 - - Commands leading to the command that caused the error were: - CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name - -- -- -- -- -- -- -- -- ---------------- -------------------- - 25 00 46 c2 a7 02 e0 00 23d+03:19:20.800 READ DMA EXT - 25 00 48 c0 a7 02 e0 00 23d+03:19:16.000 READ DMA EXT - 25 00 1c a4 a7 02 e0 00 23d+03:19:15.200 READ DMA EXT - 25 00 1e a2 a7 02 e0 00 23d+03:19:10.400 READ DMA EXT - 25 00 20 a0 a7 02 e0 00 23d+03:19:02.200 READ DMA EXT - -Error 160 occurred at disk power-on lifetime: 2752 hours (114 days + 16 hours) - When the command that caused the error occurred, the device was active or idle. - - After command completion occurred, registers were: - ER ST SC SN CL CH DH - -- -- -- -- -- -- -- - 40 51 47 c1 a7 02 e0 Error: UNC 71 sectors at LBA = 0x0002a7c1 = 174017 - - Commands leading to the command that caused the error were: - CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name - -- -- -- -- -- -- -- -- ---------------- -------------------- - 25 00 48 c0 a7 02 e0 00 23d+03:19:16.000 READ DMA EXT - 25 00 1c a4 a7 02 e0 00 23d+03:19:15.200 READ DMA EXT - 25 00 1e a2 a7 02 e0 00 23d+03:19:10.400 READ DMA EXT - 25 00 20 a0 a7 02 e0 00 23d+03:19:02.200 READ DMA EXT - 25 00 22 9e a7 02 e0 00 23d+03:18:57.400 READ DMA EXT - -Error 159 occurred at disk power-on lifetime: 2752 hours (114 days + 16 hours) - When the command that caused the error occurred, the device was active or idle. - - After command completion occurred, registers were: - ER ST SC SN CL CH DH - -- -- -- -- -- -- -- - 40 51 02 be a7 02 e0 Error: UNC 2 sectors at LBA = 0x0002a7be = 174014 - - Commands leading to the command that caused the error were: - CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name - -- -- -- -- -- -- -- -- ---------------- -------------------- - 25 00 1e a2 a7 02 e0 00 23d+03:19:10.400 READ DMA EXT - 25 00 20 a0 a7 02 e0 00 23d+03:19:02.200 READ DMA EXT - 25 00 22 9e a7 02 e0 00 23d+03:18:57.400 READ DMA EXT - 25 00 24 9c a7 02 e0 00 23d+03:18:52.400 READ DMA EXT - 25 00 26 9a a7 02 e0 00 23d+03:18:40.200 READ DMA EXT - -Error 158 occurred at disk power-on lifetime: 2752 hours (114 days + 16 hours) - When the command that caused the error occurred, the device was active or idle. - - After command completion occurred, registers were: - ER ST SC SN CL CH DH - -- -- -- -- -- -- -- - 40 51 02 be a7 02 e0 Error: UNC 2 sectors at LBA = 0x0002a7be = 174014 - - Commands leading to the command that caused the error were: - CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name - -- -- -- -- -- -- -- -- ---------------- -------------------- - 25 00 20 a0 a7 02 e0 00 23d+03:19:02.200 READ DMA EXT - 25 00 22 9e a7 02 e0 00 23d+03:18:57.400 READ DMA EXT - 25 00 24 9c a7 02 e0 00 23d+03:18:52.400 READ DMA EXT - 25 00 26 9a a7 02 e0 00 23d+03:18:40.200 READ DMA EXT - 25 00 28 98 a7 02 e0 00 23d+03:18:32.100 READ DMA EXT - -Error 157 occurred at disk power-on lifetime: 2752 hours (114 days + 16 hours) - When the command that caused the error occurred, the device was active or idle. - - After command completion occurred, registers were: - ER ST SC SN CL CH DH - -- -- -- -- -- -- -- - 40 51 03 bd a7 02 e0 Error: UNC 3 sectors at LBA = 0x0002a7bd = 174013 - - Commands leading to the command that caused the error were: - CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name - -- -- -- -- -- -- -- -- ---------------- -------------------- - 25 00 22 9e a7 02 e0 00 23d+03:18:57.400 READ DMA EXT - 25 00 24 9c a7 02 e0 00 23d+03:18:52.400 READ DMA EXT - 25 00 26 9a a7 02 e0 00 23d+03:18:40.200 READ DMA EXT - 25 00 28 98 a7 02 e0 00 23d+03:18:32.100 READ DMA EXT - 25 00 2a 96 a7 02 e0 00 23d+03:18:26.400 READ DMA EXT - -SMART Self-test log structure revision number 1 -Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error -# 1 Extended offline Completed: read failure 90% 2692 173893 -# 2 Short offline Completed: read failure 10% 2654 173911 -# 3 Extended offline Completed: read failure 90% 2524 174132 -# 4 Extended offline Completed without error 00% 2358 - -# 5 Extended offline Completed without error 00% 2192 - -# 6 Extended offline Completed without error 00% 2023 - -# 7 Extended offline Completed without error 00% 1857 - -# 8 Extended offline Completed without error 00% 1689 - -# 9 Extended offline Completed without error 00% 1521 - -#10 Extended offline Completed without error 00% 1355 - -#11 Extended offline Completed without error 00% 1187 - -#12 Extended offline Completed without error 00% 1020 - -#13 Extended offline Completed without error 00% 854 - -#14 Extended offline Completed without error 00% 685 - -#15 Extended offline Completed without error 00% 517 - -#16 Extended offline Completed without error 00% 349 - -#17 Extended offline Completed without error 00% 181 - -#18 Extended offline Completed without error 00% 13 - -#19 Extended offline Completed without error 00% 4 - - -Device does not support Selective Self Tests/Logging diff --git a/www/examples/IC35L120AVVA07-0-0.txt b/www/examples/IC35L120AVVA07-0-0.txt deleted file mode 100644 index 57926ccfb..000000000 --- a/www/examples/IC35L120AVVA07-0-0.txt +++ /dev/null @@ -1,69 +0,0 @@ -smartctl version 5.0-24 Copyright (C) 2002 Bruce Allen -Home page is http://smartmontools.sourceforge.net/ - -=== START OF INFORMATION SECTION === -Device Model: IC35L120AVVA07-0 -Serial Number: VNC605A6GG8W8A -Firmware Version: VA6OA52A -ATA Version is: 5 -ATA Standard is: ATA/ATAPI-5 T13 1321D revision 1 -SMART support is: Available - device has SMART capability. -SMART support is: Enabled - -=== START OF READ SMART DATA SECTION === -SMART overall-health self-assessment test result: PASSED - -General SMART Values: -Off-line data collection status: (0x00) Offline data collection activity was - never started. -Self-test execution status: ( 0) The previous self-test routine completed - without error or no self-test has ever - been run. -Total time to complete off-line -data collection: (3399) seconds. -Offline data collection -capabilities: (0x1b) SMART execute Offline immediate. - Automatic timer ON/OFF support. - Suspend Offline collection upon new - command. - Offline surface scan supported. - Self-test supported. -SMART capabilities: (0x0003) Saves SMART data before entering - power-saving mode. - Supports SMART auto save timer. -Error logging capability: (0x01) Error logging supported. -Short self-test routine -recommended polling time: ( 1) minutes. -Extended self-test routine -recommended polling time: ( 57) minutes. - -SMART Attributes Data Structure revision number: 16 -Vendor Specific SMART Attributes with Thresholds: -ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE WHEN_FAILED RAW_VALUE - 1 Raw_Read_Error_Rate 0x000b 100 100 060 Pre-fail - 0 - 2 Throughput_Performance 0x0005 147 147 050 Pre-fail - 266 - 3 Spin_Up_Time 0x0007 093 093 024 Pre-fail - 23593335 - 4 Start_Stop_Count 0x0012 100 100 000 Old_age - 13 - 5 Reallocated_Sector_Ct 0x0033 100 100 005 Pre-fail - 0 - 7 Seek_Error_Rate 0x000b 100 100 067 Pre-fail - 0 - 8 Seek_Time_Performance 0x0005 138 138 020 Pre-fail - 30 - 9 Power_On_Hours 0x0012 100 100 000 Old_age - 554 - 10 Spin_Retry_Count 0x0013 100 100 060 Pre-fail - 0 - 12 Power_Cycle_Count 0x0032 100 100 000 Old_age - 13 -192 Power-Off_Retract_Count 0x0032 100 100 050 Old_age - 36 -193 Load_Cycle_Count 0x0012 100 100 050 Old_age - 36 -194 Temperature_Centigrade 0x0002 183 183 000 Old_age - 30 (Lifetime Min/Max 23/39) -196 Reallocated_Event_Count 0x0032 100 100 000 Old_age - 0 -197 Current_Pending_Sector 0x0022 100 100 000 Old_age - 0 -198 Offline_Uncorrectable 0x0008 100 100 000 Old_age - 0 -199 UDMA_CRC_Error_Count 0x000a 200 200 000 Old_age - 0 - -SMART Error Log Version: 1 -No Errors Logged - -SMART Self-test log, version number 1 -Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error -# 1 Extended off-line Completed 00% 492 -# 2 Short off-line Completed 00% 296 -# 3 Extended off-line Completed 00% 169 -# 4 Short off-line Completed 00% 168 diff --git a/www/examples/IC35L120AVVA07-0-1.txt b/www/examples/IC35L120AVVA07-0-1.txt deleted file mode 100644 index 992a620ce..000000000 --- a/www/examples/IC35L120AVVA07-0-1.txt +++ /dev/null @@ -1,67 +0,0 @@ -smartctl version 5.0-24 Copyright (C) 2002 Bruce Allen -Home page is http://smartmontools.sourceforge.net/ - -=== START OF INFORMATION SECTION === -Device Model: IC35L120AVVA07-0 -Serial Number: VNC605A6GEWZDA -Firmware Version: VA6OA52A -ATA Version is: 5 -ATA Standard is: ATA/ATAPI-5 T13 1321D revision 1 -SMART support is: Available - device has SMART capability. -SMART support is: Enabled - -=== START OF READ SMART DATA SECTION === -SMART overall-health self-assessment test result: PASSED - -General SMART Values: -Off-line data collection status: (0x00) Offline data collection activity was - never started. -Self-test execution status: ( 0) The previous self-test routine completed - without error or no self-test has ever - been run. -Total time to complete off-line -data collection: (3399) seconds. -Offline data collection -capabilities: (0x1b) SMART execute Offline immediate. - Automatic timer ON/OFF support. - Suspend Offline collection upon new - command. - Offline surface scan supported. - Self-test supported. -SMART capabilities: (0x0003) Saves SMART data before entering - power-saving mode. - Supports SMART auto save timer. -Error logging capability: (0x01) Error logging supported. -Short self-test routine -recommended polling time: ( 1) minutes. -Extended self-test routine -recommended polling time: ( 57) minutes. - -SMART Attributes Data Structure revision number: 16 -Vendor Specific SMART Attributes with Thresholds: -ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE WHEN_FAILED RAW_VALUE - 1 Raw_Read_Error_Rate 0x000b 100 100 060 Pre-fail - 0 - 2 Throughput_Performance 0x0005 100 100 050 Pre-fail - 0 - 3 Spin_Up_Time 0x0007 098 098 024 Pre-fail - 22348126 - 4 Start_Stop_Count 0x0012 100 100 000 Old_age - 13 - 5 Reallocated_Sector_Ct 0x0033 100 100 005 Pre-fail - 0 - 7 Seek_Error_Rate 0x000b 100 100 067 Pre-fail - 0 - 8 Seek_Time_Performance 0x0005 100 100 020 Pre-fail - 0 - 9 Power_On_Hours 0x0012 100 100 000 Old_age - 554 - 10 Spin_Retry_Count 0x0013 100 100 060 Pre-fail - 0 - 12 Power_Cycle_Count 0x0032 100 100 000 Old_age - 13 -192 Power-Off_Retract_Count 0x0032 100 100 050 Old_age - 36 -193 Load_Cycle_Count 0x0012 100 100 050 Old_age - 36 -194 Temperature_Centigrade 0x0002 189 189 000 Old_age - 29 (Lifetime Min/Max 23/36) -196 Reallocated_Event_Count 0x0032 100 100 000 Old_age - 0 -197 Current_Pending_Sector 0x0022 100 100 000 Old_age - 0 -198 Offline_Uncorrectable 0x0008 100 100 000 Old_age - 0 -199 UDMA_CRC_Error_Count 0x000a 200 200 000 Old_age - 0 - -SMART Error Log Version: 1 -No Errors Logged - -SMART Self-test log, version number 1 -Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error -# 1 Extended off-line Completed 00% 492 -# 2 Extended off-line Completed 00% 169 diff --git a/www/examples/MAXTOR-0.txt b/www/examples/MAXTOR-0.txt deleted file mode 100644 index 13e0eb28e..000000000 --- a/www/examples/MAXTOR-0.txt +++ /dev/null @@ -1,139 +0,0 @@ -smartctl version 5.0-24 Copyright (C) 2002 Bruce Allen -Home page is http://smartmontools.sourceforge.net/ - -=== START OF INFORMATION SECTION === -Device Model: MAXTOR 4K080H4 -Serial Number: 674205306226 -Firmware Version: A08.1500 -ATA Version is: 5 -ATA Standard is: ATA/ATAPI-5 T13 1321D revision 1 -SMART support is: Available - device has SMART capability. -SMART support is: Enabled - -=== START OF READ SMART DATA SECTION === -SMART overall-health self-assessment test result: PASSED - -General SMART Values: -Off-line data collection status: (0x02) Offline data collection activity - completed without error. -Self-test execution status: ( 112) The previous self-test completed having - the read element of the test failed. -Total time to complete off-line -data collection: ( 44) seconds. -Offline data collection -capabilities: (0x1b) SMART execute Offline immediate. - Automatic timer ON/OFF support. - Suspend Offline collection upon new - command. - Offline surface scan supported. - Self-test supported. -SMART capabilities: (0x0003) Saves SMART data before entering - power-saving mode. - Supports SMART auto save timer. -Error logging capability: (0x01) Error logging supported. -Short self-test routine -recommended polling time: ( 2) minutes. -Extended self-test routine -recommended polling time: ( 50) minutes. - -SMART Attributes Data Structure revision number: 11 -Vendor Specific SMART Attributes with Thresholds: -ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE WHEN_FAILED RAW_VALUE - 1 Raw_Read_Error_Rate 0x0029 100 253 020 Pre-fail - 0 - 3 Spin_Up_Time 0x0027 077 077 020 Pre-fail - 2909 - 4 Start_Stop_Count 0x0032 100 100 008 Old_age - 29 - 5 Reallocated_Sector_Ct 0x0033 100 100 020 Pre-fail - 1 - 7 Seek_Error_Rate 0x000b 100 100 023 Pre-fail - 0 - 9 Power_On_Hours 0x0012 097 097 001 Old_age - 1992 - 10 Spin_Retry_Count 0x0026 100 100 000 Old_age - 0 - 11 Calibration_Retry_Count 0x0013 100 100 020 Pre-fail - 0 - 12 Power_Cycle_Count 0x0032 100 100 008 Old_age - 29 - 13 Read_Soft_Error_Rate 0x000b 100 100 023 Pre-fail - 0 -194 Temperature_Centigrade 0x0022 093 090 042 Old_age - 19 -195 Hardware_ECC_Recovered 0x001a 100 006 000 Old_age - 7683906 -196 Reallocated_Event_Count 0x0010 099 099 020 Old_age - 1 -197 Current_Pending_Sector 0x0032 100 100 020 Old_age - 1 -198 Offline_Uncorrectable 0x0010 100 100 000 Old_age - 0 -199 UDMA_CRC_Error_Count 0x001a 198 198 000 Old_age - 2 - -SMART Error Log Version: 1 -ATA Error Count: 11 (device log contains only the most recent five errors) - DCR = Device Control Register - FR = Features Register - SC = Sector Count Register - SN = Sector Number Register - CL = Cylinder Low Register - CH = Cylinder High Register - D/H = Device/Head Register - CR = Content written to Command Register - ER = Error register - STA = Status register -Timestamp is seconds since the previous disk power-on. -Note: timestamp "wraps" after 2^32 msec = 49.710 days. - -Error 1 occurred at disk power-on lifetime: 1029 hours -When the command that caused the error occurred, the device was in an unknown state. -After command completion occurred, registers were: -ER:40 SC:02 SN:41 CL:2d CH:70 D/H:e8 ST:d1 -Sequence of commands leading to the command that caused the error were: -DCR FR SC SN CL CH D/H CR Timestamp - 70 08 02 41 2d 70 e8 c4 90.713 - 70 08 04 3f 2d 70 e8 c4 86.648 - 70 08 06 3d 2d 70 e8 c4 82.584 - 70 08 08 3b 2d 70 e8 c4 78.342 - 28 08 04 8b 2c 28 e8 c5 78.341 - -Error 2 occurred at disk power-on lifetime: 1029 hours -When the command that caused the error occurred, the device was in an unknown state. -After command completion occurred, registers were: -ER:40 SC:04 SN:3f CL:2d CH:70 D/H:e8 ST:d1 -Sequence of commands leading to the command that caused the error were: -DCR FR SC SN CL CH D/H CR Timestamp - 70 08 04 3f 2d 70 e8 c4 86.648 - 70 08 06 3d 2d 70 e8 c4 82.584 - 70 08 08 3b 2d 70 e8 c4 78.342 - 28 08 04 8b 2c 28 e8 c5 78.341 - 28 08 08 4b 2c 28 e8 c5 78.339 - -Error 3 occurred at disk power-on lifetime: 1029 hours -When the command that caused the error occurred, the device was in an unknown state. -After command completion occurred, registers were: -ER:40 SC:06 SN:3d CL:2d CH:70 D/H:e8 ST:d1 -Sequence of commands leading to the command that caused the error were: -DCR FR SC SN CL CH D/H CR Timestamp - 70 08 06 3d 2d 70 e8 c4 82.584 - 70 08 08 3b 2d 70 e8 c4 78.342 - 28 08 04 8b 2c 28 e8 c5 78.341 - 28 08 08 4b 2c 28 e8 c5 78.339 - 28 08 08 0b 2c 28 e8 c5 78.338 - -Error 4 occurred at disk power-on lifetime: 1029 hours -When the command that caused the error occurred, the device was in an unknown state. -After command completion occurred, registers were: -ER:40 SC:08 SN:3b CL:2d CH:70 D/H:e8 ST:d1 -Sequence of commands leading to the command that caused the error were: -DCR FR SC SN CL CH D/H CR Timestamp - 70 08 08 3b 2d 70 e8 c4 78.342 - 28 08 04 8b 2c 28 e8 c5 78.341 - 28 08 08 4b 2c 28 e8 c5 78.339 - 28 08 08 0b 2c 28 e8 c5 78.338 - 28 08 08 cb 2b 28 e8 c5 78.337 - -Error 5 occurred at disk power-on lifetime: 1029 hours -When the command that caused the error occurred, the device was in an unknown state. -After command completion occurred, registers were: -ER:40 SC:66 SN:41 CL:2d CH:70 D/H:e8 ST:d1 -Sequence of commands leading to the command that caused the error were: -DCR FR SC SN CL CH D/H CR Timestamp - 70 08 66 41 2d 70 e8 c4 69.020 - 70 08 68 3f 2d 70 e8 c4 64.956 - 70 08 6a 3d 2d 70 e8 c4 60.891 - 70 08 6c 3b 2d 70 e8 c4 56.826 - 70 08 fe a9 2c 70 e8 c4 52.713 - -SMART Self-test log, version number 1 -Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error -# 1 Extended off-line Completed: read failure 90% 1965 0x08702f11 -# 2 Short off-line Completed 00% 1800 -# 3 Short off-line Completed 00% 1778 -# 4 Short off-line Completed 00% 1777 diff --git a/www/examples/MAXTOR-1.txt b/www/examples/MAXTOR-1.txt deleted file mode 100644 index b1ed8ace3..000000000 --- a/www/examples/MAXTOR-1.txt +++ /dev/null @@ -1,143 +0,0 @@ -smartctl version 5.0-24 Copyright (C) 2002 Bruce Allen -Home page is http://smartmontools.sourceforge.net/ - -=== START OF INFORMATION SECTION === -Device Model: MAXTOR 4K080H4 -Serial Number: 674119123435 -Firmware Version: A08.1500 -ATA Version is: 5 -ATA Standard is: ATA/ATAPI-5 T13 1321D revision 1 -SMART support is: Available - device has SMART capability. -SMART support is: Enabled - -=== START OF READ SMART DATA SECTION === -SMART overall-health self-assessment test result: FAILED! -Drive failure expected in less than 24 hours. SAVE ALL DATA. -See vendor-specific Attribute list for failed Attributes. - -General SMART Values: -Off-line data collection status: (0x04) Offline data collection activity was - suspended by an interrupting command from host. -Self-test execution status: ( 89) The previous self-test completed having - the electrical element of the test - failed. -Total time to complete off-line -data collection: (2536) seconds. -Offline data collection -capabilities: (0x1b) SMART execute Offline immediate. - Automatic timer ON/OFF support. - Suspend Offline collection upon new - command. - Offline surface scan supported. - Self-test supported. -SMART capabilities: (0x0003) Saves SMART data before entering - power-saving mode. - Supports SMART auto save timer. -Error logging capability: (0x01) Error logging supported. -Short self-test routine -recommended polling time: ( 2) minutes. -Extended self-test routine -recommended polling time: ( 50) minutes. - -SMART Attributes Data Structure revision number: 11 -Vendor Specific SMART Attributes with Thresholds: -ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE WHEN_FAILED RAW_VALUE - 1 Raw_Read_Error_Rate 0x0029 100 253 020 Pre-fail - 0 - 3 Spin_Up_Time 0x0027 074 074 020 Pre-fail - 3294 - 4 Start_Stop_Count 0x0032 100 100 008 Old_age - 32 - 5 Reallocated_Sector_Ct 0x0033 001 001 020 Pre-fail FAILING_NOW 499 - 7 Seek_Error_Rate 0x000b 100 001 023 Pre-fail In_the_past 0 - 9 Power_On_Hours 0x0012 086 086 001 Old_age - 9812 - 10 Spin_Retry_Count 0x0026 100 100 000 Old_age - 0 - 11 Calibration_Retry_Count 0x0013 100 100 020 Pre-fail - 0 - 12 Power_Cycle_Count 0x0032 100 100 008 Old_age - 32 - 13 Read_Soft_Error_Rate 0x000b 100 001 023 Pre-fail In_the_past 0 -194 Temperature_Centigrade 0x0022 091 086 042 Old_age - 24 -195 Hardware_ECC_Recovered 0x001a 006 004 000 Old_age - 417912090 -196 Reallocated_Event_Count 0x0010 100 100 020 Old_age - 0 -197 Current_Pending_Sector 0x0032 033 032 020 Old_age - 338 -198 Offline_Uncorrectable 0x0010 100 100 000 Old_age - 0 -199 UDMA_CRC_Error_Count 0x001a 200 200 000 Old_age - 0 - -SMART Error Log Version: 1 -ATA Error Count: 20255 (device log contains only the most recent five errors) - DCR = Device Control Register - FR = Features Register - SC = Sector Count Register - SN = Sector Number Register - CL = Cylinder Low Register - CH = Cylinder High Register - D/H = Device/Head Register - CR = Content written to Command Register - ER = Error register - STA = Status register -Timestamp is seconds since the previous disk power-on. -Note: timestamp "wraps" after 2^32 msec = 49.710 days. - -Error 1 occurred at disk power-on lifetime: 9574 hours -When the command that caused the error occurred, the device was in a vendor specific or reserved state. -After command completion occurred, registers were: -ER:40 SC:60 SN:b8 CL:c6 CH:02 D/H:e5 ST:d1 -Sequence of commands leading to the command that caused the error were: -DCR FR SC SN CL CH D/H CR Timestamp - 02 05 60 b8 c6 02 e5 c4 474.857 - 02 05 f8 20 c6 02 e5 c4 470.748 - 02 05 08 18 c6 02 e5 c4 470.746 - 00 00 f8 20 c5 02 e5 c4 470.732 - 00 00 08 18 c5 02 e5 c4 470.730 - -Error 2 occurred at disk power-on lifetime: 9574 hours -When the command that caused the error occurred, the device was in a vendor specific or reserved state. -After command completion occurred, registers were: -ER:40 SC:68 SN:b0 CL:c6 CH:02 D/H:e5 ST:d1 -Sequence of commands leading to the command that caused the error were: -DCR FR SC SN CL CH D/H CR Timestamp - 02 05 f8 20 c6 02 e5 c4 470.748 - 02 05 08 18 c6 02 e5 c4 470.746 - 00 00 f8 20 c5 02 e5 c4 470.732 - 00 00 08 18 c5 02 e5 c4 470.730 - 02 05 f8 20 c4 02 e5 c4 470.717 - -Error 3 occurred at disk power-on lifetime: 9574 hours -When the command that caused the error occurred, the device was in a vendor specific or reserved state. -After command completion occurred, registers were: -ER:40 SC:08 SN:c0 CL:3e CH:0e D/H:e5 ST:d1 -Sequence of commands leading to the command that caused the error were: -DCR FR SC SN CL CH D/H CR Timestamp - 0e 05 08 c0 3e 0e e5 c4 181.677 - d0 04 08 b0 67 d0 e4 c5 181.651 - 0e 05 08 a0 45 0e e5 c4 181.646 - 0e 05 80 20 43 0e e5 c4 181.635 - 0e 05 80 20 41 0e e5 c4 181.622 - -Error 4 occurred at disk power-on lifetime: 9574 hours -When the command that caused the error occurred, the device was in a vendor specific or reserved state. -After command completion occurred, registers were: -ER:40 SC:60 SN:c0 CL:3e CH:0e D/H:e5 ST:d1 -Sequence of commands leading to the command that caused the error were: -DCR FR SC SN CL CH D/H CR Timestamp - 0e 05 80 a0 3e 0e e5 c4 172.530 - 0e 05 80 20 3d 0e e5 c4 172.335 - 0e 05 80 20 3c 0e e5 c4 164.744 - 0e 05 10 10 3b 0e e5 c4 164.736 - 0e 05 f8 18 3a 0e e5 c4 157.202 - -Error 5 occurred at disk power-on lifetime: 9574 hours -When the command that caused the error occurred, the device was in a vendor specific or reserved state. -After command completion occurred, registers were: -ER:40 SC:c0 SN:18 CL:04 CH:d3 D/H:e4 ST:d1 -Sequence of commands leading to the command that caused the error were: -DCR FR SC SN CL CH D/H CR Timestamp - d3 04 c0 18 04 d3 e4 c4 502.837 - d3 04 f8 e0 03 d3 e4 c4 498.739 - d3 04 f8 e8 02 d3 e4 c4 498.716 - 55 01 c8 90 70 55 e1 c4 498.705 - 55 01 38 48 70 55 e1 c4 498.680 - -SMART Self-test log, version number 1 -Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error -# 1 Short off-line Completed: electrical failure 90% 9786 -# 2 Extended captive Completed: servo/seek failure 90% 9676 0x04b7ed3d -# 3 Extended captive Completed 00% 9575 -# 4 Extended off-line Completed 00% 9432 -# 5 Extended off-line Completed 00% 9415 diff --git a/www/examples/MAXTOR-10.txt b/www/examples/MAXTOR-10.txt deleted file mode 100644 index adb8beb9e..000000000 --- a/www/examples/MAXTOR-10.txt +++ /dev/null @@ -1,188 +0,0 @@ -smartctl version 5.22 Copyright (C) 2002-3 Bruce Allen -Home page is http://smartmontools.sourceforge.net/ - -=== START OF INFORMATION SECTION === -Device Model: MAXTOR 4K080H4 -Serial Number: 674119014987 -Firmware Version: A08.1500 -Device is: In smartctl database [for details use: -P show] -ATA Version is: 5 -ATA Standard is: ATA/ATAPI-5 T13 1321D revision 1 -Local Time is: Mon Oct 27 14:30:17 2003 CST -SMART support is: Available - device has SMART capability. -SMART support is: Enabled - -=== START OF READ SMART DATA SECTION === -SMART overall-health self-assessment test result: PASSED - -General SMART Values: -Offline data collection status: (0x80) Offline data collection activity was - never started. - Auto Offline Data Collection: Enabled. -Self-test execution status: ( 112) The previous self-test completed having - the read element of the test failed. -Total time to complete Offline -data collection: ( 44) seconds. -Offline data collection -capabilities: (0x1b) SMART execute Offline immediate. - Auto Offline data collection on/off support. - Suspend Offline collection upon new - command. - Offline surface scan supported. - Self-test supported. - No Conveyance Self-test supported. - No Selective Self-test supported. -SMART capabilities: (0x0003) Saves SMART data before entering - power-saving mode. - Supports SMART auto save timer. -Error logging capability: (0x01) Error logging supported. - No General Purpose Logging support. -Short self-test routine -recommended polling time: ( 2) minutes. -Extended self-test routine -recommended polling time: ( 50) minutes. - -SMART Attributes Data Structure revision number: 11 -Vendor Specific SMART Attributes with Thresholds: -ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE - 1 Raw_Read_Error_Rate 0x0029 100 253 020 Pre-fail Offline - 0 - 3 Spin_Up_Time 0x0027 075 074 020 Pre-fail Always - 3135 - 4 Start_Stop_Count 0x0032 100 100 008 Old_age Always - 54 - 5 Reallocated_Sector_Ct 0x0033 098 097 020 Pre-fail Always - 14 - 7 Seek_Error_Rate 0x000b 100 100 023 Pre-fail Always - 0 - 9 Power_On_Hours 0x0012 072 072 001 Old_age Always - 18875 - 10 Spin_Retry_Count 0x0026 100 100 000 Old_age Always - 0 - 11 Calibration_Retry_Count 0x0013 100 100 020 Pre-fail Always - 0 - 12 Power_Cycle_Count 0x0032 100 100 008 Old_age Always - 53 - 13 Read_Soft_Error_Rate 0x000b 100 085 023 Pre-fail Always - 0 -194 Temperature_Celsius 0x0022 093 088 042 Old_age Always - 20 -195 Hardware_ECC_Recovered 0x001a 028 002 000 Old_age Always - 1472864733 -196 Reallocated_Event_Count 0x0010 100 099 020 Old_age Offline - 0 -197 Current_Pending_Sector 0x0032 100 100 020 Old_age Always - 2 -198 Offline_Uncorrectable 0x0010 100 100 000 Old_age Offline - 0 -199 UDMA_CRC_Error_Count 0x001a 200 200 000 Old_age Always - 0 - -SMART Error Log Version: 1 -ATA Error Count: 28 (device log contains only the most recent five errors) - CR = Command Register [HEX] - FR = Features Register [HEX] - SC = Sector Count Register [HEX] - SN = Sector Number Register [HEX] - CL = Cylinder Low Register [HEX] - CH = Cylinder High Register [HEX] - DH = Device/Head Register [HEX] - DC = Device Command Register [HEX] - ER = Error register [HEX] - ST = Status register [HEX] -Timestamp = decimal seconds since the previous disk power-on. -Note: timestamp "wraps" after 2^32 msec = 49.710 days. - -Error 28 occurred at disk power-on lifetime: 18785 hours - When the command that caused the error occurred, the device was in an unknown state. - - After command completion occurred, registers were: - ER ST SC SN CL CH DH - -- -- -- -- -- -- -- - 40 d1 38 ce 8f 40 e0 Error: UNC - - Commands leading to the command that caused the error were: - CR FR SC SN CL CH DH DC Timestamp Command/Feature_Name - -- -- -- -- -- -- -- -- --------- -------------------- - c8 00 38 ce 8f 40 e0 40 315.769 READ DMA - c8 00 40 c6 8f 40 e0 40 311.634 READ DMA - b0 00 01 01 4f c2 e0 1f 284.485 [Reserved SMART command] - b0 00 01 06 4f c2 e0 34 284.470 [Reserved SMART command] - b0 00 01 00 4f c2 e0 34 284.399 [Reserved SMART command] - -Error 27 occurred at disk power-on lifetime: 18785 hours - When the command that caused the error occurred, the device was in an unknown state. - - After command completion occurred, registers were: - ER ST SC SN CL CH DH - -- -- -- -- -- -- -- - 40 59 38 ce 8f 40 e0 Error: UNC - - Commands leading to the command that caused the error were: - CR FR SC SN CL CH DH DC Timestamp Command/Feature_Name - -- -- -- -- -- -- -- -- --------- -------------------- - c8 00 40 c6 8f 40 e0 40 311.634 READ DMA - b0 00 01 01 4f c2 e0 1f 284.485 [Reserved SMART command] - b0 00 01 06 4f c2 e0 34 284.470 [Reserved SMART command] - b0 00 01 00 4f c2 e0 34 284.399 [Reserved SMART command] - b0 00 00 00 4f c2 00 34 284.328 [Reserved SMART command] - -Error 26 occurred at disk power-on lifetime: 18744 hours - When the command that caused the error occurred, the device was in an unknown state. - - After command completion occurred, registers were: - ER ST SC SN CL CH DH - -- -- -- -- -- -- -- - 40 d1 08 bf 00 30 e0 Error: UNC - - Commands leading to the command that caused the error were: - CR FR SC SN CL CH DH DC Timestamp Command/Feature_Name - -- -- -- -- -- -- -- -- --------- -------------------- - c8 00 08 bf 00 30 e0 30 134.258 READ DMA - c8 00 08 cf 3d 34 e0 34 134.247 READ DMA - c8 00 08 af 00 34 e0 34 134.215 READ DMA - c8 00 28 6f 3e 28 e0 28 134.213 READ DMA - c8 00 08 67 3e 28 e0 28 134.201 READ DMA - -Error 25 occurred at disk power-on lifetime: 18619 hours - When the command that caused the error occurred, the device was in an unknown state. - - After command completion occurred, registers were: - ER ST SC SN CL CH DH - -- -- -- -- -- -- -- - 40 59 07 89 67 10 e3 Error: UNC - - Commands leading to the command that caused the error were: - CR FR SC SN CL CH DH DC Timestamp Command/Feature_Name - -- -- -- -- -- -- -- -- --------- -------------------- - c8 03 08 88 67 10 e3 10 54.493 READ DMA - c8 03 08 88 69 08 e3 08 54.483 READ DMA - c8 03 08 88 67 08 e3 08 54.471 READ DMA - c8 02 08 88 69 ec e2 ec 54.464 READ DMA - c8 02 08 88 67 ec e2 ec 54.439 READ DMA - -Error 24 occurred at disk power-on lifetime: 18619 hours - When the command that caused the error occurred, the device was in an unknown state. - - After command completion occurred, registers were: - ER ST SC SN CL CH DH - -- -- -- -- -- -- -- - 40 59 06 8a 67 0c e2 Error: UNC - - Commands leading to the command that caused the error were: - CR FR SC SN CL CH DH DC Timestamp Command/Feature_Name - -- -- -- -- -- -- -- -- --------- -------------------- - c8 02 08 88 67 0c e2 0c 49.281 READ DMA - c8 02 08 88 69 08 e2 08 49.270 READ DMA - c8 02 08 88 69 04 e2 04 49.259 READ DMA - c8 02 08 88 69 00 e2 00 49.257 READ DMA - c8 02 08 50 5c 00 e2 00 49.254 READ DMA - -SMART Self-test log structure revision number 1 -Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error -# 1 Extended offline Completed: read failure 80% 18841 0x001f807f -# 2 Extended offline Completed: read failure 80% 18673 0x020c678a -# 3 Extended offline Completed: read failure 80% 18505 0x020c678a -# 4 Extended offline Completed: read failure 80% 18338 0x020c678a -# 5 Extended offline Completed: read failure 90% 18229 0x00408f96 -# 6 Extended offline Completed: read failure 80% 18171 0x02386789 -# 7 Extended offline Completed without error 00% 18051 - -# 8 Short offline Completed without error 00% 18051 - -# 9 Extended offline Completed without error 00% 18003 - -#10 Extended offline Completed without error 00% 17836 - -#11 Extended offline Completed without error 00% 17668 - -#12 Extended offline Completed without error 00% 17501 - -#13 Extended offline Completed without error 00% 17334 - -#14 Extended offline Completed without error 00% 17166 - -#15 Extended offline Completed without error 00% 16999 - -#16 Extended offline Completed without error 00% 16831 - -#17 Extended offline Completed without error 00% 16664 - -#18 Extended offline Completed without error 00% 16603 - -#19 Extended offline Completed without error 00% 16497 - -#20 Extended offline Completed without error 00% 16329 - -#21 Extended offline Completed without error 00% 16163 - - diff --git a/www/examples/MAXTOR-2.txt b/www/examples/MAXTOR-2.txt deleted file mode 100644 index 9ff60ffcb..000000000 --- a/www/examples/MAXTOR-2.txt +++ /dev/null @@ -1,79 +0,0 @@ -smartctl version 5.0-24 Copyright (C) 2002 Bruce Allen -Home page is http://smartmontools.sourceforge.net/ - -=== START OF INFORMATION SECTION === -Device Model: MAXTOR 4K080H4 -Serial Number: 674119113862 -Firmware Version: A08.1500 -ATA Version is: 5 -ATA Standard is: ATA/ATAPI-5 T13 1321D revision 1 -SMART support is: Available - device has SMART capability. -SMART support is: Enabled - -=== START OF READ SMART DATA SECTION === -SMART overall-health self-assessment test result: PASSED -See vendor-specific Attribute list for marginal Attributes. - -General SMART Values: -Off-line data collection status: (0x05) Offline data collection activity was - aborted by an interrupting command from host. -Self-test execution status: ( 0) The previous self-test routine completed - without error or no self-test has ever - been run. -Total time to complete off-line -data collection: ( 44) seconds. -Offline data collection -capabilities: (0x1b) SMART execute Offline immediate. - Automatic timer ON/OFF support. - Suspend Offline collection upon new - command. - Offline surface scan supported. - Self-test supported. -SMART capabilities: (0x0003) Saves SMART data before entering - power-saving mode. - Supports SMART auto save timer. -Error logging capability: (0x01) Error logging supported. -Short self-test routine -recommended polling time: ( 2) minutes. -Extended self-test routine -recommended polling time: ( 50) minutes. - -SMART Attributes Data Structure revision number: 11 -Vendor Specific SMART Attributes with Thresholds: -ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE WHEN_FAILED RAW_VALUE - 1 Raw_Read_Error_Rate 0x0029 100 253 020 Pre-fail - 0 - 3 Spin_Up_Time 0x0027 075 075 020 Pre-fail - 3249 - 4 Start_Stop_Count 0x0032 100 100 008 Old_age - 31 - 5 Reallocated_Sector_Ct 0x0033 100 100 020 Pre-fail - 0 - 7 Seek_Error_Rate 0x000b 100 001 023 Pre-fail In_the_past 0 - 9 Power_On_Hours 0x0012 086 086 001 Old_age - 9754 - 10 Spin_Retry_Count 0x0026 100 100 000 Old_age - 0 - 11 Calibration_Retry_Count 0x0013 100 100 020 Pre-fail - 0 - 12 Power_Cycle_Count 0x0032 100 100 008 Old_age - 31 - 13 Read_Soft_Error_Rate 0x000b 100 100 023 Pre-fail - 0 -194 Temperature_Centigrade 0x0022 035 032 042 Old_age FAILING_NOW 168 -195 Hardware_ECC_Recovered 0x001a 100 002 000 Old_age - 880099716 -196 Reallocated_Event_Count 0x0010 100 100 020 Old_age - 0 -197 Current_Pending_Sector 0x0032 100 100 020 Old_age - 0 -198 Offline_Uncorrectable 0x0010 100 253 000 Old_age - 0 -199 UDMA_CRC_Error_Count 0x001a 200 200 000 Old_age - 0 - -SMART Error Log Version: 1 -No Errors Logged - -SMART Self-test log, version number 1 -Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error -# 1 Short off-line Completed 00% 9691 -# 2 Short captive Completed 00% 9691 -# 3 Extended captive Completed 00% 9618 -# 4 Extended captive Interrupted (host reset) 90% 9563 -# 5 Short captive Completed 00% 9563 -# 6 Short off-line Completed 00% 9563 -# 7 Short captive Completed 00% 9545 -# 8 Extended off-line Completed 00% 9541 -# 9 Short captive Completed 00% 9541 -#10 Extended off-line Completed 00% 9537 -#11 Extended off-line Completed 00% 9536 -#12 Extended off-line Interrupted (host reset) 90% 9534 -#13 Extended off-line Completed 00% 9517 -#14 Extended off-line Completed 00% 9484 diff --git a/www/examples/MAXTOR-3.txt b/www/examples/MAXTOR-3.txt deleted file mode 100644 index 26df69e59..000000000 --- a/www/examples/MAXTOR-3.txt +++ /dev/null @@ -1,67 +0,0 @@ -smartctl version 5.0-24 Copyright (C) 2002 Bruce Allen -Home page is http://smartmontools.sourceforge.net/ - -=== START OF INFORMATION SECTION === -Device Model: MAXTOR 6L080J4 -Serial Number: 664201100034 -Firmware Version: A93.0500 -ATA Version is: 5 -ATA Standard is: ATA/ATAPI-5 T13 1321D revision 1 -SMART support is: Available - device has SMART capability. -SMART support is: Enabled - -=== START OF READ SMART DATA SECTION === -SMART overall-health self-assessment test result: PASSED - -General SMART Values: -Off-line data collection status: (0x00) Offline data collection activity was - never started. -Self-test execution status: ( 0) The previous self-test routine completed - without error or no self-test has ever - been run. -Total time to complete off-line -data collection: ( 35) seconds. -Offline data collection -capabilities: (0x1b) SMART execute Offline immediate. - Automatic timer ON/OFF support. - Suspend Offline collection upon new - command. - Offline surface scan supported. - Self-test supported. -SMART capabilities: (0x0003) Saves SMART data before entering - power-saving mode. - Supports SMART auto save timer. -Error logging capability: (0x01) Error logging supported. -Short self-test routine -recommended polling time: ( 2) minutes. -Extended self-test routine -recommended polling time: ( 40) minutes. - -SMART Attributes Data Structure revision number: 11 -Vendor Specific SMART Attributes with Thresholds: -ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE WHEN_FAILED RAW_VALUE - 1 Raw_Read_Error_Rate 0x0029 100 253 020 Pre-fail - 0 - 3 Spin_Up_Time 0x0027 069 066 020 Pre-fail - 3984 - 4 Start_Stop_Count 0x0032 100 100 008 Old_age - 110 - 5 Reallocated_Sector_Ct 0x0033 100 100 020 Pre-fail - 0 - 7 Seek_Error_Rate 0x000b 100 100 023 Pre-fail - 0 - 9 Power_On_Hours 0x0012 099 099 001 Old_age - 1294 - 10 Spin_Retry_Count 0x0026 100 100 000 Old_age - 0 - 11 Calibration_Retry_Count 0x0013 100 100 020 Pre-fail - 0 - 12 Power_Cycle_Count 0x0032 100 100 008 Old_age - 110 - 13 Read_Soft_Error_Rate 0x000b 100 100 023 Pre-fail - 0 -194 Temperature_Centigrade 0x0022 092 087 042 Old_age - 22 -195 Hardware_ECC_Recovered 0x001a 100 100 000 Old_age - 1163 -196 Reallocated_Event_Count 0x0010 100 100 020 Old_age - 0 -197 Current_Pending_Sector 0x0032 100 100 020 Old_age - 0 -198 Offline_Uncorrectable 0x0010 100 253 000 Old_age - 0 -199 UDMA_CRC_Error_Count 0x001a 200 200 000 Old_age - 0 - -SMART Error Log Version: 1 -No Errors Logged - -SMART Self-test log, version number 1 -Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error -# 1 Extended off-line Completed 00% 1038 -# 2 Extended off-line Aborted by host 00% 786 -# 3 Extended off-line Aborted by host 00% 786 diff --git a/www/examples/MAXTOR-4.txt b/www/examples/MAXTOR-4.txt deleted file mode 100644 index 65ae2850d..000000000 --- a/www/examples/MAXTOR-4.txt +++ /dev/null @@ -1,65 +0,0 @@ -smartctl version 5.0-24 Copyright (C) 2002 Bruce Allen -Home page is http://smartmontools.sourceforge.net/ - -=== START OF INFORMATION SECTION === -Device Model: MAXTOR 6L080J4 -Serial Number: 664205757172 -Firmware Version: A93.0500 -ATA Version is: 5 -ATA Standard is: ATA/ATAPI-5 T13 1321D revision 1 -SMART support is: Available - device has SMART capability. -SMART support is: Enabled - -=== START OF READ SMART DATA SECTION === -SMART overall-health self-assessment test result: PASSED - -General SMART Values: -Off-line data collection status: (0x04) Offline data collection activity was - suspended by an interrupting command from host. -Self-test execution status: ( 0) The previous self-test routine completed - without error or no self-test has ever - been run. -Total time to complete off-line -data collection: ( 35) seconds. -Offline data collection -capabilities: (0x1b) SMART execute Offline immediate. - Automatic timer ON/OFF support. - Suspend Offline collection upon new - command. - Offline surface scan supported. - Self-test supported. -SMART capabilities: (0x0003) Saves SMART data before entering - power-saving mode. - Supports SMART auto save timer. -Error logging capability: (0x01) Error logging supported. -Short self-test routine -recommended polling time: ( 2) minutes. -Extended self-test routine -recommended polling time: ( 40) minutes. - -SMART Attributes Data Structure revision number: 11 -Vendor Specific SMART Attributes with Thresholds: -ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE WHEN_FAILED RAW_VALUE - 1 Raw_Read_Error_Rate 0x0029 100 253 020 Pre-fail - 0 - 3 Spin_Up_Time 0x0027 065 064 020 Pre-fail - 4481 - 4 Start_Stop_Count 0x0032 100 100 008 Old_age - 81 - 5 Reallocated_Sector_Ct 0x0033 100 100 020 Pre-fail - 0 - 7 Seek_Error_Rate 0x000b 100 100 023 Pre-fail - 0 - 9 Power_On_Hours 0x0012 098 098 001 Old_age - 1767 - 10 Spin_Retry_Count 0x0026 100 100 000 Old_age - 0 - 11 Calibration_Retry_Count 0x0013 100 100 020 Pre-fail - 0 - 12 Power_Cycle_Count 0x0032 100 100 008 Old_age - 81 - 13 Read_Soft_Error_Rate 0x000b 100 100 023 Pre-fail - 0 -194 Temperature_Centigrade 0x0022 091 084 042 Old_age - 24 -195 Hardware_ECC_Recovered 0x001a 100 100 000 Old_age - 52795 -196 Reallocated_Event_Count 0x0010 100 100 020 Old_age - 0 -197 Current_Pending_Sector 0x0032 100 100 020 Old_age - 0 -198 Offline_Uncorrectable 0x0010 100 253 000 Old_age - 0 -199 UDMA_CRC_Error_Count 0x001a 200 200 000 Old_age - 0 - -SMART Error Log Version: 1 -No Errors Logged - -SMART Self-test log, version number 1 -Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error -# 1 Extended off-line Completed 00% 1283 diff --git a/www/examples/MAXTOR-6.txt b/www/examples/MAXTOR-6.txt deleted file mode 100644 index fe37f6541..000000000 --- a/www/examples/MAXTOR-6.txt +++ /dev/null @@ -1,156 +0,0 @@ -# /usr/sbin/smartctl -a -m /dev/hda -smartctl version 5.0-49 Copyright (C) 2002 Bruce Allen -Home page is http://smartmontools.sourceforge.net/ - -=== START OF INFORMATION SECTION === -Device Model: Maxtor 4R080J0 -Serial Number: R20BZ3LE -Firmware Version: RAMB1TU0 -ATA Version is: 7 -ATA Standard is: Unrecognized. Minor revision code: 0x1e -SMART support is: Available - device has SMART capability. -SMART support is: Enabled - -=== START OF READ SMART DATA SECTION === -SMART overall-health self-assessment test result: PASSED - -General SMART Values: -Off-line data collection status: (0x82) Offline data collection activity - completed without error. -Self-test execution status: ( 33) The self-test routine was interrupted - by the host with a hard or soft reset. -Total time to complete off-line -data collection: ( 241) seconds. -Offline data collection -capabilities: (0x5b) SMART execute Offline immediate. - Automatic timer ON/OFF support. - Suspend Offline collection upon new - command. - Offline surface scan supported. - Self-test supported. -SMART capabilities: (0x0003) Saves SMART data before entering - power-saving mode. - Supports SMART auto save timer. -Error logging capability: (0x01) Error logging supported. -Short self-test routine -recommended polling time: ( 2) minutes. -Extended self-test routine -recommended polling time: ( 41) minutes. - -SMART Attributes Data Structure revision number: 16 -Vendor Specific SMART Attributes with Thresholds: -ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE WHEN_FAILED RAW_VALUE - 3 Spin_Up_Time 0x0027 252 252 063 Pre-fail - 1621 - 4 Start_Stop_Count 0x0032 253 253 000 Old_age - 18 - 5 Reallocated_Sector_Ct 0x0033 253 253 063 Pre-fail - 0 - 6 Read_Channel_Margin 0x0001 253 253 100 Pre-fail - 0 - 7 Seek_Error_Rate 0x000a 253 252 000 Old_age - 0 - 8 Seek_Time_Performance 0x0027 252 244 187 Pre-fail - 41642 - 9 Power_On_Hours 0x0032 253 253 000 Old_age - 27 h + 13 m - 10 Spin_Retry_Count 0x002b 252 252 157 Pre-fail - 0 - 11 Calibration_Retry_Count 0x002b 253 252 223 Pre-fail - 0 - 12 Power_Cycle_Count 0x0032 253 253 000 Old_age - 24 -192 Power-Off_Retract_Count 0x0032 253 253 000 Old_age - 0 -193 Load_Cycle_Count 0x0032 253 253 000 Old_age - 0 -194 Temperature_Celsius 0x0032 253 253 000 Old_age - 29 -195 Hardware_ECC_Recovered 0x000a 253 252 000 Old_age - 31004 -196 Reallocated_Event_Count 0x0008 253 253 000 Old_age - 0 -197 Current_Pending_Sector 0x0008 253 253 000 Old_age - 0 -198 Offline_Uncorrectable 0x0008 253 253 000 Old_age - 0 -199 UDMA_CRC_Error_Count 0x0008 199 199 000 Old_age - 0 -200 Multi_Zone_Error_Rate 0x000a 253 252 000 Old_age - 0 -201 Unknown_Attribute 0x000a 253 252 000 Old_age - 3 -202 Unknown_Attribute 0x000a 253 252 000 Old_age - 0 -203 Unknown_Attribute 0x000b 253 252 180 Pre-fail - 2 -204 Unknown_Attribute 0x000a 253 252 000 Old_age - 0 -205 Unknown_Attribute 0x000a 253 252 000 Old_age - 0 -207 Unknown_Attribute 0x002a 252 252 000 Old_age - 0 -208 Unknown_Attribute 0x002a 252 252 000 Old_age - 0 -209 Unknown_Attribute 0x0024 079 063 000 Old_age - 0 - 99 Unknown_Attribute 0x0004 253 253 000 Old_age - 0 -100 Unknown_Attribute 0x0004 253 253 000 Old_age - 0 -101 Unknown_Attribute 0x0004 253 253 000 Old_age - 0 - -SMART Error Log Version: 1 -ATA Error Count: 5 - DCR = Device Control Register - FR = Features Register - SC = Sector Count Register - SN = Sector Number Register - CL = Cylinder Low Register - CH = Cylinder High Register - D/H = Device/Head Register - CR = Content written to Command Register - ER = Error register - STA = Status register -Timestamp is seconds since the previous disk power-on. -Note: timestamp "wraps" after 2^32 msec = 49.710 days. - -Error 5 occurred at disk power-on lifetime: 4 hours -When the command that caused the error occurred, the device was in an unknown state. -After command completion occurred, registers were: -ER:04 SC:00 SN:00 CL:f4 CH:2c D/H:00 ST:01 -Sequence of commands leading to the command that caused the error were: -DCR FR SC SN CL CH D/H CR Timestamp - 0e d4 00 82 4f c2 f0 b0 8907.296 - 08 d4 00 82 4f c2 f0 b0 6260.832 - 08 d1 01 01 4f c2 f0 b0 6260.800 - 08 d0 01 00 4f c2 f0 b0 6260.768 - 08 da 00 00 4f c2 10 b0 6260.736 - -Error 4 occurred at disk power-on lifetime: 1 hours -When the command that caused the error occurred, the device was in an unknown state. -After command completion occurred, registers were: -ER:04 SC:00 SN:00 CL:f4 CH:2c D/H:00 ST:01 -Sequence of commands leading to the command that caused the error were: -DCR FR SC SN CL CH D/H CR Timestamp - 0e d4 00 82 4f c2 f0 b0 1944.192 - 08 d4 00 82 4f c2 f0 b0 1824.240 - 08 d1 01 01 4f c2 f0 b0 1824.224 - 08 d0 01 00 4f c2 f0 b0 1824.160 - 08 00 08 3f 00 00 f0 ca 1810.400 - -Error 3 occurred at disk power-on lifetime: 1 hours -When the command that caused the error occurred, the device was in an unknown state. -After command completion occurred, registers were: -ER:04 SC:00 SN:00 CL:f4 CH:2c D/H:00 ST:01 -Sequence of commands leading to the command that caused the error were: -DCR FR SC SN CL CH D/H CR Timestamp - 0e d4 00 82 4f c2 f0 b0 1456.432 - 08 d4 00 82 4f c2 f0 b0 1379.456 - 08 d1 01 01 4f c2 f0 b0 1379.440 - 08 d0 01 00 4f c2 f0 b0 1379.376 - 08 00 08 f7 01 54 f0 ca 1378.544 - -Error 2 occurred at disk power-on lifetime: 0 hours -When the command that caused the error occurred, the device was in an unknown state. -After command completion occurred, registers were: -ER:04 SC:00 SN:00 CL:f4 CH:2c D/H:00 ST:51 -Sequence of commands leading to the command that caused the error were: -DCR FR SC SN CL CH D/H CR Timestamp - 08 d4 00 82 4f c2 f0 b0 908.320 - 08 d1 01 01 4f c2 f0 b0 908.320 - 08 d0 01 00 4f c2 f0 b0 908.272 - 08 d4 00 7f 4f c2 f0 b0 905.696 - 08 d1 01 01 4f c2 f0 b0 905.664 - -Error 1 occurred at disk power-on lifetime: 0 hours -When the command that caused the error occurred, the device was in an unknown state. -After command completion occurred, registers were: -ER:04 SC:50 SN:40 CL:97 CH:03 D/H:10 ST:51 -Sequence of commands leading to the command that caused the error were: -DCR FR SC SN CL CH D/H CR Timestamp - 00 fe 00 00 00 00 10 ef 137.184 - 00 3d 00 00 00 00 10 c3 137.136 - 00 e4 00 00 00 00 10 c3 137.088 - 00 3d 00 00 00 00 10 c3 137.088 - 00 00 00 00 5e 20 10 70 137.040 - -SMART Self-test log, version number 1 -Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error -# 1 Extended captive Interrupted (host reset) 10% 4 -# 2 Short off-line Completed 00% 2 -# 3 Short captive Completed 00% 2 -# 4 Extended captive Interrupted (host reset) 40% 1 -# 5 Extended captive Interrupted (host reset) 70% 1 -# 6 Extended captive Interrupted (host reset) 40% 0 diff --git a/www/examples/MAXTOR-7.txt b/www/examples/MAXTOR-7.txt deleted file mode 100644 index 1d3fa0049..000000000 --- a/www/examples/MAXTOR-7.txt +++ /dev/null @@ -1,157 +0,0 @@ -smartctl version 5.1-4 Copyright (C) 2002 Bruce Allen -Home page is http://smartmontools.sourceforge.net/ - -=== START OF INFORMATION SECTION === -Device Model: MAXTOR 4K080H4 -Serial Number: 674119114160 -Firmware Version: A08.1500 -ATA Version is: 5 -ATA Standard is: ATA/ATAPI-5 T13 1321D revision 1 -Local Time is: Tue May 13 08:59:49 2003 CDT -SMART support is: Available - device has SMART capability. -SMART support is: Enabled - -=== START OF READ SMART DATA SECTION === -SMART overall-health self-assessment test result: FAILED! -Drive failure expected in less than 24 hours. SAVE ALL DATA. -See vendor-specific Attribute list for failed Attributes. - -General SMART Values: -Off-line data collection status: (0x82) Offline data collection activity - completed without error. -Self-test execution status: ( 112) The previous self-test completed having - the read element of the test failed. -Total time to complete off-line -data collection: ( 44) seconds. -Offline data collection -capabilities: (0x1b) SMART execute Offline immediate. - Automatic timer ON/OFF support. - Suspend Offline collection upon new - command. - Offline surface scan supported. - Self-test supported. -SMART capabilities: (0x0003) Saves SMART data before entering - power-saving mode. - Supports SMART auto save timer. -Error logging capability: (0x01) Error logging supported. -Short self-test routine -recommended polling time: ( 2) minutes. -Extended self-test routine -recommended polling time: ( 50) minutes. - -SMART Attributes Data Structure revision number: 11 -Vendor Specific SMART Attributes with Thresholds: -ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE WHEN_FAILED RAW_VALUE - 1 Raw_Read_Error_Rate 0x0029 100 253 020 Pre-fail - 0 - 3 Spin_Up_Time 0x0027 075 075 020 Pre-fail - 3214 - 4 Start_Stop_Count 0x0032 100 100 008 Old_age - 58 - 5 Reallocated_Sector_Ct 0x0033 098 098 020 Pre-fail - 12 - 7 Seek_Error_Rate 0x000b 001 001 023 Pre-fail FAILING_NOW 13 - 9 Power_On_Hours 0x0012 078 078 001 Old_age - 14851 - 10 Spin_Retry_Count 0x0026 100 100 000 Old_age - 0 - 11 Calibration_Retry_Count 0x0013 100 090 020 Pre-fail - 0 - 12 Power_Cycle_Count 0x0032 100 100 008 Old_age - 58 - 13 Read_Soft_Error_Rate 0x000b 100 085 023 Pre-fail - 0 -194 Temperature_Celsius 0x0022 091 087 042 Old_age - 24 -195 Hardware_ECC_Recovered 0x001a 004 003 000 Old_age - 513691822 -196 Reallocated_Event_Count 0x0010 099 099 020 Old_age - 1 -197 Current_Pending_Sector 0x0032 098 098 020 Old_age - 12 -198 Offline_Uncorrectable 0x0010 100 100 000 Old_age - 0 -199 UDMA_CRC_Error_Count 0x001a 200 200 000 Old_age - 0 - -SMART Error Log Version: 1 -ATA Error Count: 25 (device log contains only the most recent five errors) - DCR = Device Control Register - FR = Features Register - SC = Sector Count Register - SN = Sector Number Register - CL = Cylinder Low Register - CH = Cylinder High Register - D/H = Device/Head Register - CR = Content written to Command Register - ER = Error register - STA = Status register -Timestamp is seconds since the previous disk power-on. -Note: timestamp "wraps" after 2^32 msec = 49.710 days. - -Error 25 occurred at disk power-on lifetime: 14799 hours -When the command that caused the error occurred, the device was in an unknown state. -After command completion occurred, registers were: -ER:40 SC:04 SN:53 CL:1d CH:0c D/H:e0 ST:59 -Sequence of commands leading to the command that caused the error were: -DCR FR SC SN CL CH D/H CR Timestamp - 0c 00 08 4f 1d 0c e0 c8 0.523 - 0c 00 08 47 1d 0c e0 c8 510.677 - 04 00 08 6f 04 04 e0 ca 510.675 - 04 00 08 4f 1c 04 e0 ca 510.674 - 04 00 08 6f 04 04 e0 ca 510.674 - -Error 24 occurred at disk power-on lifetime: 14799 hours -When the command that caused the error occurred, the device was in an unknown state. -After command completion occurred, registers were: -ER:40 SC:03 SN:44 CL:1d CH:0c D/H:e0 ST:59 -Sequence of commands leading to the command that caused the error were: -DCR FR SC SN CL CH D/H CR Timestamp - 0c 00 08 3f 1d 0c e0 c8 495.294 - 0c 00 08 37 1d 0c e0 c8 491.239 - 0c 00 08 2f 1d 0c e0 c8 488.433 - 14 00 08 17 04 14 e0 ca 488.432 - 0c 00 08 b7 00 0c e0 ca 488.432 - -Error 23 occurred at disk power-on lifetime: 14799 hours -When the command that caused the error occurred, the device was in an unknown state. -After command completion occurred, registers were: -ER:40 SC:06 SN:21 CL:18 CH:0c D/H:e0 ST:59 -Sequence of commands leading to the command that caused the error were: -DCR FR SC SN CL CH D/H CR Timestamp - 0c 00 08 1f 18 0c e0 c8 392.659 - 00 00 08 17 18 0c e0 c8 392.654 - 0c 00 08 0f 18 0c e0 c8 392.624 - 00 00 08 07 18 0c e0 c8 392.620 - 00 00 08 ff 17 0c e0 c8 392.615 - -Error 22 occurred at disk power-on lifetime: 14799 hours -When the command that caused the error occurred, the device was in an unknown state. -After command completion occurred, registers were: -ER:40 SC:05 SN:b2 CL:16 CH:0c D/H:e0 ST:59 -Sequence of commands leading to the command that caused the error were: -DCR FR SC SN CL CH D/H CR Timestamp - 0c 00 08 af 16 0c e0 c8 385.889 - 04 00 08 6f 04 04 e0 ca 385.886 - 04 00 08 4f 1c 04 e0 ca 385.886 - 04 00 08 6f 04 04 e0 ca 385.886 - 04 00 08 4f 1c 04 e0 ca 385.885 - -Error 21 occurred at disk power-on lifetime: 14799 hours -When the command that caused the error occurred, the device was in an unknown state. -After command completion occurred, registers were: -ER:40 SC:06 SN:a9 CL:16 CH:0c D/H:e0 ST:59 -Sequence of commands leading to the command that caused the error were: -DCR FR SC SN CL CH D/H CR Timestamp - 0c 00 08 a7 16 0c e0 c8 381.795 - 04 00 08 6f 04 04 e0 ca 381.793 - 04 00 08 4f 1c 04 e0 ca 381.793 - 04 00 08 6f 04 04 e0 ca 381.792 - 04 00 08 4f 1c 04 e0 ca 381.792 - -SMART Self-test log, version number 1 -Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error -# 1 Extended off-line Completed: read failure 90% 14757 0x000409bb -# 2 Extended off-line Completed: read failure 90% 14755 0x000bf956 -# 3 Extended off-line Completed 00% 14305 - -# 4 Extended off-line Completed 00% 14100 - -# 5 Extended off-line Completed 00% 13721 - -# 6 Extended off-line Completed 00% 13636 - -# 7 Extended off-line Completed 00% 13233 - -# 8 Extended off-line Completed 00% 13078 - -# 9 Extended off-line Completed 00% 12093 - -#10 Extended off-line Completed 00% 11926 - -#11 Extended off-line Completed 00% 11428 - -#12 Extended off-line Completed 00% 11030 - -#13 Extended off-line Completed 00% 10888 - -#14 Extended off-line Completed 00% 10728 - -#15 Extended off-line Completed 00% 10435 - -#16 Extended off-line Completed 00% 10267 - -#17 Extended off-line Completed 00% 10098 - -#18 Extended off-line Completed 00% 9930 - -#19 Extended off-line Completed 00% 9599 - diff --git a/www/examples/MAXTOR-8.txt b/www/examples/MAXTOR-8.txt deleted file mode 100644 index 3ae4d8773..000000000 --- a/www/examples/MAXTOR-8.txt +++ /dev/null @@ -1,82 +0,0 @@ -smartctl version 5.1-14 Copyright (C) 2002-3 Bruce Allen -Home page is http://smartmontools.sourceforge.net/ - -=== START OF INFORMATION SECTION === -Device Model: MAXTOR 4K080H4 -Serial Number: 674119116076 -Firmware Version: A08.1500 -Device is: In smartctl database [for details use: -P show] -ATA Version is: 5 -ATA Standard is: ATA/ATAPI-5 T13 1321D revision 1 -Local Time is: Tue Jun 17 14:46:37 2003 CDT -SMART support is: Available - device has SMART capability. -SMART support is: Enabled - -=== START OF READ SMART DATA SECTION === -SMART overall-health self-assessment test result: FAILED! -Drive failure expected in less than 24 hours. SAVE ALL DATA. -See vendor-specific Attribute list for failed Attributes. - -General SMART Values: -Off-line data collection status: (0x82) Offline data collection activity was - completed without error. - Auto Off-line Data Collection: Enabled. -Self-test execution status: ( 0) The previous self-test routine completed - without error or no self-test has ever - been run. -Total time to complete off-line -data collection: ( 44) seconds. -Offline data collection -capabilities: (0x1b) SMART execute Offline immediate. - Automatic timer ON/OFF support. - Suspend Offline collection upon new - command. - Offline surface scan supported. - Self-test supported. - No Conveyance Self-test supported. - No Selective Self-test supported. -SMART capabilities: (0x0003) Saves SMART data before entering - power-saving mode. - Supports SMART auto save timer. -Error logging capability: (0x01) Error logging supported. - No General Purpose Logging support. -Short self-test routine -recommended polling time: ( 2) minutes. -Extended self-test routine -recommended polling time: ( 50) minutes. - -SMART Attributes Data Structure revision number: 11 -Vendor Specific SMART Attributes with Thresholds: -ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE - 1 Raw_Read_Error_Rate 0x0029 100 253 020 Pre-fail Offline - 0 - 3 Spin_Up_Time 0x0027 075 075 020 Pre-fail Always - 3249 - 4 Start_Stop_Count 0x0032 100 100 008 Old_age Always - 45 - 5 Reallocated_Sector_Ct 0x0033 100 100 020 Pre-fail Always - 0 - 7 Seek_Error_Rate 0x000b 100 001 023 Pre-fail Always In_the_past 0 - 9 Power_On_Hours 0x0012 082 082 001 Old_age Always - 12223 - 10 Spin_Retry_Count 0x0026 100 100 000 Old_age Always - 0 - 11 Calibration_Retry_Count 0x0013 020 020 020 Pre-fail Always FAILING_NOW 8 - 12 Power_Cycle_Count 0x0032 100 100 008 Old_age Always - 45 - 13 Read_Soft_Error_Rate 0x000b 100 100 023 Pre-fail Always - 0 -194 Temperature_Celsius 0x0022 094 088 042 Old_age Always - 17 -195 Hardware_ECC_Recovered 0x001a 100 007 000 Old_age Always - 494134044 -196 Reallocated_Event_Count 0x0010 100 100 020 Old_age Offline - 0 -197 Current_Pending_Sector 0x0032 100 100 020 Old_age Always - 0 -198 Offline_Uncorrectable 0x0010 100 100 000 Old_age Offline - 0 -199 UDMA_CRC_Error_Count 0x001a 200 200 000 Old_age Always - 0 - -SMART Error Log Version: 1 -No Errors Logged - -SMART Self-test log, version number 1 -Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error -# 1 Extended off-line Completed 00% 11610 - -# 2 Extended off-line Completed 00% 11213 - -# 3 Extended off-line Completed 00% 11072 - -# 4 Extended off-line Completed 00% 10911 - -# 5 Extended off-line Completed 00% 10618 - -# 6 Extended off-line Completed 00% 10450 - -# 7 Extended off-line Completed 00% 10282 - -# 8 Extended off-line Completed 00% 10114 - -# 9 Extended off-line Completed 00% 9783 - - diff --git a/www/examples/MAXTOR-9.txt b/www/examples/MAXTOR-9.txt deleted file mode 100644 index 6a692423d..000000000 --- a/www/examples/MAXTOR-9.txt +++ /dev/null @@ -1,94 +0,0 @@ -smartctl version 5.1-14 Copyright (C) 2002-3 Bruce Allen -Home page is http://smartmontools.sourceforge.net/ - -=== START OF INFORMATION SECTION === -Device Model: MAXTOR 4K080H4 -Serial Number: 674119123112 -Firmware Version: A08.1500 -Device is: In smartctl database [for details use: -P show] -ATA Version is: 5 -ATA Standard is: ATA/ATAPI-5 T13 1321D revision 1 -Local Time is: Tue Aug 19 02:06:11 2003 CDT -SMART support is: Available - device has SMART capability. -SMART support is: Enabled - -=== START OF READ SMART DATA SECTION === -SMART overall-health self-assessment test result: FAILED! -Drive failure expected in less than 24 hours. SAVE ALL DATA. -See vendor-specific Attribute list for failed Attributes. - -General SMART Values: -Off-line data collection status: (0x80) Offline data collection activity was - never started. - Auto Off-line Data Collection: Enabled. -Self-test execution status: ( 0) The previous self-test routine completed - without error or no self-test has ever - been run. -Total time to complete off-line -data collection: ( 44) seconds. -Offline data collection -capabilities: (0x1b) SMART execute Offline immediate. - Automatic timer ON/OFF support. - Suspend Offline collection upon new - command. - Offline surface scan supported. - Self-test supported. - No Conveyance Self-test supported. - No Selective Self-test supported. -SMART capabilities: (0x0003) Saves SMART data before entering - power-saving mode. - Supports SMART auto save timer. -Error logging capability: (0x01) Error logging supported. - No General Purpose Logging support. -Short self-test routine -recommended polling time: ( 2) minutes. -Extended self-test routine -recommended polling time: ( 50) minutes. - -SMART Attributes Data Structure revision number: 11 -Vendor Specific SMART Attributes with Thresholds: -ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE - 1 Raw_Read_Error_Rate 0x0029 100 253 020 Pre-fail Offline - 0 - 3 Spin_Up_Time 0x0027 075 074 020 Pre-fail Always - 3186 - 4 Start_Stop_Count 0x0032 100 100 008 Old_age Always - 68 - 5 Reallocated_Sector_Ct 0x0033 100 100 020 Pre-fail Always - 0 - 7 Seek_Error_Rate 0x000b 100 100 023 Pre-fail Always - 0 - 9 Power_On_Hours 0x0012 074 074 001 Old_age Always - 17202 - 10 Spin_Retry_Count 0x0026 100 100 000 Old_age Always - 0 - 11 Calibration_Retry_Count 0x0013 010 010 020 Pre-fail Always FAILING_NOW 9 - 12 Power_Cycle_Count 0x0032 100 100 008 Old_age Always - 68 - 13 Read_Soft_Error_Rate 0x000b 100 100 023 Pre-fail Always - 0 -194 Temperature_Celsius 0x0022 092 087 042 Old_age Always - 22 -195 Hardware_ECC_Recovered 0x001a 018 003 000 Old_age Always - 1082933060 -196 Reallocated_Event_Count 0x0010 100 100 020 Old_age Offline - 0 -197 Current_Pending_Sector 0x0032 100 100 020 Old_age Always - 0 -198 Offline_Uncorrectable 0x0010 100 253 000 Old_age Offline - 0 -199 UDMA_CRC_Error_Count 0x001a 200 200 000 Old_age Always - 0 - -SMART Error Log Version: 1 -No Errors Logged - -SMART Self-test log, version number 1 -Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error -# 1 Extended off-line Completed 00% 17157 - -# 2 Extended off-line Completed 00% 16990 - -# 3 Extended off-line Completed 00% 16823 - -# 4 Extended off-line Completed 00% 16657 - -# 5 Extended off-line Completed 00% 16598 - -# 6 Extended off-line Completed 00% 16490 - -# 7 Extended off-line Completed 00% 16323 - -# 8 Extended off-line Completed 00% 16157 - -# 9 Extended off-line Completed 00% 15991 - -#10 Extended off-line Completed 00% 15696 - -#11 Extended off-line Completed 00% 15614 - -#12 Extended off-line Completed 00% 15241 - -#13 Extended off-line Completed 00% 15026 - -#14 Extended off-line Completed 00% 14785 - -#15 Extended off-line Completed 00% 14334 - -#16 Extended off-line Completed 00% 14129 - -#17 Extended off-line Completed 00% 13750 - -#18 Extended off-line Completed 00% 13665 - -#19 Extended off-line Completed 00% 13262 - -#20 Extended off-line Completed 00% 13108 - -#21 Extended off-line Completed 00% 12125 - - diff --git a/www/examples/Maxtor-5.txt b/www/examples/Maxtor-5.txt deleted file mode 100644 index 3bb171eb6..000000000 --- a/www/examples/Maxtor-5.txt +++ /dev/null @@ -1,127 +0,0 @@ -smartctl version 5.0-36 Copyright (C) 2002 Bruce Allen -Home page is http://smartmontools.sourceforge.net/ - -=== START OF INFORMATION SECTION === -Device Model: Maxtor 98196H8 -Serial Number: V80HV6NC -Firmware Version: ZAH814Y0 -ATA Version is: 6 -ATA Standard is: ATA/ATAPI-6 T13 1410D revision 0 -SMART support is: Available - device has SMART capability. -SMART support is: Enabled - -=== START OF READ SMART DATA SECTION === -SMART overall-health self-assessment test result: PASSED - -General SMART Values: -Off-line data collection status: (0x00) Offline data collection activity was - never started. -Self-test execution status: ( 0) The previous self-test routine completed - without error or no self-test has ever - been run. -Total time to complete off-line -data collection: ( 30) seconds. -Offline data collection -capabilities: (0x1b) SMART execute Offline immediate. - Automatic timer ON/OFF support. - Suspend Offline collection upon new - command. - Offline surface scan supported. - Self-test supported. -SMART capabilities: (0x0003) Saves SMART data before entering - power-saving mode. - Supports SMART auto save timer. -Error logging capability: (0x01) Error logging supported. -Short self-test routine -recommended polling time: ( 2) minutes. -Extended self-test routine -recommended polling time: ( 60) minutes. - -SMART Attributes Data Structure revision number: 16 -Vendor Specific SMART Attributes with Thresholds: -ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE WHEN_FAILED RAW_VALUE - 1 Raw_Read_Error_Rate 0x000a 253 252 000 Old_age - 26 - 3 Spin_Up_Time 0x0027 208 206 063 Pre-fail - 11285 - 4 Start_Stop_Count 0x0032 253 253 000 Old_age - 62 - 5 Reallocated_Sector_Ct 0x0033 253 253 063 Pre-fail - 0 - 6 Read_Channel_Margin 0x0001 253 253 100 Pre-fail - 0 - 7 Seek_Error_Rate 0x000a 253 252 000 Old_age - 0 - 8 Seek_Time_Performance 0x0027 249 244 187 Pre-fail - 50271 - 9 Power_On_Hours 0x0032 236 236 000 Old_age - 32671 - 10 Spin_Retry_Count 0x002b 253 252 223 Pre-fail - 0 - 11 Calibration_Retry_Count 0x002b 253 252 223 Pre-fail - 0 - 12 Power_Cycle_Count 0x0032 253 253 000 Old_age - 67 -196 Reallocated_Event_Count 0x0008 253 253 000 Old_age - 0 -197 Current_Pending_Sector 0x0008 253 253 000 Old_age - 0 -198 Offline_Uncorrectable 0x0008 253 253 000 Old_age - 0 -199 UDMA_CRC_Error_Count 0x0008 199 199 000 Old_age - 0 -200 Unknown_Attribute 0x000a 253 252 000 Old_age - 0 -201 Unknown_Attribute 0x000a 253 252 000 Old_age - 1 -202 Unknown_Attribute 0x000a 253 252 000 Old_age - 0 -203 Unknown_Attribute 0x000b 253 252 180 Pre-fail - 2 -204 Unknown_Attribute 0x000a 253 252 000 Old_age - 0 -205 Unknown_Attribute 0x000a 253 252 000 Old_age - 0 -207 Unknown_Attribute 0x002a 253 252 000 Old_age - 0 -208 Unknown_Attribute 0x002a 253 252 000 Old_age - 0 -209 Unknown_Attribute 0x0024 253 253 000 Old_age - 0 - 96 Unknown_Attribute 0x0004 253 253 000 Old_age - 0 - 97 Unknown_Attribute 0x0004 253 253 000 Old_age - 0 - 98 Unknown_Attribute 0x0004 253 253 000 Old_age - 0 - 99 Unknown_Attribute 0x0004 253 253 000 Old_age - 0 -100 Unknown_Attribute 0x0004 253 253 000 Old_age - 0 -101 Unknown_Attribute 0x0004 253 253 000 Old_age - 0 - -SMART Error Log Version: 1 -ATA Error Count: 3 - DCR = Device Control Register - FR = Features Register - SC = Sector Count Register - SN = Sector Number Register - CL = Cylinder Low Register - CH = Cylinder High Register - D/H = Device/Head Register - CR = Content written to Command Register - ER = Error register - STA = Status register -Timestamp is seconds since the previous disk power-on. -Note: timestamp "wraps" after 2^32 msec = 49.710 days. - -Error 1 occurred at disk power-on lifetime: 0 hours -When the command that caused the error occurred, the device was in an unknown state. -After command completion occurred, registers were: -ER:04 SC:40 SN:42 CL:97 CH:23 D/H:00 ST:51 -Sequence of commands leading to the command that caused the error were: -DCR FR SC SN CL CH D/H CR Timestamp - 00 fe 00 00 00 00 00 ef 137.440 - 00 d9 00 00 4f c2 00 b0 137.328 - 00 da 00 00 4f c2 00 b0 137.232 - 00 d8 00 00 4f c2 00 b0 137.152 - 00 db 00 00 4f c2 00 b0 136.976 - -Error 2 occurred at disk power-on lifetime: 0 hours -When the command that caused the error occurred, the device was in an unknown state. -After command completion occurred, registers were: -ER:04 SC:40 SN:40 CL:97 CH:23 D/H:00 ST:51 -Sequence of commands leading to the command that caused the error were: -DCR FR SC SN CL CH D/H CR Timestamp - 00 fe 00 00 00 00 00 ef 342.432 - 00 e4 00 00 00 00 00 c3 342.368 - 00 d0 00 00 0a 00 00 c3 342.368 - 00 fe 00 00 00 00 00 ef 342.304 - 00 3d 00 00 00 00 00 c3 342.256 - -Error 3 occurred at disk power-on lifetime: 0 hours -When the command that caused the error occurred, the device was in an unknown state. -After command completion occurred, registers were: -ER:04 SC:40 SN:40 CL:97 CH:03 D/H:00 ST:51 -Sequence of commands leading to the command that caused the error were: -DCR FR SC SN CL CH D/H CR Timestamp - 00 fe 00 00 00 00 00 ef 342.304 - 00 3d 00 00 00 00 00 c3 342.256 - 00 e4 00 00 00 00 00 c3 342.192 - 00 3d 00 00 00 00 00 c3 342.192 - 00 00 01 01 00 00 00 ec 342.144 - -SMART Self-test log, version number 1 -Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error -# 1 Short off-line Completed 00% 5255 diff --git a/www/examples/ST910021AS.txt b/www/examples/ST910021AS.txt deleted file mode 100644 index 98816bae6..000000000 --- a/www/examples/ST910021AS.txt +++ /dev/null @@ -1,205 +0,0 @@ -smartctl version 5.39 [i386-apple-darwin8.11.1] Copyright (C) 2002-8 Bruce Allen -Home page is http://smartmontools.sourceforge.net/ - -=== START OF INFORMATION SECTION === -Model Family: Seagate Momentus 7200.1 series -Device Model: ST910021AS -Serial Number: 3MH05H05 -Firmware Version: 3.07 -User Capacity: 100,030,242,816 bytes -Device is: In smartctl database [for details use: -P show] -ATA Version is: 7 -ATA Standard is: Exact ATA specification draft version not indicated -Local Time is: Sun Mar 23 09:06:15 2008 CDT -SMART support is: Available - device has SMART capability. -SMART support is: Enabled - -=== START OF READ SMART DATA SECTION === -SMART overall-health self-assessment test result: FAILED! -Drive failure expected in less than 24 hours. SAVE ALL DATA. -See vendor-specific Attribute list for failed Attributes. - -General SMART Values: -Offline data collection status: (0x82) Offline data collection activity - was completed without error. - Auto Offline Data Collection: Enabled. -Self-test execution status: ( 73) The previous self-test completed having - a test element that failed and the test - element that failed is not known. -Total time to complete Offline -data collection: ( 60) seconds. -Offline data collection -capabilities: (0x5b) SMART execute Offline immediate. - Auto Offline data collection on/off support. - Suspend Offline collection upon new - command. - Offline surface scan supported. - Self-test supported. - No Conveyance Self-test supported. - Selective Self-test supported. -SMART capabilities: (0x0003) Saves SMART data before entering - power-saving mode. - Supports SMART auto save timer. -Error logging capability: (0x01) Error logging supported. - No General Purpose Logging support. -Short self-test routine -recommended polling time: ( 1) minutes. -Extended self-test routine -recommended polling time: ( 111) minutes. -SCT capabilities: (0x0001) SCT Status supported. - -SMART Attributes Data Structure revision number: 10 -Vendor Specific SMART Attributes with Thresholds: -ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE - 1 Raw_Read_Error_Rate 0x000e 100 253 006 Old_age Always - 0 - 3 Spin_Up_Time 0x0003 092 092 000 Pre-fail Always - 0 - 4 Start_Stop_Count 0x0032 099 099 020 Old_age Always - 1987 - 5 Reallocated_Sector_Ct 0x0033 001 001 036 Pre-fail Always FAILING_NOW 16642 - 7 Seek_Error_Rate 0x000f 070 060 030 Pre-fail Always - 21531636184 - 9 Power_On_Hours 0x0032 095 095 000 Old_age Always - 4957 - 10 Spin_Retry_Count 0x0013 100 096 034 Pre-fail Always - 0 - 12 Power_Cycle_Count 0x0032 099 099 020 Old_age Always - 1577 -187 Reported_Uncorrect 0x0032 001 001 000 Old_age Always - 65535 -189 High_Fly_Writes 0x003a 001 001 000 Old_age Always - 1050 -190 Airflow_Temperature_Cel 0x0022 056 044 045 Old_age Always In_the_past 44 (0 56 56 12) -192 Power-Off_Retract_Count 0x0032 100 100 000 Old_age Always - 1155 -193 Load_Cycle_Count 0x0032 001 001 000 Old_age Always - 943182 -194 Temperature_Celsius 0x0022 044 056 000 Old_age Always - 44 (0 12 0 0) -195 Hardware_ECC_Recovered 0x001a 048 048 000 Old_age Always - 80662606 -197 Current_Pending_Sector 0x0012 070 069 000 Old_age Always - 614 -198 Offline_Uncorrectable 0x0010 070 069 000 Old_age Offline - 614 -199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always - 0 -200 Multi_Zone_Error_Rate 0x0000 100 253 000 Old_age Offline - 0 -202 TA_Increase_Count 0x0032 100 253 000 Old_age Always - 0 - -SMART Error Log Version: 1 -ATA Error Count: 7731 (device log contains only the most recent five errors) - CR = Command Register [HEX] - FR = Features Register [HEX] - SC = Sector Count Register [HEX] - SN = Sector Number Register [HEX] - CL = Cylinder Low Register [HEX] - CH = Cylinder High Register [HEX] - DH = Device/Head Register [HEX] - DC = Device Command Register [HEX] - ER = Error register [HEX] - ST = Status register [HEX] -Powered_Up_Time is measured from power on, and printed as -DDd+hh:mm:SS.sss where DD=days, hh=hours, mm=minutes, -SS=sec, and sss=millisec. It "wraps" after 49.710 days. - -Error 7731 occurred at disk power-on lifetime: 4955 hours (206 days + 11 hours) - When the command that caused the error occurred, the device was active or idle. - - After command completion occurred, registers were: - ER ST SC SN CL CH DH - -- -- -- -- -- -- -- - 40 51 00 c2 b5 23 40 Error: UNC at LBA = 0x0023b5c2 = 2340290 - - Commands leading to the command that caused the error were: - CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name - -- -- -- -- -- -- -- -- ---------------- -------------------- - 25 00 08 c0 b5 23 40 00 02:34:35.017 READ DMA EXT - 25 00 08 c0 b5 23 40 00 02:34:35.010 READ DMA EXT - 25 00 08 c0 b5 23 40 00 02:34:32.754 READ DMA EXT - 35 00 80 38 b8 d1 40 00 02:34:32.736 WRITE DMA EXT - 25 00 08 b8 e4 09 40 00 02:34:32.714 READ DMA EXT - -Error 7730 occurred at disk power-on lifetime: 4955 hours (206 days + 11 hours) - When the command that caused the error occurred, the device was active or idle. - - After command completion occurred, registers were: - ER ST SC SN CL CH DH - -- -- -- -- -- -- -- - 40 51 00 c2 b5 23 40 Error: UNC at LBA = 0x0023b5c2 = 2340290 - - Commands leading to the command that caused the error were: - CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name - -- -- -- -- -- -- -- -- ---------------- -------------------- - 25 00 08 c0 b5 23 40 00 02:34:35.017 READ DMA EXT - 25 00 08 c0 b5 23 40 00 02:34:35.010 READ DMA EXT - 35 00 80 38 b8 d1 40 00 02:34:32.754 WRITE DMA EXT - 25 00 08 b8 e4 09 40 00 02:34:32.736 READ DMA EXT - 25 00 10 00 3b 07 40 00 02:34:32.714 READ DMA EXT - -Error 7729 occurred at disk power-on lifetime: 4955 hours (206 days + 11 hours) - When the command that caused the error occurred, the device was active or idle. - - After command completion occurred, registers were: - ER ST SC SN CL CH DH - -- -- -- -- -- -- -- - 40 51 00 c2 b5 23 40 Error: UNC at LBA = 0x0023b5c2 = 2340290 - - Commands leading to the command that caused the error were: - CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name - -- -- -- -- -- -- -- -- ---------------- -------------------- - 25 00 08 c0 b5 23 40 00 02:34:35.017 READ DMA EXT - 35 00 80 38 b8 d1 40 00 02:34:35.010 WRITE DMA EXT - 25 00 08 b8 e4 09 40 00 02:34:32.754 READ DMA EXT - 25 00 10 00 3b 07 40 00 02:34:32.736 READ DMA EXT - 25 00 08 c0 b5 23 40 00 02:34:32.714 READ DMA EXT - -Error 7728 occurred at disk power-on lifetime: 4955 hours (206 days + 11 hours) - When the command that caused the error occurred, the device was active or idle. - - After command completion occurred, registers were: - ER ST SC SN CL CH DH - -- -- -- -- -- -- -- - 40 51 00 c2 b5 23 40 Error: UNC at LBA = 0x0023b5c2 = 2340290 - - Commands leading to the command that caused the error were: - CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name - -- -- -- -- -- -- -- -- ---------------- -------------------- - 25 00 08 c0 b5 23 40 00 02:34:30.804 READ DMA EXT - 25 00 08 a0 3c d2 40 00 02:34:30.804 READ DMA EXT - 25 00 e8 30 eb 75 40 00 02:34:32.754 READ DMA EXT - 2f 00 01 10 00 00 00 00 02:34:32.736 READ LOG EXT - 61 80 80 00 00 00 00 00 02:34:32.714 WRITE FPDMA QUEUED - -Error 7727 occurred at disk power-on lifetime: 4955 hours (206 days + 11 hours) - When the command that caused the error occurred, the device was active or idle. - - After command completion occurred, registers were: - ER ST SC SN CL CH DH - -- -- -- -- -- -- -- - 40 51 00 c2 b5 23 40 Error: UNC at LBA = 0x0023b5c2 = 2340290 - - Commands leading to the command that caused the error were: - CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name - -- -- -- -- -- -- -- -- ---------------- -------------------- - 25 00 08 c0 b5 23 40 00 02:34:19.202 READ DMA EXT - 25 00 08 c0 b5 23 40 00 02:34:19.195 READ DMA EXT - 25 00 08 c0 b5 23 40 00 02:34:19.181 READ DMA EXT - 25 00 10 10 3b 07 40 00 02:34:28.554 READ DMA EXT - 25 00 08 50 0a 67 40 00 02:34:26.304 READ DMA EXT - -SMART Self-test log structure revision number 1 -Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error -# 1 Short offline Completed: unknown failure 90% 4957 22979632 -# 2 Short offline Interrupted (host reset) 90% 4505 - -# 3 Short offline Completed: read failure 90% 4499 18504955 -# 4 Short offline Completed: read failure 90% 4499 18504955 -# 5 Short offline Completed: read failure 90% 4499 18497155 -# 6 Extended offline Completed: read failure 10% 3952 8449825 -# 7 Short offline Completed: read failure 90% 3730 15926729 -# 8 Extended offline Completed: read failure 10% 2545 15992712 -# 9 Short offline Completed: read failure 90% 2545 15992712 -#10 Short offline Completed: read failure 90% 2545 15992712 -#11 Short offline Completed: read failure 90% 1339 8449825 -#12 Extended offline Completed: read failure 10% 907 15715785 -#13 Short offline Completed: read failure 90% 859 4042953 -#14 Extended offline Completed: read failure 10% 854 4042953 -#15 Extended offline Completed: read failure 10% 854 4042953 -#16 Short offline Completed without error 00% 300 - - -SMART Selective self-test log data structure revision number 1 - SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS - 1 15926000 15993000 Not_testing - 2 0 0 Not_testing - 3 0 0 Not_testing - 4 0 0 Not_testing - 5 0 0 Not_testing -Selective self-test flags (0x0): - After scanning selected spans, do NOT read-scan remainder of disk. -If Selective self-test is pending on power-up, resume after 0 minute delay. - diff --git a/www/examples/TOSHIBA-0.txt b/www/examples/TOSHIBA-0.txt deleted file mode 100644 index 965e55d99..000000000 --- a/www/examples/TOSHIBA-0.txt +++ /dev/null @@ -1,73 +0,0 @@ -smartctl version 5.0-31 Copyright (C) 2002 Bruce Allen -Home page is http://smartmontools.sourceforge.net/ - -=== START OF INFORMATION SECTION === -Device Model: TOSHIBA MK2018GAS -Serial Number: X22F7553T -Firmware Version: Q2.03 D -ATA Version is: 5 -ATA Standard is: Unrecognized. Minor revision code: 0x00 -SMART support is: Available - device has SMART capability. -SMART support is: Enabled - -=== START OF READ SMART DATA SECTION === -SMART overall-health self-assessment test result: PASSED - -General SMART Values: -Off-line data collection status: (0x00) Offline data collection activity was - never started. -Self-test execution status: ( 0) The previous self-test routine completed - without error or no self-test has ever - been run. -Total time to complete off-line -data collection: ( 212) seconds. -Offline data collection -capabilities: (0x1b) SMART execute Offline immediate. - Automatic timer ON/OFF support. - Suspend Offline collection upon new - command. - Offline surface scan supported. - Self-test supported. -SMART capabilities: (0x0003) Saves SMART data before entering - power-saving mode. - Supports SMART auto save timer. -Error logging capability: (0x01) Error logging supported. -Short self-test routine -recommended polling time: ( 2) minutes. -Extended self-test routine -recommended polling time: ( 23) minutes. - -SMART Attributes Data Structure revision number: 16 -Vendor Specific SMART Attributes with Thresholds: -ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE WHEN_FAILED RAW_VALUE - 1 Raw_Read_Error_Rate 0x000b 100 100 050 Pre-fail - 0 - 2 Throughput_Performance 0x0005 100 100 050 Pre-fail - 0 - 3 Spin_Up_Time 0x0027 100 100 001 Pre-fail - 910 - 4 Start_Stop_Count 0x0032 100 100 000 Old_age - 18 - 5 Reallocated_Sector_Ct 0x0033 100 100 050 Pre-fail - 0 - 7 Seek_Error_Rate 0x000b 100 100 050 Pre-fail - 0 - 8 Seek_Time_Performance 0x0005 100 100 050 Pre-fail - 0 - 9 Power_On_Hours 0x0032 100 100 000 Old_age - 9 - 10 Spin_Retry_Count 0x0033 100 100 030 Pre-fail - 0 - 12 Power_Cycle_Count 0x0032 100 100 000 Old_age - 18 -192 Power-Off_Retract_Count 0x0032 100 100 000 Old_age - 6 -193 Load_Cycle_Count 0x0032 100 100 000 Old_age - 437 -196 Reallocated_Event_Count 0x0032 100 100 000 Old_age - 0 -197 Current_Pending_Sector 0x0032 100 100 000 Old_age - 0 -198 Offline_Uncorrectable 0x0030 100 100 000 Old_age - 0 -199 UDMA_CRC_Error_Count 0x0032 200 200 000 Old_age - 0 -220 Disk_Shift 0x0002 100 100 000 Old_age - 4250 -222 Loaded_Hours 0x0032 100 100 000 Old_age - 4 -223 Load_Retry_Count 0x0032 100 100 000 Old_age - 0 -224 Load_Friction 0x0022 100 100 000 Old_age - 0 -226 Load-in_Time 0x0026 100 100 000 Old_age - 590 -240 Unknown_Attribute 0x0001 100 100 001 Pre-fail - 0 - -SMART Error Log Version: 1 -No Errors Logged - -SMART Self-test log, version number 1 -Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error -# 1 Extended off-line Completed 00% 4 -# 2 Short captive Completed 00% 0 -# 3 Short off-line Completed 00% 0 diff --git a/www/examples/TOSHIBA-MK6021GAS.txt b/www/examples/TOSHIBA-MK6021GAS.txt deleted file mode 100644 index 776cb3dce..000000000 --- a/www/examples/TOSHIBA-MK6021GAS.txt +++ /dev/null @@ -1,74 +0,0 @@ -smartctl version 5.1-7 Copyright (C) 2002 Bruce Allen -Home page is http://smartmontools.sourceforge.net/ - -=== START OF INFORMATION SECTION === -Device Model: TOSHIBA MK6021GAS -Serial Number: Y2MJ1530T -Firmware Version: GA023A -ATA Version is: 5 -ATA Standard is: Unrecognized. Minor revision code: 0x00 -Local Time is: Mon Feb 17 09:37:27 2003 CST -SMART support is: Available - device has SMART capability. -SMART support is: Enabled - -=== START OF READ SMART DATA SECTION === -SMART overall-health self-assessment test result: PASSED - -General SMART Values: -Off-line data collection status: (0x00) Offline data collection activity was - never started. -Self-test execution status: ( 0) The previous self-test routine completed - without error or no self-test has ever - been run. -Total time to complete off-line -data collection: ( 587) seconds. -Offline data collection -capabilities: (0x1b) SMART execute Offline immediate. - Automatic timer ON/OFF support. - Suspend Offline collection upon new - command. - Offline surface scan supported. - Self-test supported. -SMART capabilities: (0x0003) Saves SMART data before entering - power-saving mode. - Supports SMART auto save timer. -Error logging capability: (0x01) Error logging supported. -Short self-test routine -recommended polling time: ( 2) minutes. -Extended self-test routine -recommended polling time: ( 65) minutes. - -SMART Attributes Data Structure revision number: 16 -Vendor Specific SMART Attributes with Thresholds: -ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE WHEN_FAILED RAW_VALUE - 1 Raw_Read_Error_Rate 0x000b 100 100 050 Pre-fail - 0 - 2 Throughput_Performance 0x0005 100 100 050 Pre-fail - 0 - 3 Spin_Up_Time 0x0027 100 100 001 Pre-fail - 1267 - 4 Start_Stop_Count 0x0032 100 100 000 Old_age - 18 - 5 Reallocated_Sector_Ct 0x0033 100 100 050 Pre-fail - 0 - 7 Seek_Error_Rate 0x000b 100 100 050 Pre-fail - 0 - 8 Seek_Time_Performance 0x0005 100 100 050 Pre-fail - 0 - 9 Power_On_Hours 0x0032 100 100 000 Old_age - 39 - 10 Spin_Retry_Count 0x0033 100 100 030 Pre-fail - 0 - 12 Power_Cycle_Count 0x0032 100 100 000 Old_age - 16 -192 Power-Off_Retract_Count 0x0032 100 100 000 Old_age - 1 -193 Load_Cycle_Count 0x0032 100 100 000 Old_age - 460 -194 Temperature_Celsius 0x0022 100 100 000 Old_age - 40 (Lifetime Min/Max 17/51) -196 Reallocated_Event_Count 0x0032 100 100 000 Old_age - 0 -197 Current_Pending_Sector 0x0032 100 100 000 Old_age - 0 -198 Offline_Uncorrectable 0x0030 100 100 000 Old_age - 0 -199 UDMA_CRC_Error_Count 0x0032 200 200 000 Old_age - 0 -220 Disk_Shift 0x0002 100 100 000 Old_age - 8332 -222 Loaded_Hours 0x0032 100 100 000 Old_age - 30 -223 Load_Retry_Count 0x0032 100 100 000 Old_age - 0 -224 Load_Friction 0x0022 100 100 000 Old_age - 0 -226 Load-in_Time 0x0026 100 100 000 Old_age - 159 -240 Head flying hours 0x0001 100 100 001 Pre-fail - 0 - -SMART Error Log Version: 1 -No Errors Logged - -SMART Self-test log, version number 1 -Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error -# 1 Extended off-line Completed 00% 4 - - diff --git a/www/examples/WD2500JB.txt b/www/examples/WD2500JB.txt deleted file mode 100644 index 04e963a8b..000000000 --- a/www/examples/WD2500JB.txt +++ /dev/null @@ -1,192 +0,0 @@ -smartctl version 5.30 Copyright (C) 2002-4 Bruce Allen -Home page is http://smartmontools.sourceforge.net/ - -=== START OF INFORMATION SECTION === -Device Model: WDC WD2500JB-32EVA0 -Serial Number: WD-WMAEH1156826 -Firmware Version: 15.05R15 -Device is: In smartctl database [for details use: -P show] -ATA Version is: 6 -ATA Standard is: Exact ATA specification draft version not indicated -Local Time is: Fri Jun 25 08:14:16 2004 CDT -SMART support is: Available - device has SMART capability. -SMART support is: Enabled - -=== START OF READ SMART DATA SECTION === -SMART overall-health self-assessment test result: FAILED! -Drive failure expected in less than 24 hours. SAVE ALL DATA. -See vendor-specific Attribute list for failed Attributes. - -General SMART Values: -Offline data collection status: (0x84) Offline data collection activity was - suspended by an interrupting command from host. - Auto Offline Data Collection: Enabled. -Self-test execution status: ( 73) The previous self-test completed having - a test element that failed and the test - element that failed is not known. -Total time to complete Offline -data collection: (7608) seconds. -Offline data collection -capabilities: (0x7b) SMART execute Offline immediate. - Auto Offline data collection on/off support. - Suspend Offline collection upon new - command. - Offline surface scan supported. - Self-test supported. - Conveyance Self-test supported. - Selective Self-test supported. -SMART capabilities: (0x0003) Saves SMART data before entering - power-saving mode. - Supports SMART auto save timer. -Error logging capability: (0x01) Error logging supported. - No General Purpose Logging support. -Short self-test routine -recommended polling time: ( 2) minutes. -Extended self-test routine -recommended polling time: ( 95) minutes. -Conveyance self-test routine -recommended polling time: ( 5) minutes. - -SMART Attributes Data Structure revision number: 16 -Vendor Specific SMART Attributes with Thresholds: -ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE - 1 Raw_Read_Error_Rate 0x000b 001 001 051 Pre-fail Always FAILING_NOW 2777 - 3 Spin_Up_Time 0x0007 125 120 021 Pre-fail Always - 4283 - 4 Start_Stop_Count 0x0032 100 100 040 Old_age Always - 133 - 5 Reallocated_Sector_Ct 0x0033 199 199 140 Pre-fail Always - 1 - 7 Seek_Error_Rate 0x000b 200 200 051 Pre-fail Always - 0 - 9 Power_On_Hours 0x0032 092 092 000 Old_age Always - 6545 - 10 Spin_Retry_Count 0x0013 100 100 051 Pre-fail Always - 0 - 11 Calibration_Retry_Count 0x0013 100 100 051 Pre-fail Always - 0 - 12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 133 -194 Temperature_Celsius 0x0022 128 253 000 Old_age Always - 22 -196 Reallocated_Event_Count 0x0032 199 199 000 Old_age Always - 1 -197 Current_Pending_Sector 0x0012 200 200 000 Old_age Always - 13 -198 Offline_Uncorrectable 0x0012 200 200 000 Old_age Always - 0 -199 UDMA_CRC_Error_Count 0x000a 200 253 000 Old_age Always - 1 -200 Multi_Zone_Error_Rate 0x0009 200 155 051 Pre-fail Offline - 0 - -SMART Error Log Version: 1 -ATA Error Count: 50 (device log contains only the most recent five errors) - CR = Command Register [HEX] - FR = Features Register [HEX] - SC = Sector Count Register [HEX] - SN = Sector Number Register [HEX] - CL = Cylinder Low Register [HEX] - CH = Cylinder High Register [HEX] - DH = Device/Head Register [HEX] - DC = Device Command Register [HEX] - ER = Error register [HEX] - ST = Status register [HEX] -Timestamp = decimal seconds since the previous disk power-on. -Note: timestamp "wraps" after 2^32 msec = 49.710 days. - -Error 50 occurred at disk power-on lifetime: 1082 hours - When the command that caused the error occurred, the device was doing SMART Offline or Self-test. - - After command completion occurred, registers were: - ER ST SC SN CL CH DH - -- -- -- -- -- -- -- - 40 51 07 82 a9 ee e0 Error: - - Commands leading to the command that caused the error were: - CR FR SC SN CL CH DH DC Timestamp Command/Feature_Name - -- -- -- -- -- -- -- -- --------- -------------------- - 00 00 25 00 00 07 00 00 2825901.100 NOP [Abort queued commands] - 03 00 82 00 00 5f 67 00 2825901.100 CFA REQUEST EXTENDED ERROR CODE - 00 00 25 00 00 01 00 00 2825901.100 NOP [Abort queued commands] - 00 00 25 00 00 08 00 00 2825901.100 NOP [Abort queued commands] - 12 00 ee 00 00 5f a9 00 2825901.100 RECALIBRATE [RET-4] - -Error 49 occurred at disk power-on lifetime: 1082 hours - When the command that caused the error occurred, the device was doing SMART Offline or Self-test. - - After command completion occurred, registers were: - ER ST SC SN CL CH DH - -- -- -- -- -- -- -- - 40 51 07 82 a9 ee e0 Error: - - Commands leading to the command that caused the error were: - CR FR SC SN CL CH DH DC Timestamp Command/Feature_Name - -- -- -- -- -- -- -- -- --------- -------------------- - 00 00 25 00 00 07 00 00 2825899.350 NOP [Abort queued commands] - 12 00 ee 00 00 7f a9 00 2825899.350 RECALIBRATE [RET-4] - 00 00 25 00 00 08 00 00 2825899.350 NOP [Abort queued commands] - 00 00 25 00 00 08 00 00 2825899.350 NOP [Abort queued commands] - 12 00 ee 00 00 5f a9 00 2825899.350 RECALIBRATE [RET-4] - -Error 48 occurred at disk power-on lifetime: 1082 hours - When the command that caused the error occurred, the device was doing SMART Offline or Self-test. - - After command completion occurred, registers were: - ER ST SC SN CL CH DH - -- -- -- -- -- -- -- - 40 51 08 17 a9 ee e0 Error: - - Commands leading to the command that caused the error were: - CR FR SC SN CL CH DH DC Timestamp Command/Feature_Name - -- -- -- -- -- -- -- -- --------- -------------------- - 00 00 25 00 00 08 00 00 2825880.900 NOP [Abort queued commands] - 00 00 d6 00 00 77 ad 00 2825880.900 NOP [Abort queued commands] - 00 00 25 00 00 08 00 00 2825880.900 NOP [Abort queued commands] - 00 00 d0 00 00 5f 5c 00 2825880.900 NOP [Abort queued commands] - 00 00 35 00 00 08 00 00 2825880.900 NOP [Abort queued commands] - -Error 47 occurred at disk power-on lifetime: 1082 hours - When the command that caused the error occurred, the device was doing SMART Offline or Self-test. - - After command completion occurred, registers were: - ER ST SC SN CL CH DH - -- -- -- -- -- -- -- - 40 51 08 17 a9 ee e0 Error: - - Commands leading to the command that caused the error were: - CR FR SC SN CL CH DH DC Timestamp Command/Feature_Name - -- -- -- -- -- -- -- -- --------- -------------------- - 00 00 25 00 00 08 00 00 2825879.000 NOP [Abort queued commands] - 00 00 d6 00 00 77 ad 00 2825879.000 NOP [Abort queued commands] - 00 00 35 00 00 08 00 00 2825879.000 NOP [Abort queued commands] - 00 00 35 00 00 08 00 00 2825879.000 NOP [Abort queued commands] - 06 00 8a 00 00 4f 3b 00 2825879.000 [RESERVED] - -Error 46 occurred at disk power-on lifetime: 1082 hours - When the command that caused the error occurred, the device was doing SMART Offline or Self-test. - - After command completion occurred, registers were: - ER ST SC SN CL CH DH - -- -- -- -- -- -- -- - 40 51 08 c5 a8 ee e0 Error: - - Commands leading to the command that caused the error were: - CR FR SC SN CL CH DH DC Timestamp Command/Feature_Name - -- -- -- -- -- -- -- -- --------- -------------------- - 00 00 25 00 00 08 00 00 2825875.250 NOP [Abort queued commands] - 00 00 25 00 00 08 00 00 2825875.250 NOP [Abort queued commands] - 06 00 ba 00 00 f7 66 00 2825875.250 [RESERVED] - 00 00 35 00 00 10 00 00 2825875.250 NOP [Abort queued commands] - 06 00 ba 00 00 1f 66 00 2825875.250 [RESERVED] - -SMART Self-test log structure revision number 1 -Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error -# 1 Short offline Completed: unknown failure 90% 1077 0xfff00000 -# 2 Short offline Completed without error 00% 1053 - -# 3 Short offline Completed without error 00% 1030 - -# 4 Short offline Completed without error 00% 1007 - -# 5 Short offline Completed without error 00% 983 - -# 6 Extended offline Completed without error 00% 961 - -# 7 Short offline Completed without error 00% 938 - -# 8 Short offline Completed without error 00% 914 - -# 9 Short offline Completed without error 00% 891 - -#10 Short offline Completed without error 00% 868 - -#11 Short offline Completed without error 00% 844 - -#12 Short offline Completed without error 00% 821 - -#13 Extended offline Completed without error 00% 799 - -#14 Short offline Completed without error 00% 775 - -#15 Short offline Completed without error 00% 752 - -#16 Short offline Completed without error 00% 728 - -#17 Short offline Completed without error 00% 705 - -#18 Short offline Completed without error 00% 682 - -#19 Short offline Completed without error 00% 659 - -#20 Extended offline Completed without error 00% 637 - -#21 Short offline Completed without error 00% 613 - - diff --git a/www/examples/WD800JD.txt b/www/examples/WD800JD.txt deleted file mode 100644 index 1c69e5f98..000000000 --- a/www/examples/WD800JD.txt +++ /dev/null @@ -1,115 +0,0 @@ -[root@nemo-slave0560 ~]# /net/m0001/root/ballen/sm5/smartctl -a -d sat /dev/sda -smartctl version 5.37 [x86_64-unknown-linux-gnu] Copyright (C) 2002-6 Bruce Allen -Home page is http://smartmontools.sourceforge.net/ - -=== START OF INFORMATION SECTION === -Model Family: Western Digital Caviar SE (Serial ATA) family -Device Model: WDC WD800JD-08LSA0 -Serial Number: WD-WMAM9H167762 -Firmware Version: 07.01D07 -User Capacity: 80,032,038,912 bytes -Device is: In smartctl database [for details use: -P show] -ATA Version is: 7 -ATA Standard is: Exact ATA specification draft version not indicated -Local Time is: Tue Jun 13 07:39:15 2006 CDT -SMART support is: Available - device has SMART capability. -SMART support is: Enabled - -=== START OF READ SMART DATA SECTION === -SMART overall-health self-assessment test result: FAILED! -Drive failure expected in less than 24 hours. SAVE ALL DATA. -See vendor-specific Attribute list for failed Attributes. - -General SMART Values: -Offline data collection status: (0x84) Offline data collection activity - was suspended by an interrupting command from host. - Auto Offline Data Collection: Enabled. -Self-test execution status: ( 73) The previous self-test completed having - a test element that failed and the test - element that failed is not known. -Total time to complete Offline -data collection: (2580) seconds. -Offline data collection -capabilities: (0x7b) SMART execute Offline immediate. - Auto Offline data collection on/off support. - Suspend Offline collection upon new - command. - Offline surface scan supported. - Self-test supported. - Conveyance Self-test supported. - Selective Self-test supported. -SMART capabilities: (0x0003) Saves SMART data before entering - power-saving mode. - Supports SMART auto save timer. -Error logging capability: (0x01) Error logging supported. - General Purpose Logging supported. -Short self-test routine -recommended polling time: ( 2) minutes. -Extended self-test routine -recommended polling time: ( 34) minutes. -Conveyance self-test routine -recommended polling time: ( 5) minutes. - -SMART Attributes Data Structure revision number: 16 -Vendor Specific SMART Attributes with Thresholds: -ID# ATTRIBUTE_NAME FLAGS VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE - 1 Raw_Read_Error_Rate POSR-- 200 200 051 Pre-fail Always - 0 - 3 Spin_Up_Time PO---- 164 164 021 Pre-fail Always - 2775 - 4 Start_Stop_Count -O--CM 100 100 000 Old_age Always - 20 - 5 Reallocated_Sector_Ct PO--CM 129 129 140 Pre-fail Always FAILING_NOW 562 - 7 Seek_Error_Rate POSR-- 200 187 051 Pre-fail Always - 0 - 9 Power_On_Hours -O--CM 099 099 000 Old_age Always - 1211 - 10 Spin_Retry_Count PO--C- 100 253 051 Pre-fail Always - 0 - 11 Calibration_Retry_Count -O--C- 100 253 051 Old_age Always - 0 - 12 Power_Cycle_Count -O--CM 100 100 000 Old_age Always - 20 -190 Temperature_Celsius -O---M 082 037 045 Old_age Always In_the_past 18 -194 Temperature_Celsius -O---M 125 080 000 Old_age Always - 18 -196 Reallocated_Event_Count -O--CM 148 148 000 Old_age Always - 52 -197 Current_Pending_Sector -O--C- 200 200 000 Old_age Always - 0 -198 Offline_Uncorrectable ----C- 200 200 000 Old_age Offline - 0 -199 UDMA_CRC_Error_Count -OSRCM 200 200 000 Old_age Always - 0 -200 Multi_Zone_Error_Rate P--R-- 200 200 051 Pre-fail Offline - 0 - ||||||_ M self-preserving - |||||__ C event count - ||||___ R error rate - |||____ S speed/performance - ||_____ O updated online - |______ P prefailure warning - -SMART Error Log Version: 1 -No Errors Logged - -SMART Self-test log structure revision number 1 -Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error -# 1 Extended offline Completed: unknown failure 90% 1207 - -# 2 Extended offline Completed: unknown failure 90% 1187 - -# 3 Extended offline Completed: unknown failure 90% 1163 - -# 4 Extended offline Completed: unknown failure 90% 1139 - -# 5 Extended offline Completed: unknown failure 90% 1115 - -# 6 Extended offline Completed: unknown failure 90% 1091 - -# 7 Extended offline Completed: unknown failure 90% 1067 - -# 8 Extended offline Completed: unknown failure 90% 1043 - -# 9 Extended offline Completed: unknown failure 90% 1022 - -#10 Extended offline Completed: unknown failure 90% 998 - -#11 Extended offline Completed: unknown failure 90% 974 - -#12 Extended offline Completed without error 00% 943 - -#13 Extended offline Completed without error 00% 919 - -#14 Extended offline Completed without error 00% 895 - -#15 Extended offline Completed without error 00% 875 - -#16 Extended offline Completed without error 00% 857 - -#17 Extended offline Completed without error 00% 833 - -#18 Extended offline Completed without error 00% 809 - -#19 Extended offline Completed without error 00% 785 - -#20 Extended offline Completed without error 00% 761 - -#21 Extended offline Completed without error 00% 737 - - -SMART Selective self-test log data structure revision number 1 - SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS - 1 0 0 Not_testing - 2 0 0 Not_testing - 3 0 0 Not_testing - 4 0 0 Not_testing - 5 0 0 Not_testing -Selective self-test flags (0x0): - After scanning selected spans, do NOT read-scan remainder of disk. -If Selective self-test is pending on power-up, resume after 0 minute delay. diff --git a/www/examples/atapi_cdrw_smt_a.html b/www/examples/atapi_cdrw_smt_a.html deleted file mode 100644 index 3e6cea318..000000000 --- a/www/examples/atapi_cdrw_smt_a.html +++ /dev/null @@ -1,32 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<html> -<head> - <meta http-equiv="content-type" - content="text/html; charset=ISO-8859-1"> - <title>atapi_cdrw_smt_a</title> -</head> -<body> -<span style="font-family: monospace;">smartctl version 5.1-12 Copyright -(C) 2002-3 Bruce Allen</span><br style="font-family: monospace;"> -<span style="font-family: monospace;">Home page is -http://smartmontools.sourceforge.net/</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"> </span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Device: ATAPI -CD-RW 48X16 Version: A.RZ</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Device type: CD/DVD</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Local Time is: Thu May 15 -17:24:44 2003 EST</span><br style="font-family: monospace;"> -<span style="font-family: monospace;">Device does not support SMART</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"> </span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Device does not support Error -Counter logging</span><br style="font-family: monospace;"> -<span style="font-family: monospace;">Device does not support Self Test -logging</span> -</body> -</html> diff --git a/www/examples/ativ_36_smt_a.html b/www/examples/ativ_36_smt_a.html deleted file mode 100644 index c5dc6b2b3..000000000 --- a/www/examples/ativ_36_smt_a.html +++ /dev/null @@ -1,61 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<html> -<head> - <meta http-equiv="content-type" - content="text/html; charset=ISO-8859-1"> - <title>Atlas IV 36 WLS smartmontools output</title> -</head> -<body> -<span style="font-family: monospace;">Device: QUANTUM ATLAS IV 36 -WLS Version: 0A0A </span><br style="font-family: monospace;"> -<span style="font-family: monospace;">Serial number: 363930037828 </span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Local Time is: Sat May 3 -21:20:08 2003 EST </span><br style="font-family: monospace;"> -<span style="font-family: monospace;">Device supports SMART and is -Disabled </span><br style="font-family: monospace;"> -<span style="font-family: monospace;">Temperature Warning Enabled </span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">SMART Sense: Ok! </span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Current Drive -Temperature: 35 C </span><br - style="font-family: monospace;"> -<br style="font-family: monospace;"> -<span style="font-family: monospace;">Error counter log: </span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"> -Errors Corrected Total -Total Correction -Gigabytes Total </span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"> -delay: [rereads/ -errors algorithm -processed uncorrected </span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"> -minor | major rewrites] corrected -invocations [10^9 bytes] errors </span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">read: -65535 -0 -0 -0 -0 -4.295 0 </span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">write: -0 -0 -0 -0 -0 -4.295 0 </span><br - style="font-family: monospace;"> -<br style="font-family: monospace;"> -<span style="font-family: monospace;">Non-medium error -count: 13</span> -</body> -</html> diff --git a/www/examples/bnch_DLT1.html b/www/examples/bnch_DLT1.html deleted file mode 100644 index efa6a3713..000000000 --- a/www/examples/bnch_DLT1.html +++ /dev/null @@ -1,67 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<html> -<head> - <meta http-equiv="content-type" - content="text/html; charset=ISO-8859-1"> - <title>benchmark tape systems DLT1</title> -</head> -<body> -<span style="font-family: monospace;">smartctl version 5.1-11 Copyright -(C) 2002-3 Bruce Allen </span><br style="font-family: monospace;"> -<span style="font-family: monospace;">Home page is </span><a - class="moz-txt-link-freetext" - href="http://smartmontools.sourceforge.net/" - style="font-family: monospace;">http://smartmontools.sourceforge.net/</a><span - style="font-family: monospace;"> </span><br - style="font-family: monospace;"> -<br style="font-family: monospace;"> -<span style="font-family: monospace;">Device: BNCHMARK -DLT1 -Version: 391B </span><br style="font-family: monospace;"> -<span style="font-family: monospace;">Serial number: 0000052369<br> -Device type: tape</span><br style="font-family: monospace;"> -<span style="font-family: monospace;">Local Time is: Sun May 4 -11:53:27 2003 EST </span><br style="font-family: monospace;"> -<span style="font-family: monospace;">device is NOT READY (media -absent, spun down, etc) </span><br style="font-family: monospace;"> -<span style="font-family: monospace;">TapeAlert Supported </span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">TapeAlert: Ok! </span><br - style="font-family: monospace;"> -<br style="font-family: monospace;"> -<span style="font-family: monospace;">Error counter log: </span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"> -Errors Corrected Total -Total Correction -Gigabytes Total </span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"> -delay: [rereads/ -errors algorithm -processed uncorrected </span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"> -minor | major rewrites] corrected -invocations [10^9 bytes] errors </span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">read: -0 -0 -0 -0 -0 -0.000 0 </span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">write: -0 -0 -6 -6 -0 -5.920 0 </span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Warning: device does not support -Self Test Logging</span> -</body> -</html> diff --git a/www/examples/bnch_robot.html b/www/examples/bnch_robot.html deleted file mode 100644 index 5069b9619..000000000 --- a/www/examples/bnch_robot.html +++ /dev/null @@ -1,64 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<html> -<head> - <meta http-equiv="content-type" - content="text/html; charset=ISO-8859-1"> - <title>Benchmark tape systems robot</title> -</head> -<body> -<span style="font-family: monospace;">smartctl version 5.1-11 Copyright -(C) 2002-3 Bruce Allen </span><br style="font-family: monospace;"> -<span style="font-family: monospace;">Home page is </span><a - class="moz-txt-link-freetext" - href="http://smartmontools.sourceforge.net/" - style="font-family: monospace;">http://smartmontools.sourceforge.net/</a><span - style="font-family: monospace;"> </span><br - style="font-family: monospace;"> -<br style="font-family: monospace;"> -<span style="font-family: monospace;">Device: -STK -L20 -Version: 0207 </span><br style="font-family: monospace;"> -<span style="font-family: monospace;">Serial number: LLC02207812<br> -Device type: medium changer</span><br style="font-family: monospace;"> -<span style="font-family: monospace;">Local Time is: Sun May 4 -11:54:39 2003 EST </span><br style="font-family: monospace;"> -<span style="font-family: monospace;">Temperature Warning Disabled or -Not Supported </span><br style="font-family: monospace;"> -<span style="font-family: monospace;">TapeAlert Supported </span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">TapeAlert Errors (C=Critical, -W=Warning, I=Informational): </span><br style="font-family: monospace;"> -<span style="font-family: monospace;">[0x02] W: There is a problem with -the library mechanism. If problem persists, </span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"> call the library supplier -help line. </span><br style="font-family: monospace;"> -<span style="font-family: monospace;">[0x0d] W: There is a potential -problem with the drive ejecting cartridges or </span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"> with the library mechanism -picking a cartridge from a slot. </span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"> 1. No action needs to be -taken at this time. </span><br style="font-family: monospace;"> -<span style="font-family: monospace;"> 2. If the problem persists, -call the library supplier help line. </span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">[0x0e] W: There is a potential -problem with the library mechanism placing a </span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"> cartridge into a slot. </span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"> 1. No action needs to be -taken at this time. </span><br style="font-family: monospace;"> -<span style="font-family: monospace;"> 2. If the problem persists, -call the library supplier help line. </span><br - style="font-family: monospace;"> -<br style="font-family: monospace;"> -<span style="font-family: monospace;">No Error counter log to report </span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Warning: device does not support -Self Test Logging</span> -</body> -</html> diff --git a/www/examples/ddrs_39130_smt_a.html b/www/examples/ddrs_39130_smt_a.html deleted file mode 100644 index e920d71a1..000000000 --- a/www/examples/ddrs_39130_smt_a.html +++ /dev/null @@ -1,82 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<html> -<head> - <meta http-equiv="content-type" - content="text/html; charset=ISO-8859-1"> - <title>ddrs_39130_smt_a.html</title> -</head> -<body> -<span style="font-family: monospace;">smartctl version 5.1-12 Copyright -(C) 2002-3 Bruce Allen</span><br style="font-family: monospace;"> -<span style="font-family: monospace;">Home page is -http://smartmontools.sourceforge.net/</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"> - </span><br style="font-family: monospace;"> -<span style="font-family: monospace;">Device: -IBM -DDRS-39130D Version: DC1B</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Serial number: QE702689</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Device type: disk</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Local Time is: Thu May 15 -16:51:27 2003 EST</span><br style="font-family: monospace;"> -<span style="font-family: monospace;">Device supports SMART and is -Enabled</span><br style="font-family: monospace;"> -<span style="font-family: monospace;">Temperature Warning Disabled or -Not Supported</span><br style="font-family: monospace;"> -<span style="font-family: monospace;">SMART Health Status: OK</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"> - </span><br style="font-family: monospace;"> -<span style="font-family: monospace;">Error counter log:</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"> -Errors Corrected Total -Total Correction -Gigabytes Total</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"> -delay: [rereads/ -errors algorithm -processed uncorrected</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"> -minor | major rewrites] corrected -invocations [10^9 bytes] errors</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">read: -0 -0 -0 -0 -0 -4.295 0</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">write: -0 -0 -0 -4 -4 -4.295 0</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">verify: -0 -0 -0 -0 -0 -0.072 0</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"> - </span><br style="font-family: monospace;"> -<span style="font-family: monospace;">Non-medium error -count: 0</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Device does not support Self Test -logging</span> -</body> -</html> diff --git a/www/examples/hp_c5713a_smt_a.html b/www/examples/hp_c5713a_smt_a.html deleted file mode 100644 index 4c4beea98..000000000 --- a/www/examples/hp_c5713a_smt_a.html +++ /dev/null @@ -1,13 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<html> -<head> - <meta http-equiv="content-type" - content="text/html; charset=ISO-8859-1"> - <title>HP DDS-4 drive smartmontools output</title> -</head> -<body> -<pre wrap="">smartctl version 5.1-11 Copyright (C) 2002-3 Bruce Allen<br>Home page is <a - class="moz-txt-link-freetext" - href="http://smartmontools.sourceforge.net/">http://smartmontools.sourceforge.net/</a><br><br>Device: HP C5713A Version: H910<br>Local Time is: Thu May 1 23:26:38 2003 EEST<br>Temperature Warning Disabled or Not Supported<br>TapeAlert Supported<br>TapeAlert: Ok!<br><br>Error counter log:<br> Errors Corrected Total Total Correction Gigabytes Total<br> delay: [rereads/ errors algorithm processed uncorrected<br> minor | major rewrites] corrected invocations [10^9 bytes] errors<br>read: 0 0 0 2 0 0.000 0<br>write: 0 0 0 0 0 0.000 0<br>Warning: device does not support Self Test Logging</pre> -</body> -</html> diff --git a/www/examples/mam3184_smt_a.html b/www/examples/mam3184_smt_a.html deleted file mode 100644 index b2896462e..000000000 --- a/www/examples/mam3184_smt_a.html +++ /dev/null @@ -1,170 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<html> -<head> - <title>mam3184_smt_a.html</title> - <meta http-equiv="content-type" - content="text/html; charset=ISO-8859-1"> -</head> -<body> -<span style="font-family: monospace;">smartctl version 5.1-12 Copyright -(C) 2002-3 Bruce Allen</span><br style="font-family: monospace;"> -<span style="font-family: monospace;">Home page is -http://smartmontools.sourceforge.net/</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"> </span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Device: FUJITSU -MAM3184MP Version: 0106</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Serial number: UKS0P2300CK0</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Device type: disk</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Local Time is: Thu May 15 -15:35:10 2003 EST</span><br style="font-family: monospace;"> -<span style="font-family: monospace;">Device supports SMART and is -Enabled</span><br style="font-family: monospace;"> -<span style="font-family: monospace;">Temperature Warning Enabled</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">SMART Health Status: OK</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Current Drive -Temperature: 42 C</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Drive Trip -Temperature: 65 C</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Manufactured in week 10 of year -2002</span><br style="font-family: monospace;"> -<span style="font-family: monospace;">Current start stop -count: 280 times</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Recommended start stop -count: 10000 times</span><br style="font-family: monospace;"> -<span style="font-family: monospace;"> </span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Error counter log:</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"> -Errors Corrected Total -Total Correction -Gigabytes Total</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"> -delay: [rereads/ -errors algorithm -processed uncorrected</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"> -minor | major rewrites] corrected -invocations [10^9 bytes] errors</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">read: -0 -0 -0 -0 -0 -510.626 0</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">write: -0 -13 -0 -0 -0 -769.950 0</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"> </span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Non-medium error -count: 855</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"> </span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">SMART Self-test log</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Num -Test -Status -segment LifeTime LBA_first_err [SK ASC ASQ]</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"> -Description -number (hours)</span><br style="font-family: monospace;"> -<span style="font-family: monospace;"># 1 Background -long -Completed -- -980 -- [- - -]</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"># 2 Background short -Completed -- -788 -- [- - -]</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"># 3 Background -long -Completed -- -768 -- [- - -]</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"># 4 Background short -Completed -- -665 -- [- - -]</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"># 5 Background -long -Completed -- -635 -- [- - -]</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"># 6 Foreground -long -Completed -- -635 -- [- - -]</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"># 7 Foreground -long Interrupted (bus reset ?) - -634 -- [- - -]</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"># 8 Foreground -long Interrupted (bus reset ?) - -634 -- [- - -]</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"># 9 Foreground -long Interrupted (bus reset ?) -- -1 -- [- - -]</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">#10 Foreground short -Completed -- -1 -- [- - -]</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">#11 Background short -Completed -- -1 -- [- - -]</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"> </span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Long (extended) Self Test -duration: 837 seconds [13.9 minutes]</span><br> -<tt><br> -</tt> -</body> -</html> diff --git a/www/examples/mam3184_smt_health.html b/www/examples/mam3184_smt_health.html deleted file mode 100644 index 37a41fb18..000000000 --- a/www/examples/mam3184_smt_health.html +++ /dev/null @@ -1,35 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<html> -<head> - <title>mam3184_smt_health.html</title> - <meta http-equiv="content-type" - content="text/html; charset=ISO-8859-1"> -</head> -<body> -<span style="font-family: monospace;">smartctl version 5.1-12 Copyright -(C) 2002-3 Bruce Allen</span><br style="font-family: monospace;"> -<span style="font-family: monospace;">Home page is -http://smartmontools.sourceforge.net/</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"> </span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">SMART Health Status: FAILURE -PREDICTION THRESHOLD EXCEEDED (FALSE) [asc=5d,ascq=ff]</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Current Drive -Temperature: 42 C</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Drive Trip -Temperature: 65 C</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Manufactured in week 10 of year -2002</span><br style="font-family: monospace;"> -<span style="font-family: monospace;">Current start stop -count: 280 times</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Recommended start stop -count: 10000 times</span><br> -<tt><br> -</tt> -</body> -</html> diff --git a/www/examples/map3735_smt_a.html b/www/examples/map3735_smt_a.html deleted file mode 100644 index 928904f1b..000000000 --- a/www/examples/map3735_smt_a.html +++ /dev/null @@ -1,86 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<html> -<head> - <meta http-equiv="content-type" - content="text/html; charset=ISO-8859-1"> - <title>Fujitsu MAP 3735 smartmontools output</title> -</head> -<body> -<span style="font-family: monospace;">smartctl version 5.1-10 Copyright -(C) 2002-3 Bruce Allen </span><br style="font-family: monospace;"> -<span style="font-family: monospace;">Home page is </span><a - class="moz-txt-link-freetext" - href="http://smartmontools.sourceforge.net/" - style="font-family: monospace;">http://smartmontools.sourceforge.net/</a><span - style="font-family: monospace;"> </span><br - style="font-family: monospace;"> -<br style="font-family: monospace;"> -<span style="font-family: monospace;">Device: FUJITSU -MAP3735NP Version: 0105 </span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Serial number: UPG0P2A00491 </span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Local Time is: Sat May 3 -21:22:09 2003 EST </span><br style="font-family: monospace;"> -<span style="font-family: monospace;">Device supports SMART and is -Disabled </span><br style="font-family: monospace;"> -<span style="font-family: monospace;">Temperature Warning Disabled or -Not Supported </span><br style="font-family: monospace;"> -<span style="font-family: monospace;">SMART Sense: Ok! </span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Current Drive -Temperature: 39 C </span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Drive Trip -Temperature: 65 C </span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Manufactured in week 40 of year -2002 </span><br style="font-family: monospace;"> -<span style="font-family: monospace;">Current start stop -count: 14 times </span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Recommended start stop -count: 10000 times </span><br style="font-family: monospace;"> -<br style="font-family: monospace;"> -<span style="font-family: monospace;">Error counter log: </span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"> -Errors Corrected Total -Total Correction -Gigabytes Total </span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"> -delay: [rereads/ -errors algorithm -processed uncorrected </span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"> -minor | major rewrites] corrected -invocations [10^9 bytes] errors </span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">read: -0 -0 -0 -0 -0 -810.959 0 </span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">write: -0 -0 -0 -0 -0 -72.300 0 </span><br - style="font-family: monospace;"> -<br style="font-family: monospace;"> -<span style="font-family: monospace;">Non-medium error -count: 27 </span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">No self-tests have been logged </span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Long (extended) Self Test -duration: 2872 seconds [47.9 minutes]</span> -</body> -</html> diff --git a/www/examples/st318451_smt_a.html b/www/examples/st318451_smt_a.html deleted file mode 100644 index fcbadaa88..000000000 --- a/www/examples/st318451_smt_a.html +++ /dev/null @@ -1,185 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<html> -<head> - <title>st318451_smt_a</title> - <meta http-equiv="content-type" - content="text/html; charset=ISO-8859-1"> -</head> -<body> -<span style="font-family: monospace;">smartctl version 5.1-12 Copyright -(C) 2002-3 Bruce Allen</span><br style="font-family: monospace;"> -<span style="font-family: monospace;">Home page is -http://smartmontools.sourceforge.net/</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"> </span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Device: SEAGATE -ST318451LW Version: 0003</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Serial number: -3CC01TTG000071033QEA</span><br style="font-family: monospace;"> -<span style="font-family: monospace;">Device type: disk</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Local Time is: Thu May 15 -17:12:14 2003 EST</span><br style="font-family: monospace;"> -<span style="font-family: monospace;">Device supports SMART and is -Enabled</span><br style="font-family: monospace;"> -<span style="font-family: monospace;">Temperature Warning Enabled</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">SMART Health Status: OK</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Current Drive -Temperature: 34 C</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Drive Trip -Temperature: 65 C</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"> </span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Error counter log:</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"> -Errors Corrected Total -Total Correction -Gigabytes Total</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"> -delay: [rereads/ -errors algorithm -processed uncorrected</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"> -minor | major rewrites] corrected -invocations [10^9 bytes] errors</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">read: -21 -0 -0 -21 -21 -100.431 0</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">write: -0 -0 -0 -0 -0 -0.016 0</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">verify: -0 -0 -0 -0 -0 -0.010 0</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"> </span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Non-medium error -count: 0</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"> </span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">SMART Self-test log</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Num -Test -Status -segment LifeTime LBA_first_err [SK ASC ASQ]</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"> -Description -number (hours)</span><br style="font-family: monospace;"> -<span style="font-family: monospace;"># 1 Background -long -Completed -- -11 -- [- - -]</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"># 2 Background -long -Completed -- -11 -- [- - -]</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"># 3 Background short -Completed -- -11 -- [- - -]</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"># 4 Background short -Completed -- -10 -- [- - -]</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"># 5 Background short -Completed -- -6 -- [- - -]</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"># 6 Background -long -Completed -- -6 -- [- - -]</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"># 7 Background short -Completed -- -6 -- [- - -]</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"># 8 Background short -Completed -- -5 -- [- - -]</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"># 9 Background -long -Completed -- -3 -- [- - -]</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">#10 Background short -Completed -- -3 -- [- - -]</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">#11 Background short -Completed -- -2 -- [- - -]</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">#12 Background short -Completed -- -0 -- [- - -]</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">#13 Background short -Completed -- -0 -- [- - -]</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"> </span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Long (extended) Self Test -duration: 587 seconds [9.8 minutes]</span><br> -<tt><br> -</tt> -</body> -</html> diff --git a/www/examples/st336754_smt_a.html b/www/examples/st336754_smt_a.html deleted file mode 100644 index aaea65b2e..000000000 --- a/www/examples/st336754_smt_a.html +++ /dev/null @@ -1,130 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<html> -<head> - <meta content="text/html; charset=ISO-8859-1" - http-equiv="content-type"> - <title>st336754_smt_a</title> -</head> -<body> -<span style="font-family: monospace;"># smartctl -a /dev/sdb</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">smartctl version 5.37 -[i686-pc-linux-gnu] Copyright (C) 2002-6 Bruce Allen</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Home page is -http://smartmontools.sourceforge.net/</span><br - style="font-family: monospace;"> -<br style="font-family: monospace;"> -<span style="font-family: monospace;">Device: SEAGATE -ST336754SS Version: 0003</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Serial number:</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Device type: disk</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Transport protocol: SAS</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Local Time is: Sun Oct 22 -21:01:48 2006 EDT</span><br style="font-family: monospace;"> -<span style="font-family: monospace;">Device supports SMART and is -Enabled</span><br style="font-family: monospace;"> -<span style="font-family: monospace;">Temperature Warning Enabled</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">SMART Health Status: OK</span><br - style="font-family: monospace;"> -<br style="font-family: monospace;"> -<span style="font-family: monospace;">Current Drive -Temperature: 44 C</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Drive Trip -Temperature: 68 C</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Elements in grown defect list: 0</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Vendor (Seagate) cache information</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"> Blocks sent to initiator = -198739843</span><br style="font-family: monospace;"> -<span style="font-family: monospace;"> Blocks received from -initiator = 0</span><br style="font-family: monospace;"> -<span style="font-family: monospace;"> Blocks read from cache and -sent to initiator = 13554175</span><br style="font-family: monospace;"> -<span style="font-family: monospace;"> Number of read and write -commands whose size <= segment size = 1943196</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"> Number of read and write -commands whose size > segment size = 0</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Vendor (Seagate/Hitachi) factory -information</span><br style="font-family: monospace;"> -<span style="font-family: monospace;"> number of hours powered up -= 634.37</span><br style="font-family: monospace;"> -<span style="font-family: monospace;"> number of minutes until -next internal SMART test = 62</span><br style="font-family: monospace;"> -<br style="font-family: monospace;"> -<span style="font-family: monospace;">Error counter log:</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"> -Errors Corrected -by -Total Correction -Gigabytes Total</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"> -ECC -rereads/ errors -algorithm processed -uncorrected</span><br style="font-family: monospace;"> -<span style="font-family: monospace;"> -fast | delayed rewrites corrected -invocations [10^9 bytes] errors</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">read: -350782 -0 0 -350782 -350782 -141.464 0</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">write: -0 -0 -0 -0 -0 -0.012 0</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">verify: -568 -0 -0 -568 -568 -0.063 0</span><br - style="font-family: monospace;"> -<br style="font-family: monospace;"> -<span style="font-family: monospace;">Non-medium error -count: 0</span><br - style="font-family: monospace;"> -<br style="font-family: monospace;"> -<span style="font-family: monospace;">SMART Self-test log</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;">Num -Test -Status -segment LifeTime LBA_first_err [SK ASC ASQ]</span><br - style="font-family: monospace;"> -<span style="font-family: monospace;"> -Description -number (hours)</span><br style="font-family: monospace;"> -<span style="font-family: monospace;"># 1 Background short -Completed -- -634 -- [- - -]</span><br - style="font-family: monospace;"> -<br style="font-family: monospace;"> -<span style="font-family: monospace;">Long (extended) Self Test -duration: 603 seconds [10.1 minutes]</span> -</body> -</html> diff --git a/www/faq.html b/www/faq.html deleted file mode 100644 index d605a17dc..000000000 --- a/www/faq.html +++ /dev/null @@ -1,775 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> -<head> - <title>smartmontools FAQ Page (last updated $Date: 2008/05/01 11:24:39 $)</title> - <link rev="made" href="mailto:smartmontools-support@sourceforge.net" /> - <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=ISO-8859-1" /> - <meta name="description" content="smartmontools Home Page" /> - <meta name="keywords" content="FAQ, Frequently Asked Questions, Problem, Problems, smartd, smartctl, firmware, S.M.A.R.T., SMART, FreeBSD, Linux, NetBSD, Solaris, Windows, disk, monitor, monitoring" /> - <meta name="DC.creator" content="Bruce Allen" /> - <meta name="DC.contributor" content="Gabriele Pohl" /> - <meta name="DC.rights" scheme="DCTERMS.URI" content="http://www.gnu.org/licenses/gpl-2.0.html" /> -<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /> -<meta http-equiv="content-style-type" content="text/css" /> -<link rel="stylesheet" type="text/css" href="css/style.css" /> -</head> -<body> -<!-- $Id: faq.html,v 1.5 2008/05/01 11:24:39 dipohl Exp $ --> -<div id="header"> - <h1><a id="logo" href="http://smartmontools.sourceforge.net/"><img src="smart_logo.gif" width="105" height="59" border="0" hspace="20" align="middle" name="smartmontools_Logo" alt="S.M.A.R.T. Logo" /></a> - smartmontools FAQ Page</h1> -</div> - -<div id="mainmenu" class="nav"> - <ul> - <li><a accesskey="n" href="index.html">Home</a></li> - <li><a href="doc.html">Documentation</a></li> - <li><a accesskey="d" href="download.html">Download</a></li> - <li class="active first"><a accesskey="f" href="faq.html">FAQ</a></li> - <li><a accesskey="h" href="help.html">Help</a></li> - <li><a accesskey="a" href="about.html">About</a></li> - <li><a accesskey="l" href="links.html">Links</a></li> - <li class="last"><a accesskey="s" href="sphider/search.php">Search</a></li> - </ul> -</div> - -<div class="wide"><h2>Frequently Asked Questions</h2> -<p>If your question is not here, please send an email to <a href="http://lists.sourceforge.net/mailman/listinfo/smartmontools-support"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />smartmontools-support -mailing list</a>.</p> - -<p><em>FAQ-Sections:</em><span class="copyright"> -<a href="#sec-attributes">[Attributes]</a> -<a href="#sec-configuration">[Configuration]</a> -<a href="#sec-protocols">[Protocols, Devices and Controllers]</a> -<a href="#sec-database">[Smartmontools Database]</a> -<a href="#sec-selftest">[Selftests]</a> -<a href="#sec-os">[Operating System]</a> -<a href="#sec-firmware">[Firmware Issues]</a> -<a href="#sec-distribution">[Distribution]</a> -</span></p> - -<ul class="High"> - <li><a name="sec-attributes"></a><strong>Attributes</strong></li> -</ul> -<ul class="Circle"> - <li><a href="#strange-output">I see some strange output from <tt>smartctl</tt>. What does it mean?</a></li> - <li><a href="#disk-temperature">Why is my disk temperatures reported by <tt>smartd</tt> as 150 Celsius?</a></li> - <li><a href="#temp-seagate">Attribute 194 (Temperature Celsius) behaves strangely on my Seagate disk</a></li> - <li><a href="#age-attribute">My Maxtor/Hitachi/Fujitsu disk is only a few days old, yet <tt>smartctl</tt> reports its age (Attribute 9) as thousands of hours!</a></li> - <li><a href="#age-attributes-maxtor">The power-on timer (Attribute 9 raw value) on my Maxtor disk acts strange.</a></li> - <li><a href="#time-stamps-WD">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.</a></li> - <li><a href="#worst-larger-than-current">The (normalized) WORST Attribute values of my Western Digital -(WD) disk are <strong>larger</strong> than the (normalized) CURRENT Attribute values</a></li> - <li><a href="#attributes-not-recognized">What Attributes does smartmontools not yet recognize?</a></li> -</ul> - -<ul class="High"> - <li><a name="sec-configuration"></a><strong>Configuration</strong></li> -</ul> -<ul class="Circle"> - <li><a href="#fedora-failed">My Fedora Core Linux system displays the startup message: smartd [FAILED]</a></li> -</ul> - -<ul class="High"> - <li><a name="sec-protocols"></a><strong>Protocols, Devices and Controllers</strong></li> -</ul> -<ul class="Circle"> - <li><a href="#testinghelp">Smartmontools for FireWire, USB, and SATA disks/systems</a></li> - <li><a href="#scsi">Smartmontools for SCSI disks and tapes (TapeAlert)</a></li> -</ul> -<ul class="High"> - <li><a name="sec-database"></a><strong>Smartmontools Database</strong></li> -</ul> -<ul class="Circle"> - <li><a href="#FAQ-database">My ATA drive is not in the <tt>smartctl</tt>/<tt>smartd</tt> database. Does this break anything? How do I get it added?</a></li> -</ul> - -<ul class="High"> - <li><a name="sec-selftest"></a><strong>Selftests</strong></li> -</ul> -<ul class="Circle"> - <li><a href="#selftest-failed">My ATA drive is failing its self-tests, but its SMART health status is 'PASS'. What's going on?</a></li> - <li><a href="#corrupt-sectors"><tt>smartd</tt> is warning that my ATA disk has unreadable or uncorrectable or pending sectors. What's going on?</a></li> - <li><a href="#UBCD">Where can I find manufacturer-specific disk-testing utilities?</a></li> -</ul> - -<ul class="High"> - <li><a name="sec-os"></a><strong>Operating System</strong></li> -</ul> -<ul class="Circle"> - <li><a href="#os-requirements">What are the operating system requirements?</a></li> - <li><a href="#FAQ-win-ata-as-scsi">On Windows, <tt>smartctl</tt> aborts -with the message "...SMART_GET_VERSION failed". What is going wrong?</a></li> - <li><a href="#FAQ-win-ioctl">On Windows, <tt>smartctl</tt> prints the -message: "...Log Read failed: Function not implemented". What is going wrong?</a></li> - <li><a href="#block-major-65">I found in syslog: '<span class="code">Can't locate module block-major-65</span>'</a></li> - <li><a href="#FAQ-RAID">Can I monitor disks behind RAID controllers?</a></li> - <li><a href="#bios-setting">My computer's BIOS has a SMART enable/disable setting. What -does it do, and how should I set it?</a></li> -</ul> - -<ul class="High"> - <li><a name="sec-firmware"></a><strong>Firmware Issues</strong></li> -</ul> -<ul class="Circle"> - <li><a href="#ibm-firmware">What's the story on IBM SMART disks?</a></li> - <li><a href="#ata-error-count">What's this <tt>smartctl</tt> message mean?: Warning: ATA error count 9 inconsistent with error log pointer 5</a></li> -</ul> - -<ul class="High"> - <li><a name="sec-distribution"></a><strong>Distribution</strong></li> -</ul> -<ul class="Circle"> - <li><a href="#check-signature">How can I check that the package hasn't been tampered with?</a></li> - <li><a href="#bootable-cd">Is there a bootable standalone CD or floppy that contains smartmontools?</a></li> - <li><a href="#windows">Does it work on Windows?</a></li> - <li><a href="#version-scheme-change">Why did the release version scheme change?</a></li> -</ul> -</div> -<hr /> - -<div> -<!-- Strange output --> -<h3><a name="strange-output"></a>I see some strange output from <tt>smartctl</tt>. What does it mean?</h3> - -<p>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 <a href="https://lists.sourceforge.net/lists/listinfo/smartmontools-support"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " /> -smartmontools-support</a> and we'll help you try and figure it out.</p> -<hr /> - -<!-- Disk temperature --> -<h3><a name="disk-temperature"></a>Why is my disk temperature s reported by <tt>smartd</tt> as 150 Celsius?</h3> - -<p>It's not. Please read the end of the <tt>smartd</tt> man page (NOTES). -For example, in the message: -<br />'<span class="code">Device: /dev/hda, SMART Attribute: 194 Temperature_Celsius changed from 94 to 93</span>'<br /> -the value given is the <em>Normalized</em> not the <em>Raw</em> Attribute value (the -disk temperature in this case is about 22 Celsius). The -<span class="code">-R</span> and <span class="code">-r</span> Directives modify this behavior, so that -the information is printed with the <em>Raw</em> values as well, for example: -<br />'<span class="code">Device: /dev/hda, SMART Attribute: 194 Temperature_Celsius changed from 94 [Raw 22] to 93 [Raw 23]</span>'<br /> -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 -'<span class="code">-v Num,Description</span>' Directives described in the <tt>smartd</tt> -man page. Please see the <tt>smartctl</tt> manual page for further -explanation of the differences between <em>Normalized</em> and <em>Raw</em> Attribute values.</p> -<hr /> - -<!-- Special age attributes --> -<h3><a name="age-attribute"></a>My Maxtor/Hitachi/Fujitsu disk is only a few days old, yet <tt>smartctl</tt> reports its age (Attribute 9) as thousands of hours!</h3> - -<p>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: -<br />'<span class="code">-v 9,minutes</span>'<br/> -option to correctly display hours and minutes.</p> - -<p>Some models of Fujitsu disks use Attribute 9 to store -the power-on disk lifetime in seconds. In that case, use the: -<br />'<span class="code">-v 9,seconds</span>'<br/> -option to correctly display hours, minutes and seconds.</p> -<hr /> - -<!-- Special age attributes Maxtor --> -<h3><a name="age-attributes-maxtor"></a>The power-on timer (Attribute 9 raw value) on my Maxtor disk acts strange.</h3> - -<p>There are three related problems with Maxtor's SMART firmware:</p> - -<ol> -<li>On some Maxtor disks, the raw value of Attribute 9 (Power -On Time) is <em>supposed</em> 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.<br /><br /></li> - -<li>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.<br /><br /></li> - -<li>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.<br /><br /></li> -</ol> -<hr /> - -<!-- Selftests time stamp don't correspond to power-on time --> -<h3><a name="time-stamps-WD"></a>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.</h3> - -<p> -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.</p> - -<p>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:<br /> -Let H = power on hours as shown by Attribute 9 (correct)<br /> -Let M = 60*H (power on minutes, correct)<br /> -Let m = M mod 65536 (incorrect value of power on minutes)<br /> -Let h = m/60 (incorrect value of power on hours, shown in self-test log)</p> -<hr /> - -<!-- Normalized values larger than current values --> -<h3><a name="worst-larger-than-current"></a>The (normalized) WORST Attribute values of my Western Digital -(WD) disk are <strong>larger</strong> than the (normalized) CURRENT Attribute values</h3> -<p>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.</p> -<hr /> - -<!-- Attributes not recognized --> -<h3><a name="attributes-not-recognized"></a>What Attributes does smartmontools not yet recognize?</h3> -<p>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.</p> -<hr /> - -<!-- Operating system requirements --> -<h3><a name="os-requirements">What are the operating system requirements?</a></h3> - -<p>Please see the first section of the -<a href="http://smartmontools.cvs.sourceforge.net/smartmontools/sm5/INSTALL?view=markup"> -INSTALL</a> file.</p> -<hr /> - -<!-- manufacturer-specific disk-testing utilities --> -<h3><a name="UBCD"></a><b>Where can I find manufacturer-specific -disk-testing utilities?</b></h3> - -<p>A good listing of such utilities can be found <a -href="http://www.benchmarkhq.ru/english.html?/be_hdd2.html"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />here</a>. -Unfortunately most of these are for MS operating systems, but most can -be run from a MS-DOS boot disk. -The <a href="http://ubcd.sourceforge.net/"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />UBCD (Ultimate Boot CD)</a> -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 -<a href="faq.html#bootable">containing smartmontools</a>. -</p> - -<p>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 -<a href="https://lists.sourceforge.net/lists/listinfo/smartmontools-support"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />smartmontools-support mailing list</a>.</p> - -<p>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 <em>not</em> 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 -<em>Vendor Specific</em>, 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).</p> -<hr /> - -<!-- Can't locate module block-major-65 --> -<h3><a name="block-major-65"></a>I found in syslog: '<span class="code">Can't locate module block-major-65</span>'</h3> - -<p>When I run <tt>smartd</tt>, the SYSLOG <span class="code">/var/log/messages</span> -contains messages like this: -<br />'<span class="code">smartd: Reading Device /dev/sdv -modprobe: modprobe: Can't locate module block-major-65</span>'</p> - -<p>This is because when <tt>smartd</tt> starts, if there is no -configuration file, it looks for all ATA and SCSI devices to monitor -(matching the pattern <tt>/dev/hd[a-t]</tt> or -<tt>/dev/sd[a-z]</tt>). The log messages appear because your -system doesn't have most of these devices.</p> - -<p>The solution is simple: use the <tt>smartd</tt> configuration file -<tt>/etc/smartd.conf</tt> to specify which devices to monitor.</p> -<hr /> - -<!-- IBM-Firmware --> -<h3><a name="ibm-firmware"></a>What's the story on IBM SMART disks?</h3> - -<p>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 to an IBM Firmware Upgrade that fixes the problem:</p> -<ul> - <li><a href="http://www.geocities.com/dtla_update/"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Geocities Site</a></li> - <li><a href="http://www-3.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-42215"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />IBM Site #1</a></li> - <li><a href="http://www-1.ibm.com/support/docview.wss?uid=psg1MIGR-42215"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />IBM Site #2</a></li> -</ul> -<hr /> - -<!-- Check Signature --> -<h3><a name="check-signature"></a>How can I check that the package hasn't been tampered with?</h3> - -<p>Since the <tt>smartmontools</tt> utilities run as root, you might -be concerned about something harmful being embedded within -them. Starting with release 5.19 of <tt>smartmontools</tt>, 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 -<tt>smartmontools-5.32.tar.gz.asc</tt>. </p> - -Please verify these using the -<ul> -<li><a href="SmartmontoolsSigningKey_2005.txt">Smartmontools GPG Signing Key (current)</a></li> -<li><a href="SmartmontoolsSigningKey.txt">Smartmontools GPG Signing Key (before 2005)</a></li> -</ul> -<hr /> - -<!-- Bootable CD --> -<h3><a name="bootable-cd"></a>Is there a bootable standalone CD or floppy that contains smartmontools?</h3> - -<p>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 <b><tt>-<font size="+2">C</font></tt></b> option of -<b><tt>smartctl</tt></b> ) on disks that can not easily be unmounted, -such as those hosting the Operating System files. Or you can use -this to run <tt>smartctl</tt> on computers that don't use Linux as the -day-to-day operating system.</p> - -<p><a name="bootable"></a>Here is a list of such bootable CDs:</p> -<ul> -<li><a href="http://docs.fedoraproject.org/release-notes/f7/en_US/sn-Live.html"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Fedora Core 7 Live Bootable CD</a></li> -<li><a href="http://www.lnx-bbc.com/"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />LNX-BBC Bootable CD</a></li> -<li><a href="http://www.stresslinux.org/"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Stresslinux Bootable CD</a></li> -<li><a href="http://www.tux.org/pub/people/kent-robotti/looplinux/rip/"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />RIP (Recovery Is Possible) Bootable CD</a></li> -<li><a href="http://www.sysresccd.org/Main_Page"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />SystemRescueCd</a></li> -<li><a href="http://www.gpstudio.com/stux/"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />STUX Bootable CD</a></li> -<li><a href="http://www.knopper.net/knoppix/index-en.html"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Knoppix</a> -(<a href="http://packages.debian.org/testing/utils/smartmontools"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Debian/testing</a> based CD)</li> -<li><a href="http://www.gentoo.org/"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Gentoo Installer LiveCD</a></li> -<li><a href="http://www.grml.org/"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />grml Linux Live-CD</a> -(<a href="http://packages.debian.org/unstable/utils/smartmontools"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Debian/unstable</a> -based CD with many <a href="http://www.grml.org/features/list.html"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />packages</a>, -smartmontools is also included in <a href="http://www.grml.org/download/#small"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />grml-small</a>)</li> -<li><a href="http://smartlinux.sourceforge.net/"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />S.M.A.R.T. Linux</a> -(a bootable FLOPPY containing smartmontools!)</li> -<li><a href="http://www.remote-exploit.org/backtrack.html"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />BackTrack</a> -(<a href="http://www.slackware.org/"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Slackware</a> based CD with Security and Forensics tools)</li> -<li><a href="http://www.inside-security.de/insert_en.html"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />INSERT (Inside Security Rescue Toolkit)</a> -(Knoppix based CD)</li> -<li><a href="http://www.911cd.net/forums/index.php?showtopic=13459"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Smartctl Plugin</a> -for <a href="http://www.nu2.nu/pebuilder/"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />BartPE bootable live windows CD</a></li> -<li>See also note about UBCD <a href="faq.html#UBCD">above</a></li> -</ul> - -<p>Please let me know if there are others, and I will add them to this list.</p> -<hr /> - -<h3><a name="testinghelp"></a>Smartmontools for FireWire, USB, and SATA disks/systems</h3> -<p>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 <em>some</em> 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. Some USB device based on cypress chips support a -proprietary protocol (ATACB) that allow to send raw ATA commands (i.e. -SMART support).</p> - -<p>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. <span class="code">drivers/ide</span>, -<span class="code">drivers/ata</span> or libata -(under <span class="code">drivers/scsi</span>) a -SATA drive will appear as <span class="code">/dev/hd*</span> -or <span class="code">/dev/sd*</span>. 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 '<span class="code">-d sat</span>' or '<span - class="code">-d ata</span>' option on the <tt>smartctl</tt> command line or in the -<tt>/etc/smartd.conf</tt> file. -There may be a hint to add one of those options in the log file when <tt>smartd</tt> is run as a daemon or on -the command line with <tt>smartctl</tt>. -The '<span class="code">-d ata</span>' 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 '<span class="code">-d sat</span>'.</p> - -<p>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 '<span class="code">-d sat</span>' -option instructs <tt>smartctl</tt> -and <tt>smartd</tt> to assume a -SATL is in place and act accordingly. The <tt>smartctl</tt> command can often -detect a SATL and autoconfigure while in smartmontools version 5.37 <tt>smartd</tt> often needs a hint.</p> - -<p>The current USB mass storage specification is based on a version of SCSI -(SPC-2) that can't support SAT. But some chips manufacturers implement -proprietary SCSI commands that allow ATA pass through (similiar like for SAT). -Well known is the cypress chipset, that contains an ATACB proprietary pass through -(for ATA commands passed through SCSI commands) for which -<a href="http://download.cypress.com.edgesuite.net/design_resources/datasheets/contents/cy7c68300c_8.pdf" target="_blank"> -<img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />some -information is publicly available <img src="pics/datei16x16-pdf01.gif" width="16" height="16" border="0" alt="PDF" /></a>. -Smartmontools CVS version support -these cypress chips via the '<tt>-d usbcypress</tt>' option on the smartctl -command line. There is no autodetection at the moment. If you want to know, -wether your device supports it, check your device usb id (most -cypress usb ata bridge got <tt>vid=0x04b4</tt>, <tt>pid=0x6830</tt>) or to try to call <tt>smartctl</tt> -with option '<tt>-d usbcypress</tt>'. If the usb device doesn't support ATACB, smartmontools will abort.</p> -<hr /> - -<h3><a name="scsi"></a>Smartmontools for SCSI disks and tapes (TapeAlert)</h3> - -<p>Smartmontools for SCSI disks and tapes (including medium changers) is -discussed on a separate <a href="smartmontools_scsi.html" target="_blank">page</a>.</p> -<hr /> - -<!-- Disks behind RAID-Controllers --> -<h3><a name="FAQ-RAID"></a>Can I monitor disks behind RAID controllers?</h3> - -<p>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.</p> -<ul> -<li>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.</li> -<li>3ware support on FreeBSD is available since release 5.33, multiple controller and -char device support was added in release 5.36.</li> -<li><span class="marked">3ware 9000 support for Windows was added 2006-09-27, the corresponding 3ware -driver 9.4.0 was released 2006-11-01.</span></li> -<li><span class="marked">HighPoint RocketRAID support for Linux was added 2006-08-25.</span></li> -<li><span class="marked">CCISS (Compaq Smart Array Controller) support for Linux was added 2006-10-09.</span></li> -</ul> - -<p><span class="marked">The recent additions are included in smartmontools release 5.37.</span></p> - -<p>See<b> -<a href="http://smartmontools.cvs.sourceforge.net/smartmontools/sm5/INSTALL?view=markup">INSTALL</a> -</b>file for information about kernel and driver requirements on your platform, -and the <a href="doc.html#man">man pages</a> for controller specific smartmontools options or -directives (<tt>-d 3ware,N</tt>, <tt>-d cciss,N</tt>, <tt>-d hpt,L/M/N</tt>).</p> -<hr /> - -<!-- Windows --> -<h3><a name="windows"></a>Does it work on Windows?</h3> - -<p>Yes, finally it does. A windows port of <tt>smartctl</tt> 5.26 by -<a href="http://sourceforge.net/users/chrfranke/">Christian Franke</a> -was first checked in 2004/02/23 on CVS branch -<a href="http://smartmontools.cvs.sourceforge.net/smartmontools/sm5/?pathrev=RELEASE_5_26_WIN32_BRANCH"> -RELEASE_5_26_WIN32_BRANCH</a> and has been merged to the CVS trunk later.</p> - -<p>The <a href="http://www.cygwin.com/"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Cygwin</a> environment can be -used to built both Cygwin and Windows (using <a href="http://www.mingw.org/"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />MinGW</a>) -versions of <tt>smartctl</tt> and <tt>smartd</tt>. -Installation instructions for binary distributions can be found -<a href="download.html#CygwinInstall">here for Cygwin</a> and <a href="download.html#WindowsInstall">here for Windows</a>.</p> -<hr /> - -<!-- Change of version scheme --> -<h3><a name="version-scheme-change"></a>Why did the release version scheme change?</h3> - -<p>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:</p> -<pre> -5.0-1, -5.0-2, -..., -5.0-45, -5.1-1, -..., -5.1-18, -5.19, -5.20, -... -</pre> -<hr /> - -<!-- Add drive to database --> -<h3><a name="FAQ-database"></a>My ATA drive is not in the <tt>smartctl</tt>/<tt>smartd</tt> database. Does this break anything? How do I get it added?</h3> -<p> If your drive is not in the database, then the - <i>names</i> of the Attributes (displayed in the <tt>ATTRIBUTE_NAME</tt> column of - <tt>smartctl -A /dev/hd?</tt>) and the <i>format</i> of the the raw Attribute - values shown in the <tt>RAW_VALUE</tt> column may be incorrect. This - is mostly cosmetic: the essential drive health monitoring/testing - functionality of <b>smartmontools</b> does <i>not</i> depend upon the - database. -</p> - -<p><b>If your drive is not in the database, pleaes check the <a - href="http://sourceforge.net/project/showfiles.php?group_id=64297">sourceforge project page</a> - 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.</b></p> - -<p><b> If your drive is not in the database of the current release,</b> - to have it added to the database, first use the command:<br/> - <span class="code">smartctl -t short /dev/hd?</span><br/> 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:<br/> <span class="code">smartctl -a /dev/hd?</span><br/> - to <a - href="https://lists.sourceforge.net/lists/listinfo/smartmontools-database">smartmontools-database</a> - 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.</p> - -<p>If you need to use any of the vendor-specific display options - (<tt>-v</tt> options) with the drive, or if any of the Attributes are - behaving strangely, please include that information as well.</p> -<hr /> - -<!-- Selftest failed but status is 'PASS' --> -<h3><a name="selftest-failed"></a>My ATA drive is failing its self-tests, but its SMART health status is 'PASS'. What's going on?</h3> - -<p>If your ATA drive supports self-tests, you should run them on a -regular basis, for example one per week: -<br/><span class="code">smartctl -t long /dev/hd?</span><br/> -After the test has completed, you should examine the results with: -<br/><span class="code">smartctl -l selftest /dev/hd?</span></p> - -<p>If the drive fails a self-test, but still has '<tt>PASS</tt>' 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 <em>could</em> 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 <em>not</em> correctly store new data.</p> - -<p>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. <b>A write to an unreadable (corrupted) sector will fix the problem.</b> -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 <a -href="badblockhowto.html" target="_blank">Bad block HOWTO</a> -for instructions about how to force this sector to reallocate (Linux only).</p> - -<p>The disk still has passing health status because the firmware has not -found other signs of trouble, such as a failing servo.</p> - -<p>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 <a -href="badblockhowto.html" target="_blank">Bad block HOWTO</a> -for generic Linux instructions.</p> -<hr /> - -<!-- corrupt sectors --> -<h3><a name="corrupt-sectors"></a><tt>smartd</tt> is warning that my ATA disk has unreadable or uncorrectable or pending sectors. What's going on?</h3> - -<p> -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. -</p> -<p> -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. -</p> -<p> -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. -</p> -<p> -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 <a -href="badblockhowto.html">Bad block HOWTO</a> -for generic Linux instructions. -</p> -<p> -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. -</p> -<hr /> - -<h3><a name="bios-setting"></a>My computer's BIOS has a SMART enable/disable setting. What -does it do, and how should I set it?</h3> - -<p>Some type of BIOS can check the SMART health status of a disk at -bootup: the equivalent of '<span class="code">smartctl -H /dev/hd?</span>'. This one-time check on -bootup is done if the BIOS SMART setting is set to '<tt>ENABLE</tt>', and is -not done if the setting is set to '<tt>DISABLE</tt>'.</p> - -<p>If this one-time check is done, and the disk's health status is found -to be '<tt>FAIL</tt>', then typically the BIOS will display an error message -and refuse to boot the machine.</p> - -<p>For the proper functioning of smartmontools, either BIOS setting may -be used.</p> -<hr /> - -<h3><a name="fedora-failed"></a>My Fedora Core Linux system displays the startup message: smartd [FAILED]</h3> - -<p>Fedora Core is distributed with a <tt>smartd</tt> configuration file -<tt>/etc/smartd.conf</tt> 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.</p> - -<p>The solution: If your system has only SCSI disks, or has IDE disk(s) -on a non-primary controller, just edit <tt>/etc/smartd.conf</tt> to reflect the -correct location of the drive(s). Please also read the <tt>smartd.conf</tt> -man page for additional information.</p> -<hr /> - -<h3><a name="temp-seagate"></a>Attribute 194 (Temperature Celsius) behaves strangely on my Seagate disk</h3> - -<p>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, <em>lower</em> NORMALIZED Attribute values -are farther from failure, and that over time the WORST Attribute -values get <em>larger</em>, not <em>smaller</em> (as with other -Attributes).</p> -<hr /> - -<h3><a name="ata-error-count"></a>What's this <tt>smartctl</tt> message mean?: Warning: ATA error count 9 inconsistent with error log pointer 5</h3> - -<p>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!).</p> -<hr /> - -<h3><a name="FAQ-win-ata-as-scsi"></a>On Windows, <tt>smartctl</tt> aborts -with the message "...SMART_GET_VERSION failed". What is going wrong?</h3> - -<p>A failing -<a href="http://msdn2.microsoft.com/en-us/library/ms803644.aspx"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />SMART_GET_VERSION</a> -call means that the device driver does not -implement the I/O controls (see <a href="faq.html#FAQ-win-ioctl">below</a>) -to access ATA SMART functionality.</p> - -<p>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.</p> -<hr /> - -<h3><a name="FAQ-win-ioctl"></a>On Windows, <tt>smartctl</tt> prints the -message: "...Log Read failed: Function not implemented". What is going wrong?</h3> - -<p>This means that the device driver does not support the command SMART READ LOG. -<span class="marked">The message does not indicate a hard disk problem!</span> -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 <a href="faq.html#bootable">bootable CD</a>.</p> - -<p>To access ATA SMART functionality on Windows, smartmontools uses the -I/O control calls -<a href="http://msdn2.microsoft.com/en-us/library/ms804269.aspx"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />SMART_RCV_DRIVE_DATA</a> and -<a href="http://msdn2.microsoft.com/en-us/library/ms803645.aspx"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />SMART_SEND_DRIVE_CMD</a>. -These calls were available since Win95 OSR2. -An example program from Microsoft can be found -<a href="http://download.microsoft.com/download/winddk/sample3/9x/W9X/EN-US/SmartApp.exe"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />here</a> -(the related KB article 208048 is no longer available).</p> - -<p>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 -<a href="ftp://ftp.heise.de/pub/ct/listings/0207-218.zip"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />here</a>, -a related newsgroup thread is -<a href="http://groups.google.com/group/microsoft.public.development.device.drivers/browse_frm/thread/e9763262823e11d1"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />here</a>.</p> - -<p>Unfortunately, these undocumented functions are not implemented in -most vendor specific ATA device drivers. <tt>Smartctl</tt> prints a -"Function not implemented" message in this case.</p> - -<p>A new I/O control call -<a href="http://msdn2.microsoft.com/en-us/library/ms804551.aspx"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />IOCTL_ATA_PASS_THROUGH</a> -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.</p> - -</div> -<hr style="clear:left" /> -<div align="center"> -Hosted by<br /> -<a href="http://sourceforge.net/"><img style="border:0;width=:88px;height:31px" - src="http://sourceforge.net/sflogo.php?group_id=64297&type=5" alt="SourceForge.net" /></a> - <br /> -<font size="-1">Maintained by: <a href="mailto:smartmontools-support@lists.sourceforge.net">Gabriele Pohl</a><br /> -Copyright (C) 2002-8 Bruce Allen, published under <a href="http://www.gnu.org/licenses/gpl-2.0.html#SEC1">GNU GPL</a><br /> -Last update: $Date: 2008/05/01 11:24:39 $</font><br /> -<a href="http://validator.w3.org/checklink?uri=http%3A%2F%2Fsmartmontools.sourceforge.net%2Ffaq.html">W3C Link-Checker</a><br /> -<a href="http://validator.w3.org/check?uri=referer"><img - src="http://www.w3.org/Icons/valid-xhtml10-blue" - alt="Valid XHTML 1.0 Transitional" height="31" width="88" border="0" /></a> -<a href="http://jigsaw.w3.org/css-validator/check/referer"> - <img style="border:0;width:88px;height:31px" - src="http://jigsaw.w3.org/css-validator/images/vcss-blue" - alt="CSS ist valide!" /></a> -</div> - -</body> -</html> \ No newline at end of file diff --git a/www/help.html b/www/help.html deleted file mode 100644 index 4cc65f6e8..000000000 --- a/www/help.html +++ /dev/null @@ -1,164 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> -<head> - <title>smartmontools Help Page (last updated $Date: 2008/04/23 20:22:23 $)</title> - <link rev="made" href="mailto:smartmontools-support@sourceforge.net" /> - <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=ISO-8859-1" /> - <meta name="description" content="smartmontools Home Page" /> - <meta name="keywords" content="S.M.A.R.T., SMART, FreeBSD, Linux, NetBSD, Solaris, Windows, disk, monitor, monitoring" /> - <meta name="DC.creator" content="Bruce Allen" /> - <meta name="DC.contributor" content="Gabriele Pohl" /> - <meta name="DC.rights" scheme="DCTERMS.URI" content="http://www.gnu.org/licenses/gpl-2.0.html" /> - <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /> - <meta http-equiv="content-style-type" content="text/css" /> -<link rel="stylesheet" type="text/css" href="css/style.css" /> -</head> -<body> -<!-- $Id: help.html,v 1.4 2008/04/23 20:22:23 dipohl Exp $ --> -<div id="header"> - <h1><a id="logo" href="http://smartmontools.sourceforge.net/"><img src="smart_logo.gif" width="105" height="59" border="0" hspace="20" align="middle" name="smartmontools_Logo" alt="S.M.A.R.T. Logo" /></a> - smartmontools Help Page</h1> -</div> - -<div id="mainmenu" class="nav"> - <ul> - <li class="first"><a accesskey="n" href="index.html">Home</a></li> - <li><a href="doc.html">Documentation</a></li> - <li><a accesskey="d" href="download.html">Download</a></li> - <li><a accesskey="f" href="faq.html">FAQ</a></li> - <li class="active"><a accesskey="h" href="help.html">Help</a></li> - <li><a accesskey="a" href="about.html">About</a></li> - <li><a accesskey="l" href="links.html">Links</a></li> - <li class="last"><a accesskey="s" href="sphider/search.php">Search</a></li> - </ul> -</div> - -<div id="index"> -<h2>Help needed?</h2> -<ul class="High"> - <li>Get support from the <a href="#mailinglist">mailinglist</a></li> - <li>Difficulties interpreting your <a href="#sampleoutput"><tt>smartctl</tt>output</a>?</li> - <li>Affected by <a href="#PROBLEMS">serious problems</a>?</li> - <li>Suffer from <a href="#distribution-specific-bugs">distribution-specific bugs</a>?</li> - <li><a href="#downtime">No access to our project pages</a> in sourceforge.net?</li> -</ul> -</div> - -<div class="left-box"> -<h3><a name="mailinglist"></a>Mailinglist</h3> - -<p class="left">If you have problems or need support, first look at the page with answers to -<a href="faq.html">frequently asked questions</a>.</p> - -<p class="left">If you don't find an answer there, the next step is, to search the -<a href="http://sourceforge.net/mailarchive/forum.php?forum=smartmontools-support"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />support mailing list archives</a>. -In the top left corner you will see a search box: use <strong>Mailing List</strong> as the type of search. This tool -works very well.</p> - -<p class="left">Note that from time to time SourceForge has mailing list problems -and you'll get a message telling you that '<span class="marked">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</span>'. If -this happens, you'll have to try again later. Or use the following (and usually up to date) email archives:</p> - -<ul> -<li>Gmane - <a href="http://dir.gmane.org/gmane.linux.utilities.smartmontools"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />smartmontools-support</a></li> -<li>MARC - <a href="http://marc.theaimsgroup.com/?l=smartmontools-support"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />smartmontools-support</a></li> -<li>MARC - <a href="http://marc.theaimsgroup.com/?l=smartmontools-database"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />smartmontools-database</a></li> -</ul> - -<p>If you don't find an answer there, then please send an email to the -<a href="http://lists.sourceforge.net/mailman/listinfo/smartmontools-support"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />smartmontools-support -mailing list</a>. This is a moderated forum: you are not -required to subscribe to the list in order to post your question. You can ask all questions concerning the installation and use of smartmontools. -Or perhaps you want to become a developer, or suggest some new extensions?</p> -<hr /> - -<h3><a name="PROBLEMS"></a>Serious Problem Reports (system lockup, etc.)</h3> -<p>If a serious problem gets reported to us, it gets added to the -<a href="http://smartmontools.cvs.sourceforge.net/smartmontools/sm5/WARNINGS?view=markup"> -WARNINGS</a> file in smartmontools. So far there are only a few problem systems listed.</p> - -<hr /> -<h3><a name="sampleoutput"></a>Example output from smartmontools <tt>smartctl</tt> utility:</h3> - -<ul> - <li><a href="examples/MAXTOR-0.txt">MAXTOR 4K080H4</a> 80 GB 5400 RPM</li> - <li><a href="examples/MAXTOR-1.txt">MAXTOR 4K080H4</a> 80 GB 5400 RPM (has failing SMART status - reallocated sector count)</li> - <li><a href="examples/MAXTOR-2.txt">MAXTOR 4K080H4</a> 80 GB 5400 RPM (has had failing SMART test in the past. Look at the Seek Error Rate)</li> - <li><a href="examples/MAXTOR-7.txt">MAXTOR 4K080H4</a> 80 GB 5400 RPM (has failing SMART status, some failed self-tests)</li> - <li><a href="examples/MAXTOR-8.txt">MAXTOR 4K080H4</a> 80 GB 5400 RPM (has failing SMART status - calibration retry count)</li> - <li><a href="examples/MAXTOR-9.txt">MAXTOR 4K080H4</a> 80 GB 5400 RPM (has failing SMART status - calibration retry count)</li> - <li><a href="examples/MAXTOR-10.txt">MAXTOR 4K080H4</a> 80 GB 5400 RPM (failing self-tests. Note Current_Pending_Sector raw value and Uncorrectable (UNC) read errors)</li> - <li><a href="examples/MAXTOR-3.txt">MAXTOR 6L080J4</a> 80 GB 7200 RPM</li> - <li><a href="examples/MAXTOR-4.txt">MAXTOR 6L080J4</a> 80 GB 7200 RPM</li> - <li><a href="examples/Maxtor-5.txt">Maxtor 98196H8</a> 80 GB 5400 RPM</li> - <li><a href="examples/MAXTOR-6.txt">Maxtor 4R080J0</a> Note: Attribute 9 (lifetime) stored in minutes!</li> - <li><a href="examples/IC35L120AVVA07-0-0.txt">IBM IC35L120AVVA07 (GXP 120 series)</a> 120 GB 7200 RPM (note 3 temperatures)</li> - <li><a href="examples/IC35L120AVVA07-0-1.txt">IBM IC35L120AVVA07 (GXP 120 series)</a> 120 GB 7200 RPM (note 3 temperatures)</li> - <li><a href="examples/IC35L120AVV207-0.txt">IBM IC35L120AVV207 (GXP 180 series)</a> 120 GB 7200 RPM (note 3 temperatures)</li> - <li><a href="examples/IC35L120AVV207-1.txt">IBM IC35L120AVV207 (GXP 180 series)</a> (failing SMART status and self-tests)</li> - <li><a href="examples/HITACHI_DK23BA-20-0.txt">HITACHI_DK23BA-20</a> Hitachi 20 GB Laptop Disk</li> - <li><a href="examples/HITACHI_DK23AA-12B.txt">HITACHI_DK23AA-12B</a> Really sick failing Hitachi Laptop Disk</li> - <li><a href="examples/TOSHIBA-0.txt">TOSHIBA MK2018GAS</a> Toshiba 20 GB Laptop Disk</li> - <li><a href="examples/TOSHIBA-MK6021GAS.txt">TOSHIBA MK6021GAS</a> Toshiba 60 GB Laptop Disk (note 3 temperatures)</li> - <li><a href="examples/FUJITSU1.txt">Fujitsu MHR2040AT</a> Fujitsu Laptop Disk (has failing SMART status - write error count)</li> - <li><a href="examples/FUJITSU_MHR2020AT.txt">Fujitsu MHR2020AT</a> Fujitsu Laptop Disk (has failing SMART status and self-tests)</li> - <li><a href="examples/WD2500JB.txt">Western Digital WD2500JB</a> Western Digital Disk (failing SMART status and self-tests)</li> - <li><a href="examples/WD800JD.txt">Western Digital WD800JD</a> Western Digital Disk (failing SMART status - too may reallocated sectors, and self-tests)</li> - <li><a href="examples/ST910021AS.txt">Seagate Momentus 100GB MacBook Pro Laptop Disk</a>Seagate Momentus 100GB MacBook Pro Laptop Disk (failing SMART status - too may reallocated sectors, and self-tests)</li> -</ul> -<hr /> - -<h3><a name="distribution-specific-bugs"></a>Distribution-specific bug reports</h3> - -<p>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:</p> - -<ul> -<li><a href="https://bugzilla.redhat.com/bugzilla/buglist.cgi?bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=NEEDINFO&bug_status=MODIFIED&bug_status=CLOSED&field0-0-0=product&type0-0-0=substring&value0-0-0=smartctl&field0-0-1=component&type0-0-1=substring&value0-0-1=smartctl&field0-0-2=short_desc&type0-0-2=substring&value0-0-2=smartctl&field0-0-3=status_whiteboard&type0-0-3=substring&value0-0-3=smartctl&field0-0-4=product&type0-0-4=substring&value0-0-4=smartd&field0-0-5=component&type0-0-5=substring&value0-0-5=smartd&field0-0-6=short_desc&type0-0-6=substring&value0-0-6=smartd&field0-0-7=status_whiteboard&type0-0-7=substring&value0-0-7=smartd&field0-0-8=product&type0-0-8=substring&value0-0-8=smartsuite&field0-0-9=component&type0-0-9=substring&value0-0-9=smartsuite&field0-0-10=short_desc&type0-0-10=substring&value0-0-10=smartsuite&field0-0-11=status_whiteboard&type0-0-11=substring&value0-0-11=smartsuite&field0-0-12=product&type0-0-12=substring&value0-0-12=smartmontools&field0-0-13=component&type0-0-13=substring&value0-0-13=smartmontools&field0-0-14=short_desc&type0-0-14=substring&value0-0-14=smartmontools&field0-0-15=status_whiteboard&type0-0-15=substring&value0-0-15=smartmontools"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Redhat/Fedora Bugzilla Database (Linux)</a></li> -<li><a href="http://bugs.debian.org/cgi-bin/pkgreport.cgi?which=pkg&data=smartmontools&archive=no"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Debian Bug Database (Linux)</a></li> -<li><a href="http://bugs.gentoo.org/buglist.cgi?bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&field0-0-0=product&type0-0-0=substring&value0-0-0=smartmontools&field0-0-1=component&type0-0-1=substring&value0-0-1=smartmontools&field0-0-2=short_desc&type0-0-2=substring&value0-0-2=smartmontools&field0-0-3=status_whiteboard&type0-0-3=substring&value0-0-3=smartmontools"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Gentoo Bug Database (Linux)</a></li> -<li><a href="http://www.netbsd.org/cgi-bin/query-pr-list.pl?text=smartctl&state=open&state=feedback&state=analyzed&state=suspended"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />NetBSD smartctl bug database</a></li> -<li><a href="http://www.netbsd.org/cgi-bin/query-pr-list.pl?text=smartd&state=open&state=feedback&state=analyzed&state=suspended"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />NetBSD smartd bug database</a></li> -<li><a href="http://www.netbsd.org/cgi-bin/query-pr-list.pl?text=smartmontools&state=open&state=feedback&state=analyzed&state=suspended"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />NetBSD smartmontools bug database</a></li> -</ul> - -<p>If you can provide additional distribution or OS-specific bug-database links, please send an email to <a href="http://lists.sourceforge.net/mailman/listinfo/smartmontools-support"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />smartmontools-support -mailing list</a>.</p> -<hr /> - -<h3><a name="downtime"></a>No access to smartmontools File Download/Mail List/Mail Archive/CVS?</h3> - -<p>SourceForge is a free service, which supports a very large number of -users and projects. Please check the <a -href="http://sourceforge.net/docman/display_doc.php?docid=2352&group_id=1"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />SourceForge -Site Status Page</a> to see the maintenance schedule and to -learn if SourceForge is experiencing unscheduled system outages or other -problems.</p> -</div> - -<hr style="clear:left" /> -<div align="center"> -Hosted by<br /> -<a href="http://sourceforge.net/"><img style="border:0;width=:88px;height:31px" - src="http://sourceforge.net/sflogo.php?group_id=64297&type=5" alt="SourceForge.net" /></a> - <br /> -<font size="-1">Maintained by: <a href="mailto:smartmontools-support@lists.sourceforge.net">Gabriele Pohl</a><br /> -Copyright (C) 2002-8 Bruce Allen, published under <a href="http://www.gnu.org/licenses/gpl-2.0.html#SEC1">GNU GPL</a><br /> -Last update: $Date: 2008/04/23 20:22:23 $</font><br /> -<a href="http://validator.w3.org/checklink?uri=http%3A%2F%2Fsmartmontools.sourceforge.net%2Fhelp.html">W3C Link-Checker</a><br /> -<a href="http://validator.w3.org/check?uri=referer"><img - src="http://www.w3.org/Icons/valid-xhtml10-blue" - alt="Valid XHTML 1.0 Transitional" height="31" width="88" border="0" /></a> -<a href="http://jigsaw.w3.org/css-validator/check/referer"> - <img style="border:0;width:88px;height:31px" - src="http://jigsaw.w3.org/css-validator/images/vcss-blue" - alt="CSS ist valide!" /></a> -</div> - -</body> -</html> \ No newline at end of file diff --git a/www/index.html b/www/index.html deleted file mode 100644 index 24b5bf4e6..000000000 --- a/www/index.html +++ /dev/null @@ -1,101 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> -<head> - <title>smartmontools Home Page (last updated $Date: 2008/04/29 18:51:55 $)</title> - <link rev="made" href="mailto:smartmontools-support@sourceforge.net" /> - <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=ISO-8859-1" /> - <meta name="description" content="smartmontools Home Page" /> - <meta name="keywords" content="S.M.A.R.T., SMART, FreeBSD, Linux, NetBSD, Solaris, Windows, Cygwin, disk, monitor, monitoring" /> - <meta name="DC.creator" content="Bruce Allen" /> - <meta name="DC.contributor" content="Gabriele Pohl" /> - <meta name="DC.rights" scheme="DCTERMS.URI" content="http://www.gnu.org/licenses/gpl-2.0.html" /> - <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /> - <meta http-equiv="content-style-type" content="text/css" /> - <link rel="stylesheet" type="text/css" href="css/style.css" /> -</head> -<body> -<!-- $Id: index.html,v 1.228 2008/04/29 18:51:55 dipohl Exp $ --> -<div id="header"> - <h1><a id="logo" href="http://smartmontools.sourceforge.net/"> - <img src="smart_logo.gif" width="105" height="59" border="0" hspace="20" align="middle" name="smartmontools_Logo" alt="S.M.A.R.T. Logo" /></a> - smartmontools Home Page</h1></div> - <div id="mainmenu" class="nav"> - <ul> - <li class="active first"><a accesskey="n" href="index.html">Home</a></li> - <li><a href="doc.html">Documentation</a></li> - <li><a accesskey="d" href="download.html">Download</a></li> - <li><a accesskey="f" href="faq.html">FAQ</a></li> - <li><a accesskey="h" href="help.html">Help</a></li> - <li><a accesskey="a" href="about.html">About</a></li> - <li><a accesskey="l" href="links.html">Links</a></li> - <li class="last"><a accesskey="s" href="sphider/search.php">Search</a></li> - </ul> - </div> - <div class="left-header"> - <h2>News</h2> - <ul class="High"> - <li>Thanks to contributor Matthieu Castet, <tt>smartctl</tt> has a new option '<tt>-d usbcypress</tt>'. - So you can address USB devices with cypress chips. The chipset contains an ATACB proprietary - <em>pass through</em> for ATA commands passed through SCSI commands. - Get <strong>current version</strong> from -<a href="download.html#CVSInstall">CVS</a>.</li> - - <li>Bruce Allen has been testing code contributed by Areca engineers, which -provides full smartmontools support on Areca SATA RAID controllers.</li> - - <li>Smartmontools 5.38 (stable) was released 2008/03/10, see - <a href="http://smartmontools.cvs.sourceforge.net/smartmontools/sm5/NEWS?revision=RELEASE_5_38&view=markup">NEWS</a> - and <a href="http://smartmontools.cvs.sourceforge.net/smartmontools/sm5/CHANGELOG?revision=RELEASE_5_38&view=markup">CHANGELOG</a> - for details.</li> - - <li>New <a href="faq.html#FAQ-RAID">RAID controller support</a> - (CCISS and HighPoint on Linux,3ware on Windows) was added.<br /> - <span id="marked">Please report problems (or success!) with the new release to the - <a href="https://lists.sourceforge.net/lists/listinfo/smartmontools-support"> - <img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />smartmontools-support mailing list</a>.</span></li> - - </ul> - </div> - <div><p>The smartmontools package contains two utility programs - (<font color="#3333ff"><b>smartctl</b></font> and <font color="#3333ff"><b>smartd</b></font>) - to control and monitor storage systems using the Self-Monitoring, Analysis and - Reporting Technology System (SMART) built into most modern ATA and SCSI harddisks. - In many cases, these utilities will provide advanced warning of disk degradation and failure.</p> - - <p>Smartmontools supports ATA/ATAPI/SATA-3 to -8 disks and <a href="smartmontools_scsi.html" target="_blank">SCSI</a> - disks and tape devices. It should run on any modern Darwin (Mac OS X), Linux, FreeBSD, NetBSD, OpenBSD, -Solaris, OS/2, Cygwin, QNX, eComStation or <a href="faq.html#windows">Windows</a> system. -Smartmontools can also be run from one of many different <a href="faq.html#bootable">bootable -CDs or floppies</a>.</p> - - <p>If smartmontools is not already installed on your system, then to get it, -go to the <a href="download.html">download section</a>. You will also find installation instructions -for different operating systems and distributions. If you are looking for smartmontools -user guides and tutorials, go to the <a href="doc.html">documentation page</a>. -Scan section <a href="faq.html">Frequently asked Questions</a>, if you have -specific problems or questions. Further support is available via the <a href="help.html">help page</a>.</p> - - <p>Last but not least, the <a href="about.html">about page</a> describes the people -behind smartmontools and something about the history of the project. We also provide -an extended <a href="links.html">link list</a> with additional background information -and links to othermonitoring resources.</p> - - <p>Smartmontools was originally derived from the Linux <a href="http://sourceforge.net/projects/smartsuite/"> -<img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />smartsuite package</a>.</p> - - </div> - <hr style="clear:left" /> - <div align="center">Hosted by<br /><a href="http://sourceforge.net/"> - <img style="border:0;width=:88px;height:31px" src="http://sourceforge.net/sflogo.php?group_id=64297&type=5" alt="SourceForge.net" /></a> <br /> -<font size="-1">Maintained by: <a href="mailto:smartmontools-support@lists.sourceforge.net">Gabriele Pohl</a><br /> -Copyright (C) 2002-8 Bruce Allen, published under <a href="http://www.gnu.org/licenses/gpl-2.0.html#SEC1">GNU GPL</a><br /> -Last update: $Date: 2008/04/29 18:51:55 $<br /></font> -<a href="http://validator.w3.org/checklink?uri=http%3A%2F%2Fsmartmontools.sourceforge.net%2F">W3C Link-Checker</a><br /> -<a href="http://validator.w3.org/check?uri=referer"> -<img src="http://www.w3.org/Icons/valid-xhtml10-blue" alt="Valid XHTML 1.0 Transitional" height="31" width="88" border="0" /></a> -<a href="http://jigsaw.w3.org/css-validator/check/referer"> -<img style="border:0;width:88px;height:31px" src="http://jigsaw.w3.org/css-validator/images/vcss-blue" alt="CSS is valid!" /></a> -</div> -</body> -</html> \ No newline at end of file diff --git a/www/links.html b/www/links.html deleted file mode 100644 index 04efd6646..000000000 --- a/www/links.html +++ /dev/null @@ -1,216 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> -<head> - <title>smartmontools Links Page (last updated $Date: 2008/04/28 20:35:28 $)</title> - <link rev="made" href="mailto:smartmontools-support@sourceforge.net" /> - <meta http-equiv="content-type" content="application/xhtml+xml; charset=ISO-8859-1" /> - <meta name="description" content="smartmontools Links Page" /> - <meta name="keywords" content="Weblinks, Links, S.M.A.R.T., SMART, FreeBSD, Linux, NetBSD, Solaris, Windows, disk, monitor, monitoring" /> -<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /> -<meta http-equiv="content-style-type" content="text/css" /> -<link rel="stylesheet" type="text/css" href="css/style.css" /> -</head> -<body> -<!-- $Id: links.html,v 1.5 2008/04/28 20:35:28 chrfranke Exp $ --> -<div id="header"> - <h1><a id="logo" href="http://smartmontools.sourceforge.net/"><img src="smart_logo.gif" width="105" height="59" border="0" hspace="20" align="middle" name="smartmontools_Logo" alt="S.M.A.R.T. Logo" /></a> - smartmontools Links Page</h1> -</div> - -<div id="mainmenu" class="nav"> - <ul> - <li><a accesskey="n" href="index.html">Home</a></li> - <li><a href="doc.html">Documentation</a></li> - <li><a accesskey="d" href="download.html">Download</a></li> - <li><a accesskey="f" href="faq.html">FAQ</a></li> - <li><a accesskey="h" href="help.html">Help</a></li> - <li><a accesskey="a" href="about.html">About</a></li> - <li class="active"><a accesskey="l" href="links.html">Links</a></li> - <li class="last"><a accesskey="s" href="sphider/search.php">Search</a></li> - </ul> -</div> -<div id="index"> -<h2>Useful and interesting links</h2> -<ul class="High"> -<li><a href="#smartmontools">Smartmontools resources</a></li> -<li><a href="#tools-with-smartmontools">Monitoring tools working with smartmontools</a></li> -<li><a href="#reliability">Studies / Background on reliability</a></li> -<li><a href="#references">References on SMART and ATA/ATAPI standards</a></li> -<li><a href="#scsi">SCSI References</a></li> -<li><a href="#smart-specification">The original SMART specification</a></li> -</ul> -</div> - -<div> -<h3><a name="smartmontools"></a><strong>Smartmontools resources</strong></h3> -<ul class="Square"> - <li><a href="http://smartmontools.sourceforge.net/">Smartmontools Homepage</a></li> - <li><a href="http://sourceforge.net/projects/smartmontools/">SourceForge's Project Page</a></li> - <li><a href="http://smartmontools.cvs.sourceforge.net/smartmontools/">CVS repository</a></li> -</ul> -<hr /> - -<h3><a name="tools-with-smartmontools"></a><strong>Monitoring tools working with smartmontools</strong></h3> -<ul class="Square"> - <li><a href="http://munin.projects.linpro.no/"> - <img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Munin</a></li> -</ul> -<hr /> - -<ul class="High"> - <li><a name="reliability"></a><strong>Studies / Background on reliability</strong></li> -</ul> -<ul class="Circle"> - <li> - <a href="http://www.computerworld.com/action/article.do?command=viewArticleBasic&articleId=9073158"> - <img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Vendor disk - failure rates: Myth or metric?</a>, Mary Brandel in <i>Computerworld</i>, April 2008. - </li> - <li> - <a href="http://www.acmqueue.org/modules.php?name=Content&pa=showpage&pid=506"> - <img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Hard Disk Drives: - The Good, The Bad and The Ugly</a>, Jon Elerath (Network Appliance) in <i>ACM Queue vol 5, no 6</i>, - pg 28-37, September 2007.<br /><br /> - </li> - <li>From the USENIX FAST Conferences - <ul class="Circle"> - <li> - <a href="http://www.usenix.org/events/fast08/tech/full_papers/jiang/jiang_html/index.html"> - <img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Are Disks the - Dominant Contributor for Storage Failures? A Comprehensive Study of Storage Subsystem Failure - Characteristics</a>, Weihang Jiang, Chongfeng Hu, Yuanyuan Zhou, Arkady Kanevsky in <i>6th USENIX - Conference on File and Storage Technologies (FAST '08)</i>, pg 111-125, February 2008. - </li> - <li> - <a href="http://www.usenix.org/events/fast07/tech/schroeder/schroeder_html/index.html"> - <img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " /> - Disk Failures in the Real World: What does an MTTF of 1,000,000 hours mean to you?</a>, - Bianca Schroeder, Garth A. Gibson (Carnegie Mellon University) in<i> 5th USENIX Conference on File and Storage - Technologies (FAST '07)</i>, pg 1-16, February 2007. - </li> - <li> - <a href="http://www.usenix.org/events/fast07/tech/full_papers/pinheiro/pinheiro_html/index.html"> - <img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Failure Trends in - a Large Disk Drive Population</a>, Eduardo Pinheiro, Wolf-Dietrich Weber, Luiz André - Barroso (Google Inc.) in <i>5th USENIX Conference on File and Storage Technologies (FAST '07)</i>, - pg 17-28, February 2007.<br /><br /> - </li> - </ul> - </li> - <li><u>Specifying Reliability in the Disk Drive Industry: No More -MTBF's</u>, Jon G. Elerath (IBM Storage Systems Division)<br /> -<font size="-1">in Proceedings of the IEEE 2000 Annual Reliability and Maintainability -Symposium, pg 194, 0-7803-5848-1/00/$10.00.</font><br /> -<br /></li> -<li>From the Seagate Corporation -<ul class="Circle"> -<!-- <li><a href="http://www.seagate.com/newsinfo/docs/disc/drive_reliability.pdf" target="_blank"> -Estimating Drive Reliability in Desktop Computers and Consumer Electronics Systems</a></li> --> - <li><a href="http://www.seagate.com/docs/pdf/whitepaper/enhanced_smart.pdf" target="_blank"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Enhanced - SMART - Get SMART For Reliability</a></li> - <li><a href="http://www.seagate.com/docs/pdf/whitepaper/smart_u8.pdf" target="_blank"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Playing - it SMART</a> - (<a href="http://www.seagate.com/support/kb/disc/smart.html" target="_blank"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />HTML Version</a>)</li> - <li><a href="http://www.seagate.com/docs/pdf/whitepaper/Enhanced_DST_Tech_Paper.pdf" target="_blank"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Enhanced Drive Self-Test</a><br /> - <br /></li> - </ul> -</li> - -<li>From the <a href="http://cmrr.ucsd.edu/smart/"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />UCSD SMART Project</a> -<ul class="Circle"> - <li><a href="http://cmrr.ucsd.edu/smart/tech_papr/HamerlySmartPaper.pdf"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Bayesian -Approaches to Failure Prediction for Disk Drives</a></li> - <li><a href="http://cmrr.ucsd.edu/smart/tech_papr/SmtPapTransReliFinalWeb.pdf"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Improved -Disk-Drive Failure Warnings</a></li> - </ul> -</li> -</ul> -<hr /> - -<ul class="High"> - <li><a name="references"></a><strong>Useful references on SMART and the ATA/ATAPI standards</strong></li> -</ul> -<ul class="Circle"> - <li><a href="http://smartlinux.sourceforge.net/smart/"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Zbigniew Chlondowski's SMART Information Site.</a> -This includes a useful list of <a href="http://smartlinux.sourceforge.net/smart/attributes.php"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Attributes -and their meanings.</a> -</li> - <li>The <a href="http://www.t13.org"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />homepage of the T13 project</a>.</li> - <li>The <a href="http://www.t13.org/Documents/UploadedDocuments/project/d2008r7b-ATA-3.pdf"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />ATA-3 - revision 7b (working draft)</a> (last specification of SMART Attributes and Thresholds, - removed before final standard was published!)</li> - <li>The <a href="http://www.t13.org/Documents/UploadedDocuments/project/d1153r18-ATA-ATAPI-4.pdf"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />ATA/ATAPI-4 - revision 18 (final draft)</a> (SMART Attributes and Thresholds no longer specified)</li> - <li>The <a href="http://www.t13.org/Documents/UploadedDocuments/project/d1321r3-ATA-ATAPI-5.pdf"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />ATA/ATAPI-5 - revision 3 (final draft)</a> (start with Section 8.41)</li> - <li>The <a href="http://www.t13.org/Documents/UploadedDocuments/project/d1410r3b-ATA-ATAPI-6.pdf"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />ATA/ATAPI-6 -revision 3b (final draft)</a></li> - <li>The <a href="http://www.t13.org/Documents/UploadedDocuments/docs2007/D1532v1r4b-AT_Attachment_with_Packet_Interface_-_7_Volume_1.pdf"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />ATA/ATAPI-7 - revision 4b (final draft) Volume 1</a> (has SMART documentation), - <a href="http://www.t13.org/Documents/UploadedDocuments/docs2007/D1532v2r4b-AT_Attachment_with_Packet_Interface_-_7_Volume_2.pdf"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Volume 2</a>, - <a href="http://www.t13.org/Documents/UploadedDocuments/docs2007/D1532v3r4b-AT_Attachment_with_Packet_Interface_-_7_Volume_3.pdf"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Volume 3</a></li> - <li>The <a href="http://www.t13.org/Documents/UploadedDocuments/docs2006/D1699r3f-ATA8-ACS.pdf"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />ATA/ATAPI-8 - Command Set revision 3f (working draft)</a></li> - <li>The <a href="http://www.t13.org/Documents/UploadedDocuments/docs2005/e05148r0-ACS-SMARTAttributesAnnex.pdf"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />ATA/ATAPI-8 SMART - Attribute Annex (proposal)</a> (now split into 3 parts: - <a href="http://www.t13.org/Documents/UploadedDocuments/docs2005/e05171r0-ACS-SMARTAttributes_Overview.pdf"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Overview</a>, - <a href="http://www.t13.org/Documents/UploadedDocuments/docs2005/e05172r0-ACS-SMARTAttributes_Assignment.pdf"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Assignment</a>, - <a href="http://www.t13.org/Documents/UploadedDocuments/docs2005/e05173r0-ACS-SMARTAttributes_List.pdf"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />List</a>).</li> - <li>See also other subdirectories <a href="ftp://ftp.t10.org/t13/"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />here</a>.</li> -</ul> -<hr /> - -<ul class="High"> - <li><a name="scsi"></a><strong>SCSI References</strong></li> -</ul> -<ul class="Circle"> - <li>The <a href="http://www.t10.org"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />homepage of the T10 project</a>.</li> - <li>The <a href="ftp://ftp.t10.org/t10/drafts/s2/"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />SCSI-2 draft</a> by the T10 project.</li> - <li>See also other subdirectories <a href="ftp://ftp.t10.org/t10/drafts/"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />here</a>.</li> -</ul> -<hr /> - -<ul class="High"> - <li><a name="smart-specification"></a><strong>The original SMART specification is SFF-8035i from the <a href="http://www.sffcommittee.com/ns/"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />Small - Form Factors (SFF) Committee</a>.</strong></li> -</ul> -<ul class="Circle"> - <li> - Here is the SFF <a href="ftp://ftp.seagate.com/sff/INF-8035.TXT"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />"link"</a> - (they have "expired" the document). - </li> - <li> - Version 1.0 of <a href="ftp://ftp3.ds.pg.gda.pl/people/macro/S.M.A.R.T./SFF-8035i.pdf"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />SFF-8035i - "Self-Monitoring, Analysis and Reporting Technology (S.M.A.R.T.)". </a> - </li> - <li> - Revision 2.0 of <a href="ftp://ftp3.ds.pg.gda.pl/people/macro/S.M.A.R.T./8035R2_0.PDF"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />SFF-8035i "Self-Monitoring, Analysis and Reporting Technology (S.M.A.R.T.)". </a> - </li> - <li> - Revision 1.4 of <a href="ftp://ftp3.ds.pg.gda.pl/people/macro/S.M.A.R.T./8055.PDF"><img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />SFF-8055i - "S.M.A.R.T. Applications Guide for the ATA and SCSI Interfaces" </a> - </li> - </ul> -</div> - -<hr style="clear:left" /> -<div align="center"> -Hosted by<br /> -<a href="http://sourceforge.net/"><img style="border:0;width=:88px;height:31px" - src="http://sourceforge.net/sflogo.php?group_id=64297&type=5" alt="SourceForge.net" /></a> - <br /> -<div class="copyright">Maintained by: <a href="mailto:smartmontools-support@lists.sourceforge.net">Gabriele Pohl</a><br /> -Copyright (C) 2002-8 Bruce Allen, published under <a href="http://www.gnu.org/licenses/gpl-2.0.html#SEC1">GNU GPL</a><br /> -Last update: $Date: 2008/04/28 20:35:28 $</div><br /> -<a href="http://validator.w3.org/checklink?uri=http%3A%2F%2Fsmartmontools.sourceforge.net%2Flinks.html">W3C Link-Checker</a><br /> -<a href="http://validator.w3.org/check?uri=referer"><img - src="http://www.w3.org/Icons/valid-xhtml10-blue" - alt="Valid XHTML 1.0 Transitional" height="31" width="88" border="0" /></a> -<a href="http://jigsaw.w3.org/css-validator/check/referer"> - <img style="border:0;width:88px;height:31px" - src="http://jigsaw.w3.org/css-validator/images/vcss-blue" - alt="CSS ist valide!" /></a> -</div> -</body> -</html> diff --git a/www/man5/syslog.conf.5.html b/www/man5/syslog.conf.5.html deleted file mode 100644 index 1163b4e3c..000000000 --- a/www/man5/syslog.conf.5.html +++ /dev/null @@ -1,52 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> -<head> - <title>Link to manual page for syslog.conf(5) (last updated $Date: 2008/04/27 00:00:09 $)</title> - <link rev="made" href="mailto:smartmontools-support@sourceforge.net" /> - <meta http-equiv="content-type" content="application/xhtml+xml; charset=ISO-8859-1" /> - <meta name="description" content="smartmontools link to manpage for syslog.conf(5)" /> - <meta name="keywords" content="syslog.conf(5), manpage, manual, manual page" /> -<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /> -<meta http-equiv="content-style-type" content="text/css" /> -<link rel="stylesheet" type="text/css" href="../css/style.css" /> -</head> -<body> -<!-- $Id: syslog.conf.5.html,v 1.1 2008/04/27 00:00:09 dipohl Exp $ --> -<div id="header"> - <h1><a id="logo" href="http://smartmontools.sourceforge.net/"><img src="../smart_logo.gif" width="105" height="59" border="0" hspace="20" align="middle" name="smartmontools_Logo" alt="S.M.A.R.T. Logo" /></a> - Link to man page for syslog.conf(5)</h1> -</div> - -<div id="mainmenu" class="nav"> - <ul> - <li><a accesskey="n" href="../index.html">Home</a></li> - <li><a href="../doc.html">Documentation</a></li> - <li><a accesskey="d" href="../download.html">Download</a></li> - <li><a accesskey="f" href="../faq.html">FAQ</a></li> - <li><a accesskey="h" href="../help.html">Help</a></li> - <li><a accesskey="a" href="../about.html">About</a></li> - <li class="active"><a accesskey="l" href="../links.html">Links</a></li> - <li class="last"><a accesskey="s" href="../sphider/search.php">Search</a></li> - </ul> -</div> -<h4>Here you find a manual page for <a href="http://www.phpman.info/index.php?parameter=syslog.conf&mode=man">syslog.conf(5)</a>.</h4> -<hr style="clear:left" /> -<div align="center"> -Hosted by<br /> -<a href="http://sourceforge.net/"><img style="border:0;width=:88px;height:31px" - src="http://sourceforge.net/sflogo.php?group_id=64297&type=5" alt="SourceForge.net" /></a> - <br /> -<div class="copyright">Maintained by: <a href="mailto:smartmontools-support@lists.sourceforge.net">Gabriele Pohl</a><br /> -Last update: $Date: 2008/04/27 00:00:09 $</div><br /> -<a href="http://validator.w3.org/checklink?uri=http%3A%2F%2Fsmartmontools.sourceforge.net%2Fman5/syslog.conf.5.html">W3C Link-Checker</a><br /> -<a href="http://validator.w3.org/check?uri=referer"><img - src="http://www.w3.org/Icons/valid-xhtml10-blue" - alt="Valid XHTML 1.0 Transitional" height="31" width="88" border="0" /></a> -<a href="http://jigsaw.w3.org/css-validator/check/referer"> - <img style="border:0;width:88px;height:31px" - src="http://jigsaw.w3.org/css-validator/images/vcss-blue" - alt="CSS is valid!" /></a> -</div> -</body> -</html> diff --git a/www/man7/regex.7.html b/www/man7/regex.7.html deleted file mode 100644 index 186075aa6..000000000 --- a/www/man7/regex.7.html +++ /dev/null @@ -1,52 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> -<head> - <title>Link to manual page for regex(7) (last updated $Date: 2008/04/28 18:27:18 $)</title> - <link rev="made" href="mailto:smartmontools-support@sourceforge.net" /> - <meta http-equiv="content-type" content="application/xhtml+xml; charset=ISO-8859-1" /> - <meta name="description" content="smartmontools link to manpage for regex(7)" /> - <meta name="keywords" content="regex(7), regex, manpage, manual, manual page" /> -<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /> -<meta http-equiv="content-style-type" content="text/css" /> -<link rel="stylesheet" type="text/css" href="../css/style.css" /> -</head> -<body> -<!-- $Id: regex.7.html,v 1.1 2008/04/28 18:27:18 dipohl Exp $ --> -<div id="header"> - <h1><a id="logo" href="http://smartmontools.sourceforge.net/"><img src="../smart_logo.gif" width="105" height="59" border="0" hspace="20" align="middle" name="smartmontools_Logo" alt="S.M.A.R.T. Logo" /></a> - Link to man page for regex(7)</h1> -</div> - -<div id="mainmenu" class="nav"> - <ul> - <li><a accesskey="n" href="../index.html">Home</a></li> - <li><a href="../doc.html">Documentation</a></li> - <li><a accesskey="d" href="../download.html">Download</a></li> - <li><a accesskey="f" href="../faq.html">FAQ</a></li> - <li><a accesskey="h" href="../help.html">Help</a></li> - <li><a accesskey="a" href="../about.html">About</a></li> - <li class="active"><a accesskey="l" href="../links.html">Links</a></li> - <li class="last"><a accesskey="s" href="../sphider/search.php">Search</a></li> - </ul> -</div> -<h4>Here you find a manual page for <a href="http://www.phpman.info/index.php/man/regex/7">regex(7)</a>.</h4> -<hr style="clear:left" /> -<div align="center"> -Hosted by<br /> -<a href="http://sourceforge.net/"><img style="border:0;width=:88px;height:31px" - src="http://sourceforge.net/sflogo.php?group_id=64297&type=5" alt="SourceForge.net" /></a> - <br /> -<div class="copyright">Maintained by: <a href="mailto:smartmontools-support@lists.sourceforge.net">Gabriele Pohl</a><br /> -Last update: $Date: 2008/04/28 18:27:18 $</div><br /> -<a href="http://validator.w3.org/checklink?uri=http%3A%2F%2Fsmartmontools.sourceforge.net%2Fman7/regex.7.html">W3C Link-Checker</a><br /> -<a href="http://validator.w3.org/check?uri=referer"><img - src="http://www.w3.org/Icons/valid-xhtml10-blue" - alt="Valid XHTML 1.0 Transitional" height="31" width="88" border="0" /></a> -<a href="http://jigsaw.w3.org/css-validator/check/referer"> - <img style="border:0;width:88px;height:31px" - src="http://jigsaw.w3.org/css-validator/images/vcss-blue" - alt="CSS is valid!" /></a> -</div> -</body> -</html> diff --git a/www/man8/badblocks.8.html b/www/man8/badblocks.8.html deleted file mode 100644 index 9ad4b5288..000000000 --- a/www/man8/badblocks.8.html +++ /dev/null @@ -1,52 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> -<head> - <title>Link to manual page for badblocks(8) (last updated $Date: 2008/04/28 17:55:54 $)</title> - <link rev="made" href="mailto:smartmontools-support@sourceforge.net" /> - <meta http-equiv="content-type" content="application/xhtml+xml; charset=ISO-8859-1" /> - <meta name="description" content="smartmontools link to manpage for badblocks(8)" /> - <meta name="keywords" content="syslog.conf(5), manpage, manual, manual page" /> -<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /> -<meta http-equiv="content-style-type" content="text/css" /> -<link rel="stylesheet" type="text/css" href="../css/style.css" /> -</head> -<body> -<!-- $Id: badblocks.8.html,v 1.1 2008/04/28 17:55:54 dipohl Exp $ --> -<div id="header"> - <h1><a id="logo" href="http://smartmontools.sourceforge.net/"><img src="../smart_logo.gif" width="105" height="59" border="0" hspace="20" align="middle" name="smartmontools_Logo" alt="S.M.A.R.T. Logo" /></a> - Link to man page for badblocks(8)</h1> -</div> - -<div id="mainmenu" class="nav"> - <ul> - <li><a accesskey="n" href="../index.html">Home</a></li> - <li><a href="../doc.html">Documentation</a></li> - <li><a accesskey="d" href="../download.html">Download</a></li> - <li><a accesskey="f" href="../faq.html">FAQ</a></li> - <li><a accesskey="h" href="../help.html">Help</a></li> - <li><a accesskey="a" href="../about.html">About</a></li> - <li class="active"><a accesskey="l" href="../links.html">Links</a></li> - <li class="last"><a accesskey="s" href="../sphider/search.php">Search</a></li> - </ul> -</div> -<h4>Here you find a manual page for <a href="http://www.phpman.info/index.php?parameter=badblocks&mode=man">badblocks(8)</a>.</h4> -<hr style="clear:left" /> -<div align="center"> -Hosted by<br /> -<a href="http://sourceforge.net/"><img style="border:0;width=:88px;height:31px" - src="http://sourceforge.net/sflogo.php?group_id=64297&type=5" alt="SourceForge.net" /></a> - <br /> -<div class="copyright">Maintained by: <a href="mailto:smartmontools-support@lists.sourceforge.net">Gabriele Pohl</a><br /> -Last update: $Date: 2008/04/28 17:55:54 $</div><br /> -<a href="http://validator.w3.org/checklink?uri=http%3A%2F%2Fsmartmontools.sourceforge.net%2Fman8/badblocks.8.html">W3C Link-Checker</a><br /> -<a href="http://validator.w3.org/check?uri=referer"><img - src="http://www.w3.org/Icons/valid-xhtml10-blue" - alt="Valid XHTML 1.0 Transitional" height="31" width="88" border="0" /></a> -<a href="http://jigsaw.w3.org/css-validator/check/referer"> - <img style="border:0;width:88px;height:31px" - src="http://jigsaw.w3.org/css-validator/images/vcss-blue" - alt="CSS is valid!" /></a> -</div> -</body> -</html> diff --git a/www/man8/ide-smart.8.html b/www/man8/ide-smart.8.html deleted file mode 100644 index 3df4a8d32..000000000 --- a/www/man8/ide-smart.8.html +++ /dev/null @@ -1,52 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> -<head> - <title>Link to manual page for ide-smart(8) (last updated $Date: 2008/04/28 17:43:33 $)</title> - <link rev="made" href="mailto:smartmontools-support@sourceforge.net" /> - <meta http-equiv="content-type" content="application/xhtml+xml; charset=ISO-8859-1" /> - <meta name="description" content="smartmontools link to manpage for ide-smart(8)" /> - <meta name="keywords" content="syslog.conf(5), manpage, manual, manual page" /> -<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /> -<meta http-equiv="content-style-type" content="text/css" /> -<link rel="stylesheet" type="text/css" href="../css/style.css" /> -</head> -<body> -<!-- $Id: ide-smart.8.html,v 1.1 2008/04/28 17:43:33 dipohl Exp $ --> -<div id="header"> - <h1><a id="logo" href="http://smartmontools.sourceforge.net/"><img src="../smart_logo.gif" width="105" height="59" border="0" hspace="20" align="middle" name="smartmontools_Logo" alt="S.M.A.R.T. Logo" /></a> - Link to man page for ide-smart(8)</h1> -</div> - -<div id="mainmenu" class="nav"> - <ul> - <li><a accesskey="n" href="../index.html">Home</a></li> - <li><a href="../doc.html">Documentation</a></li> - <li><a accesskey="d" href="../download.html">Download</a></li> - <li><a accesskey="f" href="../faq.html">FAQ</a></li> - <li><a accesskey="h" href="../help.html">Help</a></li> - <li><a accesskey="a" href="../about.html">About</a></li> - <li class="active"><a accesskey="l" href="../links.html">Links</a></li> - <li class="last"><a accesskey="s" href="../sphider/search.php">Search</a></li> - </ul> -</div> -<h4>Here you find a manual page for <a href="http://www.linuxcertif.com/man/8/ide-smart/">ide-smart(8)</a>.</h4> -<hr style="clear:left" /> -<div align="center"> -Hosted by<br /> -<a href="http://sourceforge.net/"><img style="border:0;width=:88px;height:31px" - src="http://sourceforge.net/sflogo.php?group_id=64297&type=5" alt="SourceForge.net" /></a> - <br /> -<div class="copyright">Maintained by: <a href="mailto:smartmontools-support@lists.sourceforge.net">Gabriele Pohl</a><br /> -Last update: $Date: 2008/04/28 17:43:33 $</div><br /> -<a href="http://validator.w3.org/checklink?uri=http%3A%2F%2Fsmartmontools.sourceforge.net%2Fman8/ide-smart.8.html">W3C Link-Checker</a><br /> -<a href="http://validator.w3.org/check?uri=referer"><img - src="http://www.w3.org/Icons/valid-xhtml10-blue" - alt="Valid XHTML 1.0 Transitional" height="31" width="88" border="0" /></a> -<a href="http://jigsaw.w3.org/css-validator/check/referer"> - <img style="border:0;width:88px;height:31px" - src="http://jigsaw.w3.org/css-validator/images/vcss-blue" - alt="CSS is valid!" /></a> -</div> -</body> -</html> diff --git a/www/man8/syslogd.8.html b/www/man8/syslogd.8.html deleted file mode 100644 index 58025376f..000000000 --- a/www/man8/syslogd.8.html +++ /dev/null @@ -1,52 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> -<head> - <title>Link to manual page for syslogd(8) (last updated $Date: 2008/04/28 18:08:37 $)</title> - <link rev="made" href="mailto:smartmontools-support@sourceforge.net" /> - <meta http-equiv="content-type" content="application/xhtml+xml; charset=ISO-8859-1" /> - <meta name="description" content="smartmontools link to manpage for syslogd(8)" /> - <meta name="keywords" content="syslog.conf(5), manpage, manual, manual page" /> -<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /> -<meta http-equiv="content-style-type" content="text/css" /> -<link rel="stylesheet" type="text/css" href="../css/style.css" /> -</head> -<body> -<!-- $Id: syslogd.8.html,v 1.1 2008/04/28 18:08:37 dipohl Exp $ --> -<div id="header"> - <h1><a id="logo" href="http://smartmontools.sourceforge.net/"><img src="../smart_logo.gif" width="105" height="59" border="0" hspace="20" align="middle" name="smartmontools_Logo" alt="S.M.A.R.T. Logo" /></a> - Link to man page for syslogd(8)</h1> -</div> - -<div id="mainmenu" class="nav"> - <ul> - <li><a accesskey="n" href="../index.html">Home</a></li> - <li><a href="../doc.html">Documentation</a></li> - <li><a accesskey="d" href="../download.html">Download</a></li> - <li><a accesskey="f" href="../faq.html">FAQ</a></li> - <li><a accesskey="h" href="../help.html">Help</a></li> - <li><a accesskey="a" href="../about.html">About</a></li> - <li class="active"><a accesskey="l" href="../links.html">Links</a></li> - <li class="last"><a accesskey="s" href="../sphider/search.php">Search</a></li> - </ul> -</div> -<h4>Here you find a manual page for <a href="http://www.phpman.info/index.php?parameter=syslogd&mode=man">syslogd(8)</a>.</h4> -<hr style="clear:left" /> -<div align="center"> -Hosted by<br /> -<a href="http://sourceforge.net/"><img style="border:0;width=:88px;height:31px" - src="http://sourceforge.net/sflogo.php?group_id=64297&type=5" alt="SourceForge.net" /></a> - <br /> -<div class="copyright">Maintained by: <a href="mailto:smartmontools-support@lists.sourceforge.net">Gabriele Pohl</a><br /> -Last update: $Date: 2008/04/28 18:08:37 $</div><br /> -<a href="http://validator.w3.org/checklink?uri=http%3A%2F%2Fsmartmontools.sourceforge.net%2Fman8/syslogd.8.html">W3C Link-Checker</a><br /> -<a href="http://validator.w3.org/check?uri=referer"><img - src="http://www.w3.org/Icons/valid-xhtml10-blue" - alt="Valid XHTML 1.0 Transitional" height="31" width="88" border="0" /></a> -<a href="http://jigsaw.w3.org/css-validator/check/referer"> - <img style="border:0;width:88px;height:31px" - src="http://jigsaw.w3.org/css-validator/images/vcss-blue" - alt="CSS is valid!" /></a> -</div> -</body> -</html> diff --git a/www/pics/BruceAndCat_2008_04_22-sm.jpg b/www/pics/BruceAndCat_2008_04_22-sm.jpg deleted file mode 100644 index 8492faef84f4686e10e6549d89504f5b2052584c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10863 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 diff --git a/www/pics/BruceAndCat_2008_04_22.jpg b/www/pics/BruceAndCat_2008_04_22.jpg deleted file mode 100644 index 3d2ab6858ccabb9411eb809f2b27bcd79bf7fadd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65654 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 diff --git a/www/pics/chrfranke.jpg b/www/pics/chrfranke.jpg deleted file mode 100644 index b1526fa79783503799311c4dd83490244bc15d24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8118 zcmex=<NpH&0WUXCHwH#VMg|WC4+e(+4;jQ<D>Bm<7<_#hv=|r|I2gd-|7`|m1|~)j z0Fg`}z`_h7Sy@<^S=d<F*ua>blY@<&lbwx?gPVhs3k29WxOup_ct9MGA&ekBOiZlI z%&c7OZ0sNvq~ZSu7z8;OrZH47Gb%AK2{JMZGX6ipAjiPK$ifWr2H3d_3=HfHtZW?2 zESyY?T>p<SI0!H>GBdF<vax^wI|Bm)BNH<Vs~`g#yO5$Ghp>`kV4{doVI!y0#EYV0 z$_rJ3HXamDD*B*mY!aM2`OyC(4AP7YAoCd+VHPm3u(B~Tu`__I*B4}9Vq|7!Vqs-r zhA3cUVrF0wWEE00bQBgzEK~|?TzGKe#)lu+M4dkVzs11A%*enb$SlZU&+zuntvS!1 z?v~s>=jkOOq0O&*BR;7IzsmG!j|otJ65TGO@!^pxcl5;eikQItGoJHq4NErpG3`^x zRwfULoXMI$93D;Z<YwG4FFV-SyLP&rX8RRJ`KgBtj+$+?JhpqY;lX@&KAH3@cUG)1 z*fwd(^5t?77uOu^lwGK}TVwqRxpp=OCWbYZ3(|EJb(VMK$3}St?lhjif1<ujmhZ}Q z6S$uElze>l@MT-i)mbkk{e)gk?d;55GOwY?fBQP^bvw!)oyt$WImM?jZqFq%Q5Lal zr`G3{^HqG3&~on+(Ye}V=xyB+_cbjkT*c~Ev#Go9E{2bfe?PYW$a&EGpVH4S|2FNf zDKa+xr*Ny?{mM!0%Q62Mw6s46Mb>_gkGfgQDP}#fc3#RSdwq5R&iEetj58Z&#f!`h z@M&6_tCVGKr2Ayrzk55*>g%3ke3j95dEJyrhW$0+ITEX{IJao6_`tkSZ}s}uJ)b^{ zT$l9DnDasT+2-SOilrUurLzt_bM0O)nPoj8KH$f!vx-wy0~-}$Ht%UwU%5lm?zq^0 z2IaE%Z?4ZhU4OXLj(P3wytn_}X2^Wmp>X?kjqEn|!%Vz7rMo+(YPsL*UA8tv<v+ut zAp74_e?NY?I@D~+te(F5pHqK7+%_?8Vc5&J*H&DOxb(<s_Esh9lTjjei+j?0bvxHA z^X6jJ-rMo{*^SFt=}Qx&e9}$lmRd~||EH?F{@<tlHOfXSH|$z9r$6!j>hH&lEVl`I z?fK7eU49Aw)FRGz+1#78+2=nh@|W{p{r%9f(_G#TQ_c7nSVa8&$YH@9&v8&v-*x$` zyH6c`CkR;|;#9vcw_HuUY~i8aJ?ErUt)l0=>iqNSKSNA%Nc&tdakU#WK0WR!47E%7 z#BtX2%G7eM01=&amWNXoY!`BxV|Mt=i_=bf%4JH9<lClc<@uj3`poO+Uvea^>)Lw% zJNFL1ZwoY9b!lec%pI%l-@YGmdBP`_bMLlw<ZZcLap&lSDQ?eBa<crm8@PW1!^fJU zYRjxe#;j3Z3$JNuSMQB9QrRc=`udJt9S;gmFfVs(e*egP_1E5*GhS6W-(%AE=v-QP z@rSpkxcGOK`?D(_X)pNOlDdDo)Y+M@v^$ENntP7j^18tPv;RJasjZih#jmQXZJmox z99Hk2`6o1by>H!2uPF*A_0G(AG@(7lchcoD^FX__Z(m<GURiZ$)knXuvl>p<rT;Uy zTWX4D{1UBfK70Ja&!m^H*Qe`j_pOvH>txSa_hPr^)344BH<+yMx?PhyE*c#CW#O46 zm(Tm;sPb!iF>q_9pWu(HyTNrjxOYD9L6b}0Jtl^1Dq=NGy&RR-_4sGlhW6_cQK@Q9 zf71TMZvJ`j%PT|k1);_~8517`Xl+_K`_gnLsfi`?Dm}g0uYW&KI4x`AypZyPQF7K? z!9N+EJ?J;=>}8rA+wS@!JnK{`_of94lg^o~U;Cfo@_oKrp~nwhX-t@GFZ402+u7Rj z)jy9(Z=~`nR<O+r5>nb8SSUSpN8H(^(Up7qUVpGS?p>|%{BNSKRqOQ6y<RG_N`oX# zDhrb)E!v`7U$UX<u60Mi>n)EvuiSYXx4`E1R+YAE>-oMi<!48_#@~P2x9FeH-(}j8 zeY(b)9)+uxnze}=S!ZYei80kK&Qn;yFT@Zv$Kx}r^9l*2ThSBB(=FaQ-o1T$>aB3e z=hsayOj{{*r0njbb60g4rrcgGac^1b^wc%tQ#Y~{c)srBD*BtW;Fg*W+xG~w$?xCx zM$MI4?_2XeB79NfHuKMG6>do|d)G9%m5Zu`RIT+gxv6GfF||8Ju(dtoOK6Bxk@x99 z%};Xa+|p|=X&jbw<@%QQc4s)lmz8gB@!Dobxqi=AS@*Z{WxK?c7X=CRPS)idJ0oT0 z?~~M;nz|_JcF>wBYra@qojN=E-Bc;7H%lv5#u}O&3lHF2H9@iGx#-@Yx;bY`&lhfc zH|3`FB;J2F*3R8w{4Va)E#06W%O{DOM*ALZ&R{Q8x>qK{XQ|9)b24;=nCRZSCuK^v zY0Q5lKKI7jXKWgiR?SYn9C%O5IIsTs-s}Z}FRX6gdcMpw-Qc!y`g+l>1+$)p%UZ6w zxI~iAY*Y4?%$a@jgvFRUD+8|B=rVpX^Y^|zIp5AOXY;0oso$)psPZmUI;iQfK`u;! z^_x|{<gUwCC7yEWSuC~MFpqQR=g+UNv*;GC_ng#r;e>UUM^I3uUCbl5M?vR&<0Fr5 zQgwXq;9GFs<dm(`_8F>&qIQ2()s<d$(n*>@xNgqWx*bby_0Nbs_w{)CRk`qj*=?sn zQ<j=PP`~`TyLq)FQ(5Lx&pf9|^F9b%3O#98YZ&_3uJ4&x*6OU3d0)4zJ~X9);rVTu zXghiJweqG*COa{eymziJ@i5hDN>SbS&RU^uQq9r7Kkegfyf^KOEh_cg+3&7r)(~`4 zdEz_v35T!9T4xzux^z=Hx6y9L<jX5ETN;*4-v0V|+e+h)T|6%rvn$OmJ~qMeyrkuc z4P8;wZfGSQK6W&E`3{SX_Z!VJ7C+^?BywkN?E2iYC31~{&09p)rb^E=e|>1elKH>d zShjdR-899f!T0TM!Cdb1Q+3(jmd$xOZOPK9QmaH3Y$|Kmq<{I;pO5X|CUXYoRb5%P zHuE9F<E?d5Bv!0^X5F#kPLPhCRrTXAU#^gAXJ%^O@t<gse5vLrztxjnWrf{Aq05iv zKAJL5$b)6cU*2PKtEXPs(sci51i$n39zM?SLl<O>p03<_OlmprdhLw;N_Pu3oQ^v4 zX6Hk_CiZ<|+@WcbCWfW#O#7bQ`6?=WFGrJQ=~1=opZ6(V<$1gDs@3g9Pd=XaaVjoL zpEK*umCr|(Gd%y7-0^4Dm#On&ZF)p`H#It(EqL1N_i9(G!j`S;yiRbc+<81Tc9pf$ znJd07Ykiu2W=UU?eXnM*{?)YRM$XJ7|6;Fg{WV)&r$lOP*n}PH7O-keyTX3$#*=3& zGxHW+Hx=Ktu<drwmm|gkwo3Pv`X0FlmCO4pH<&hTJhplc^Q_cGZIhCYq)Yt1dhAWR z+eD9(JfTlFMY(KQV$eGKEz_azN7`de(|wCr%9n^5>qP}`fA&y?J4xnQ+Lc`MOD{rx zhOBaS6G^+B=P_ZcVg~cEMHbe(ZrzC&xgBE~wRPs~=#ErVt?o&2nJWr}_Pw3Zx<XX; zPWSE7^XrsDG%e0$U-Wx>^WcGh-xjGY`gUT0-XfnZOQ-y4R4kXzPGUEY`1CAo+RA_w zvjF!_g_5JC>q3k#Z<2BKn{+!<OGS9g{I~r(m2{Kpa+e1QUAk?2k9XnPI~ue9GvpY4 zdL?W(-|8K&<HT=`4HZuUe^zdrm)f#Wp?A8OP2$0>E8KVe7BC;&)gHt9b-nKOFWY)L zgYKrR^;2DTT{30D;-4P&HC+E0=E_dgF1d4Dcj>!LUAp-f9<NAFKPc0s_Uxx}3=fmm zEys4b1;>vD$2oPE1zl=>`n=)X%Cl9yt5?--oxN0dZ9?ho<A48d{O)cl7AjViYOWhB z!0_H|w$Ac9amOX9oqh8Esa<|maKU<3tF0E-_Ni}wCmx-5;o!6-TiuL~9JpS-pZ{%2 z*8ZE}+F@}s9`{>%C0K>*J-o*|)9L4bhLtLRKe(@besi+OqI*wk^$HCC*cHjjD}D1j zIWudssJ@4<==8Y}a(R58|1(_OkTU0}<sv~oZr{&8gA5LE9GPpmQs`Xr>!VI7A=;Dg zXeJ4-+W8>jVN%4ZR?V4jFUPGpocTR;>$XruMQ^(X;o@(H4$4`?F^G1wm#fT@edamk za?Gsu0M?~DtNVZUNnN>X_%%0`)%}D@Jd4!28JFYNdPT{5bv@bPd$~H+UFxdL&Pkt4 z#ItYCH*sr}GAg%t)2h0q@%l;&`LiyoXI(yh;;ch%<n^^CmnF4Mea+05+R}C^qU%hl zc2dWOsS|V>@~=E<xn|^-oo=>sj=)k)!;^*6raualUgv2)MR@m}N7u5Cm7e^0Jy`C{ zl~t>SGy7YVL^j>;^(${tReC(7CHnS#rne65@)`kJMK3g?9|f-{)GWPwPI0%;QjM?X zHl-W(spjV|-7{g{VTJ0NSI51#^qte2Gl}#3`5$LJ9$7nG(P=sKs^r_WO{bi0R&pwr z?|hy8D{24hbrX#RcN%T_y=I|b<3~fK<-0R(L}=tZ)!HupL{87<!`Er0ajUsiPBgvl za%t2&z~O(oD2L(OKK5A)*ECJ~l<DK6ZJqb4U%h<3#a!o^9`D1-E*k3<A6yWc?<3zE z5VC7cW|#EZjVBeF|4sjE;CbOJch|rC);U=pCY>())>Tu&d%Is@&CieLC0d@HbzGhH zvWZti*VAElUvziE{OP}oGUm-Z-a7eZrB&1_T}SWuBU<7&rt3bE;pWS~{`GLsC8JjP zted$Hy7k;@e+RSY*laY~Y_W*TX`fh7eD2l)PR}QGEe{m^Ppz@F*)OW=ksGthrh(~F z&4;A(R@bK*8=v!9d&ZmZOikOK`We6YZQL>pKF!VYKYTUX_wbVZoKo}G-w&=<@NihT zbhBq#(!Tjo7f(yt&GcAd8q+JvqyO|r!qY1+%^oVq$5^D<YOT*wD?2^YiKSI*Vc^ue zMwjmTT@&74=zk&p`srn=U+!$2p7HX1<_piq6BckPUuKU#9Hr)Srgp=FdNa4&3vFRn zbl<+`sMXa>nE1r%Uo+dwcQyf>uY;@huKr;p_@6;x{-s@|i@$P8ntN}07g1%9=fkDq z@kyYu+M+FJYJEYWqUm9!_dcaZ7&rr!4)A|F_S9?P^iOkTL#>|7n2>DJz2kEirw8-v zuEV$Fw?xmHZuzEpVz!zpN5jnG$3oLpRc;rs-4pp)eV_N;`nPYDb=;yiyvtI$bm-AL z-vtk==M-o$-;yi7dDzP3icdG|PScE1VLRh93v@O`6+~zqzkYqaMZ~<!Ws!@X-dMCC zVgHsXOP}lIEXcF;-}rsMMa0y$XYXW>MoU`SJzMo;+om}hrROd-zV+GFx;kp^EaTSF zSLf<x^2yqjG)>v^XqH!y*a95^)?bxhkFXnFnZ6?A#>UNdnX5yR+^VbJg-r8KVF;Oa zX_7zNz3<OY%Wd6m^knhe=fR)T76m>y9-8D|C~(fnXY10(pC=yJxZ(K%Tg!c>ZRwXo z-6rzhdFxavn7ooX*K_w&;nbDk%7=Gf{<P3;htacl(T8mO7~WXOpJmR?=AEHt=lQPE zey#bl^v7)v&pWT%HH~Y+tvj9`(ru4Z_&9HG;Ir6fqTOpe$Ec_C%6IX5A{I9p<qcW* z+D}i=efze(HuG$xliuuW+0TuG=lqE1s+!X=l|^G^re@#<$4^{;4NTrFpR>yJ&1^GY z-}dU`Pp5Nm?Q|;p;cmBQcJ=-9j8+UcL=JIEvzu71KV%tY(xuXVvd;RcmxAEQFY+-g zrh=Ev7N~mFw4LYEb-UAej(6APC~wo9A6tD@wmo|)yWh}eVto$NSC`HDdb3JcZyt?l zYCfrcpKEHFkN?{6g9;h#TT@PFFF6`|QFW2XqRYB5v4@k-`^~kFaWW0ul^C4oQoyRY zMDx<EytS{y!!PjJ`?x<z(T(`v-5q&r@*|%0-Bl4i$%a}R7Fk@)n;H-@$;s*QE*aO> zb(QvU22XA5B#I-ttA8f{*j~$4Z}~fHfzOZ7V|U9I$?tN^vEbZbTlXia(sPZ_y=$S{ zyfau2*qckpg{EA)Jwe=Uk=>SsHkO)-W@1nH_kLXKd@gk9Gck#Y{y{N2oF+^@)p~yZ z-1W_8yiH`*X#_uevyA7AU$ua%{ED4@F010}wifJW6}*zrdxJelEmbxuKQN-w_KDV~ z>*<!#oIxTS`+b)@2o;(=v%bMHv~$|Cbw+_ZtdwWxe*S)B@}}SX!8cZ%$Pvs;S!wnn z#J+}&qtEv6+L8lzPMtX1#PPQ^zBcA<<HT%JbM>@dr>X_F0(J*$@~#VQcyvV3?8(o# zy9M%VzCGdf^p+Ifd@g;p_|&aSeVt}HT@n%D@Cx!hyZ-uZR$swOol?t}6|4@KK3QzR z<#mdFYi{bRNV81fZTFwO;_mz2S^s9Ho$1z?^+e^nCX4utfT)UJ(U;k7X5PxZEqi(H zy~UH?PRcU+^*vydHH&h_<L1jR7#6seZx_#tIqWkrV!_L7%d%Ord`kWwet-AS61yX( zUV1(_PrtQ^Z(;D$t46h9GGVcrMa(UtYIokM)EBlky)SXuTFP~%$bRq2+GX3WYk6`R z)bD)}y?XA{O}*ivuP=pqo(pX0TC-I_$tCP|;n97YcW7RXQTceGlE?M_n^NCm)2*&W zqFJY;#g>N7oUpreQ<>?@mwjykTdr@G+nl!MqUTA`S<;tZL{5BRtmK-rG_%lEE4Y!9 z>4a9nkB;pvvmdV4H@!Lc%_*ZY$Mb@bE6z1r8f0Bm{yzVaa*l&0i@*|5y_3ZYZ@3xf z>fJu7d!g31_}{e;hg*X@z8wwBIepWub!yryw(!*<UQ3UaOgXv#i|~g341r-DEZlOn zY^K#RSy#<!i*_!JEX$fd-Epa8aO%QKLBA$!SupJ&)5(wAlh4bP9&9#E-RskNGvE5v zwdK#fTAlWWEYv({FT7Q=M`&`&LNRHkHM@UDBrX0YJeBR`t<y8Jr&=6woa-JU_xHL* z;Zcj$54AQje+$;VIn0wfdBLxmRn6XA(Nm5be`NVUrt$vz?fF^LUbjZrM(C|Q(5kBy za%uJbiU-`a>udNnowe1wa(HT|>XoUn+k#JQv=OS!vEq-B`W^J-SIYI+YW+(drPF^O z?VaZJ{@|0ZN(XL>{uPyPS|_5Ek*m8nv6Ll3FgeeH?c{#@w~fiIs_|9nvX`SRcyC<f z+v}O(rsI-bmFFbVm^8WLthB<DC!0f7zA{UkFMI7?u0iqv4$nd@t~((i{7&qzdp;VU zd6wm*&9|`dN=tt3(K}0H@1Fg8^10w&w{<ROa_f0Auewd#sgavIyVNfI>oHH36Sv)8 zhfa7kE!E}7=Q|~5Jyu4FZ~k?g-+%qpCqk83E=v?@zb%pRnt5d{-{n(9_0wO7OcR;- zu=W_!^!nH%@uE#Toz@<mG~?X0)TUQc81%G`9bfqTPGW1x%y%b$Nb>IpTm10OqJmr6 z?$euYh^+b@x|M%#$fT@?spl?>{5kY9PqoZ|GjzgDzYFzod}=$R4O4!7e#$iMu+V&k z9e>0c_~eyx4}Lz9yg5Jh&-|%hK2{zNEov#ZQ(dBETx!j`;&s6!t2q*19=Y-@^bp!) z7uqa0>2&M-o}i!>QNG;{Pi}Li8Xh(bu|F#+_qw}K?Og3~`R#U70x$TSU4FA#!Si(G z!(ErxcXgC8trX&}V`aHtdTq*wCHH54Ju;PN(SF7H(-TELE6kVKYP?7N%3Cx082+@Y zMt9i^O=rFK?VTPJ)G)#3W9M4`p2NO7r)N2;vL9HYv()*Ejf~Odt?`Ox55G$O37NM2 zpM`0Lv^x97V|9N5`O+fRoN(^3R9$d0*HbfB)$K^s@q8a0+ubWAQ+rJpyiyGhh*-8Y zVA2!St!kM$M!#IYX?leR>A6Su=)^?Dd9J**=G|=LdHiwvX3Fi6`V_fkrOEBK7MaI8 zMD)%~y|Z^oRQKHFnI9+3nwGHYOx9v8r%6k9^d8)FfphC5Cnpc~MUBsw$s1*da&7su zOta)Mr{7s0LDq$L&2C*=J@<vDn5MYd&m4=xaoHzywywH*YtGaSnwPXMRc~47$>r6& z`k`|7ii$P-XC}D^7<`{*nyot5Y3b!nU&>Opy61iu)#MJlwCT{Ke);A0nmbvN1f!nD zr>m5Sz74wd@^d8Tf*1ii<sbI_+fU84c0AELchj^5speeVMHxYo9K4N(%{|nPpVc~U zZ*6zL&o$#f(%F^ML#DED$K1QIXU(&$x%Gx2i+0`iNUKR*c|=8MYJO_w))R6G^7}N) z7G27+s+=<?@f(-GPp?ZGCJ8O7eDt4T`EACmf_(@0qi#D|bk5$O5OO>?yZCchxT~Fm z*9rElE0fRu*tq@Iqjk@`mYg#Ap7Ao#^|H$1y&Qoo5pnmft6vx6@=H!y>2vGWfx!F; zb~6N?@3Ok`YEGi6&D^Cjg6C}>SX)nPE!%Kbv^G)pa9(g%pY4ph&B2Kib=CLe7cj=D zYG;b8{B6I?6UudFsTbc=%X|4d9NmLze*MioW;U<QOH|J5%93BJo-FxW`0$8Z$F@7U z`<(2OFY^g~(=*bHysRfOL27&2p{e0KC*O6IneNOEm$||JO~Rl|>B6npdMn#CH~&qG zIbB&H>hiup_tX^LOY^E);-24WY&_QcG&O5paqq;ZX<?dy_noe4)wBoAd%2`3EO^)L z>3Pj(9_+m3zD3XbQcpj(dr9#@&t)bO>DjZp&;4BK_2<a!Nwt1vJ9g*_c>GZRws^~4 z!&za|Vsac${`<btZ0)Ps;@DEJnaf2yUuDi}b=)R$r<_UXa#m=k`UD-lx*M~ykF9!g z@4QvLymHF5LpK&5dp9d+>dw5Kc_Dd~s^RL4a;Lts2GwbYZdQ(7yxFT{vxfGw%5zp< zxn%zBkbCWxxhjh__T<5%y8Av%yB*a3x@Gg?#ZwY5tx||c>r4&)@P&E%ziT|_Z%wyI zx9s@wbXVJ<@A^lpC*)uL{owJ<!=bB6GdyCxDVZI*nzCJ0@pzd1nUD~s{5O1B{-3UT z$xO7&U9&*z-SXSl-!`vnSZ1yK(C6FC(oGy$Ugl;SuRXZ+@^`XML$<heWAKU9zLAY$ z`<;HM8tzk?^S-B4Q|%nflvb4qxraLTi78FVd38iV>6D_KbVUrSO;uvT-Hm4$Rhok? z-!k%Y)BMj6Q*<n=Ja}~}&+gc1Z#=h7pX(#)^KVA@5sO94S$j|3TKI7PbcvKp>z}(k zZ(sR-zpm_2A*YZjW*aw{y<l#b@-MXC#%HU#p<eIYVx~w13DZ{{jL#XEcg-yM&yci! zovhKel)hqa<7D?-?%-w0D>7Jrgf(rM-Bk8Lh~t}tRcWw=!q-Jx{sy^TeBvn}XE^WQ z%)gnJ)t^Sa`E#CUoz2qblln|k7^X8k5tS}jRFy2B?aSFcx9GFZfv#!kL5F4~K5)CP z|Jcj(^%V=NN*>{dR_p$DGKHR=?)GG*!d>5Yuh>@{n7;jZrr8#DUzKMs3~o=1ULoIp z`pvqd92Nf=g7*da2ef>Zt8O?h&T(eJijzwx#LrB<t<HTm^u(20ElMliyG7@1;)=<2 zp53S0Hs_{m#pUaYJks)?`DVzz+@B-0V#S`)%;Q@AzLS>6&T`<+%`&%TU0Ylo{pH}s zpp}vT8T7OkPfh9UDNpnl+Y@_n>zmajzaRQ++jQ*bTfc`pn*z7UUu!ylQRI`@L$3z) z%j=}HO`baTEVW{g_U-s`u(D^K$kAzAZr$a0-Ql+6;_e-<I!-%G;*fT;;-18?Zl9`T z7RNKKuYt3gJ(qbEwtk;~IoeOa;q#M{W3NS4y-S}YKkf7RZD*(MJt{r%%Iz-}vm7s7 zpAn^Ura|oSqE}iEmf9U&`Tf&jyR~UAu9)&nojN0$PvYRN=5M!h@|=R|+K&8wc*SUi zbj3MM*@IKk{K}p`KQ1@ls_InKZX-XB=~EK7eahUZww70n%k6g`*ZPw$U-#_HTQ9bx zrPVT3H7p|HiFD;-_Ow&BOxveu?~HQxD9R}0H);J;;mLe|?eY6^fl{hUdpiCz@J+gO zm+{!qWAF9$MBMIQA#v~1VU0~Cx~?yO9n6Tc^Yptnw_@c{quGA*8gAX>;(F-Pc;WF? zA>ojt%cNTt`o<_`#Je=-?|3YiC7D(#c<ku~^*=uD7p6yfA7NGd7yh!K;?v>msoPfd z&v<9CEZ#Hh$-IT(PwKWGvR>`EpuQv6+t=;Z)1uxl?_GNq><qr2yVNIm&d=3{b98t! zx2}3>cqO;eRa{&nyz54Uu+ho`i(}WOS#R#z^6P7SncT`}ZJKXa#{Ns06?ktA{~XJL z9R6qG$M;N*Sm|5VsI=gfbXD=olC}wALIKk*?|OFZdEq`WF&(uwqZ2otEy|Uhrny*_ ztv=_U#`-y5*K5A)3(q$QTRD~eX4{svzAjGX7B!x)mb31#SXjH>^t{2h`R6xkmvVS6 zzxeXwKe@?1-bYh8etKQY&3(mazFj6UF?nj2(axiK_YPdpTRu7VM_YIPqT7?^d5Q&w zuD?8wO-3QD=k!!nlRH(jwyT!$nJt?1bZWN#_1CSft<x2B7K?oLXIy(jO8MMd<Czb( z-M(COMbxB)Vc)~6OTElqCvki_@><EOb>5?`F^1e(m2=;2S!AO=FaMS9%huMOr7j<u zlV=(Gl}~z{EYo%4%!QXbi~5xfPUX6`>EBarFkczB=s!c9r@c>@&GCR@+w|pHuTy!J zMW5u%sB?*6>91xm*s#I1CBx5S{nq2D_ZBaZ318`Z<;#21MXTLbh*;e8T6a_FFYiX( zbs@dJzM;*vx1Ol)4e+1%xOCs29vvNv3Cwc$4qW2ZoPB2U%ivihFE4G{74WB3)NGN6 z<LlQa_g{bAv0%#Q$h8F%ghVw}ta6`!y7!+UcG<rh5fN$+o|&GnI(JjFl>K<}#Ba-c omWEd?xixdrEvHE@89o0q?61+$(Q!M)w3BI#-V~iDT>ozZ03a(ZjQ{`u diff --git a/www/pics/datei16x16-pdf01.gif b/www/pics/datei16x16-pdf01.gif deleted file mode 100644 index 71a72ed8fc5d8bfd790c21f64dd953b0cf94dc5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 230 zcmZ?wbhEHb6krfwI3mmNsHgXttLwuxYwtaN{4^);xwr4VD_0)Qo^$`y=?7c3zI69^ zxM$CEJICjSCNFI4UPMMe+P>piOx(-h(8slPPg+`^q@+DAE_xOg`CMOLP*Ctc0|?x` zdly83vEok_Mg|611|1L&WG4e_a)NqZN@Uv16?rkQx6Pb3%jD$IPs`rgoS(NVuK($& zD;evrya*N8leb#@@rRJI4&9!krVV=0>?{ovdWv}X9Tz?1h*1brQe~K-!qU*Cbgq+S aUOIOn3oA#140EASyQ`K)|AYyO4AubETwzQA diff --git a/www/pics/gap-woody.jpg b/www/pics/gap-woody.jpg deleted file mode 100644 index ee4edb68bcd8ed3949e8e74363b0e56537d4fa55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16915 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 RBQY^CLH6b1pWgp(0sv-&h&2EJ diff --git a/www/pics/linkext.gif b/www/pics/linkext.gif deleted file mode 100644 index 70df7f741c2fc5d224c0b056be09316962a46fa4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 148 zcmZ?wbhEHb<YwSzc+A6Kp*`11Z@#PLvgm-#snI*vt+=~y=aZMuzrA_&{o{w9Uq1i( z`SZ_zB%t_D)VU}%u_QG`p**uBLm?z1Rl(iUH-JHhfq{VmWGDlRL4ju{(+&y!$&A0x uEQ*NG&^+uq>qV$ai~3Oq!;_~KZ}4n*pyc^JeU?s}+=NTlU+O3^SOWl}R7PF^ diff --git a/www/pics/raute-blau.gif b/www/pics/raute-blau.gif deleted file mode 100644 index fbacd82f7b65afc68c38d83ff2550f01d769a5d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 91 zcmZ?wbhEHb<YwSzSj55*H}Sq=$RdZLgF1Ov8IXYDPZmZ71{MY#kQhiU1G9q1s?F;X jI@sIi>fPG?<ypK1ON&BZ_s@xaT|sKzf}18WFjxZs<pdc7 diff --git a/www/script b/www/script deleted file mode 100755 index fa7cd8c22..000000000 --- a/www/script +++ /dev/null @@ -1,24 +0,0 @@ -#! /bin/bash - -# This is a script to wrap smartctl output into http:// displayable form -# It requires a filename as input, and produces an file with a .html extension as output - -if [ $# -ne 1 ] ; then - echo This script requires one a file as input - exit 1 -fi - -model=`grep "Device Model" $1 | awk '{print $3}' ` - -# see if file name in use -let i=0 -while [ -f $model-$i.html ] ; do - let i+=1 -done - -filename=$model-$i -echo -e "<pre><tt>\n" > $filename.html -cat $1 >> $filename.html -echo -e "</tt></pre>\n" >> $filename.html - -echo created file $filename.html diff --git a/www/smart_logo.gif b/www/smart_logo.gif deleted file mode 100644 index 16a179c824bb4205d117f371eec0500eaf4d4c50..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4512 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 diff --git a/www/smartmontools_scsi.xml b/www/smartmontools_scsi.xml deleted file mode 100644 index 0ab71ce6f..000000000 --- a/www/smartmontools_scsi.xml +++ /dev/null @@ -1,1511 +0,0 @@ -<?xml version='1.0' encoding='ISO-8859-1'?> -<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" - "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" > - -<!-- -This is DocBook XML that can be rendered into a single HTML page with a -command like 'xmlto html-nochunks <this_file_name>'. It can -also be rendered into multi-page HTML (drop the "-nochunks") or pdf, -ps, txt, etc. ---> - -<article id="index"> - <articleinfo> - <title>Smartmontools for SCSI devices</title> - <author> - <firstname>Douglas</firstname> - <surname>Gilbert</surname> - <affiliation> - <address> - <email>dgilbert at interlog dot com</email> - </address> - </affiliation> - </author> - <authorinitials>dpg</authorinitials> - <pubdate>2006-11-21</pubdate> - - <revhistory> - <revision> - <revnumber>1.6</revnumber> - <date>2006-11-21</date> - <authorinitials>dpg</authorinitials> - <revremark> - auto '-d sat', background scan, windows device names - </revremark> - </revision> - <revision> - <revnumber>1.5</revnumber> - <date>2006-06-24</date> - <authorinitials>dpg</authorinitials> - <revremark> - device type 'sat' - </revremark> - </revision> - <revision> - <revnumber>1.4</revnumber> - <date>2006-05-08</date> - <authorinitials>dpg</authorinitials> - <revremark> - 5.38 update, SATA, SAS - </revremark> - </revision> - <revision> - <revnumber>1.3</revnumber> - <date>2004-09-25</date> - <authorinitials>dpg</authorinitials> - <revremark> - error counter descriptions, error events log page - </revremark> - </revision> - <revision> - <revnumber>1.2</revnumber> - <date>2004-05-27</date> - <authorinitials>dpg</authorinitials> - <revremark> - reorganise, details in appendix, version 5.31 - </revremark> - </revision> - <revision> - <revnumber>1.1</revnumber> - <date>2003-10-13</date> - <authorinitials>dpg</authorinitials> - <revremark> - freebsd, timestamp - </revremark> - </revision> - <revision> - <revnumber>1.0</revnumber> - <date>2003-05-26</date> - <authorinitials>dpg</authorinitials> - <revremark> - first cut - </revremark> - </revision> - </revhistory> - - <copyright> - <year>2003</year> - <year>2004</year> - <year>2005</year> - <year>2006</year> - <holder>Douglas Gilbert</holder> - </copyright> - - <legalnotice> - <para> - Permission is granted to copy, distribute and/or modify this document - under the terms of the GNU Free Documentation License, Version 1.1 - or any later version published by the Free Software Foundation; - with no Invariant Sections, with no Front-Cover Texts, and with - no Back-Cover Texts. - </para> - <para> - For an online copy of the license see - <ulink url="http://www.fsf.org/copyleft/fdl.html"> - <literal>www.fsf.org/copyleft/fdl.html</literal></ulink>. - </para> - - </legalnotice> - - <abstract> - <para> - This article describes how smartmontools interacts with SCSI storage - devices (mainly hard disks and tape drives). Smartmontools is a SMART - utility toolset. <acronym>SMART</acronym> is an acronym for - Self-Monitoring, Analysis and Reporting Technology. Smartmontools - is available for the these operating systems: Darwin (Mac OS X - but with no SCSI support yet), FreeBSD, Linux, NetBSD, OpenBSD, - OS/2 (no SCSI support), Solaris and Windows. - </para> - </abstract> - </articleinfo> - -<!-- -<toc></toc> ---> - - <sect1 id="intro"> - <title>Introduction</title> -<para> -Smartmontools controls and monitors storage devices using the -Self-Monitoring, Analysis and Reporting Technology -(<acronym>SMART</acronym>) system. This toolset was originally built -for the Linux operating system and has been ported to Darwin for -Mac OS X (no SCSI support yet), FreeBSD, NetBSD, OpenBSD, -OS/2 (no SCSI support), Solaris and Windows. -This article describes how smartmontools interacts with SCSI devices. -Passing reference is also made to devices that use the SCSI command -set such as USB mass storage devices and IEEE1394 devices that use -the "sbp2" protocol. In many situations SATA disks are accessed -using a (partial) SCSI command set. -</para> -<para> -The primary web site for smartmontools is at -<ulink url="http://smartmontools.sourceforge.net"> -<literal>smartmontools.sourceforge.net</literal></ulink> from which the -latest versions (both source and binaries) can be obtained. Smartmontools -grew out of the now dormant <emphasis>smartsuite</emphasis> project which -is still available on its own sourceforge site. The smartmontools main page -concentrates on ATA devices. -This article supplies some SCSI specific information for -those users of smartmontools that wish to monitor SCSI storage devices. -</para> -<para> -This document outlines the features found in smartmontools -version 5.37 that are relevant to SCSI disks and tape drives. -This document was last altered on 21st November 2006. -</para> -</sect1> - -<sect1 id="overv"> - <title>Overview of Smartmontools</title> -<para> -Smartmontools is made up of two executable programs, a configuration file -and online documentation (on Unix systems in the form of "man" pages). -The two executable programs are: -<itemizedlist> -<listitem><para><command>smartctl</command>: a command line utility -</para></listitem> -<listitem><para><command>smartd</command>: a daemon program providing a -monitoring service -</para></listitem> -</itemizedlist> -</para> -<para> -SCSI disks and tape drives allow self tests of their media, often monitor -the temperature of the device, maintain error counters and report when -various failure prediction thresholds are exceeded. To view the information -available try a command like: <command>smartctl -a /dev/sda</command>. If -<acronym>SMART</acronym> reporting has not been turned on for this disk -then use this command -first: <command>smartctl -s on /dev/sda</command>. [For operating systems -other than Linux replace <filename>/dev/sda</filename> with a SCSI disk -device name.] -</para> -<para> -The <command>smartd</command> daemon program is a service typically started -when a machine boots up. In can monitor multiple disks (both ATA and SCSI). -In Unix systems its configuration file can -be found <filename>/etc/smartd.conf</filename>. It sends alerts to the -system logs and can be configured to email system administrators when -pending failures are reported. -</para> -<para> -If smartmontools detects some "bad blocks" then the reader should -look at this page: -<ulink url="http://smartmontools.sourceforge.net/badblockhowto.html"> -<literal>smartmontools.sourceforge.net/badblockhowto.html</literal></ulink> . -</para> -</sect1> - -<sect1 id="oses"> - <title>Operating Systems</title> -<para> -Smartmontools was originally written for Linux. Since then it has been -ported to various other Unix based systems and Windows. Note that the -device names are based on the transport that an operating system sees. -These days it is not uncommon for an operating system to see a -transport that only conveys SCSI commands connected, via some command -translation bridge, to an ATA disk. Examples are USB external disk -enclosures and SATA disks behind a SCSI to ATA Translation Layer (SATL) -in a SAS or FC domain. -</para> -<para> -The names of SCSI disk and tape devices vary with the operating system. -Here is a summary: - -<table frame="all"><title>SCSI device names in various systems</title> -<tgroup cols="4" align="left" colsep="1" rowsep="1"> -<thead> -<row> -<entry/> -<entry>disks</entry> -<entry>tapes</entry> -<entry>Notes</entry> -</row> -</thead> -<tbody> -<row> -<entry><command>Linux</command></entry> -<entry><filename>/dev/sd[a-z]</filename></entry> -<entry><filename>/dev/[n]st[0-9]</filename></entry> -</row> -<row> -<entry><command>FreeBSD</command></entry> -<entry><filename>/dev/da[0-9]</filename></entry> -<entry><filename>/dev/[n|e]sa[0-9]</filename></entry> -</row> -<row> -<entry><command>NetBSD</command></entry> -<entry><filename>/dev/sd[0-9]+c</filename></entry> -<entry><filename>/dev/st[0-9]+c</filename></entry> -</row> -<row> -<entry><command>OpenBSD</command></entry> -<entry><filename>/dev/sd[0-9]+c</filename></entry> -<entry><filename>/dev/st[0-9]+c</filename></entry> -</row> -<row> -<entry><command>Solaris</command></entry> -<entry><filename>/dev/rdsk/c?t?d?s?</filename></entry> -<entry><filename>/dev/rmt/*</filename></entry> -</row> -<row> -<entry><command>Windows</command></entry> -<entry><filename>/dev/scsi[0-9][0-f]</filename></entry> -<entry><filename>/dev/scsi[0-9][0-f]</filename></entry> -<entry>ASPI adapter:0-9, ID:0-15</entry> -</row> -<row> -<entry/> -<entry><filename>/dev/sd[a-z]</filename></entry> -<entry/> -<entry>for '\\.\PhysicalDrive[0-25]'</entry> -</row> -<row> -<entry/> -<entry><filename>/dev/pd[0-255]</filename></entry> -<entry/> -<entry>for '\\.\PhysicalDrive[0-255]'</entry> -</row> -<row> -<entry/> -<entry/> -<entry><filename>/dev/tape[0-255]</filename></entry> -<entry>for '\\.\Tape[0-255]'</entry> -</row> -<row> -<entry><command>Darwin</command></entry> -<entry/> -<entry/> -<entry>no support for SCSI devices</entry> -</row> -<row> -<entry><command>OS/2</command></entry> -<entry/> -<entry/> -<entry>no support for SCSI devices</entry> -</row> -</tbody> -</tgroup> -</table> -</para> -<para> -The above list is a simplification. In Linux there can be multiple -drive letters followed by a partition number (1 to 15). Smartmontools will -ignore the partition number if it is given and query the underlying device. -In Linux the SCSI tape device name can be "nst" and a letter can be -appended to the device name, both decorations are ignored by smartmontools -as it accesses the underlying tape drive. Also in Linux, SCSI devices can -be accessed via their generic name which is of the form -<filename>/dev/sg[0-9]</filename>. -</para> -<para> -Linux also has an optional Solaris like -naming scheme for SCSI device (scsidev), devfs (mainly used in the lk 2.4 -series) and udev (devfs's replacement in the lk 2.6 series). In short, device -naming is a complex area and smartmontools does its best to find -and identify (i.e. whether ATA or SCSI) a device depending on its name. In -some cases smartmontools needs guidance from the user and this can be given -by the '-d ata|scsi|sat|marvell|3ware,N' option in the -<command>smartctl</command> utility and in <command>smartd</command> -daemon's configuration file. -</para> -<para> -Windows has several schemes for naming devices. The "scsi[0-9][0-f]" scheme -uses the aspi dll from Adaptec. That dll is not distributed with Windows. The -other schemes use the "SCSI Pass Through" interface which is native to -Windows in NT and later. In all cases for Windows, the leading -<filename>/dev/</filename> is optional. -</para> -</sect1> - -<sect1 id="scsidisk"> - <title>SCSI disks</title> -<para> -What is a SCSI disk? A SCSI disk is a storage device that "talks" the SCSI -command set. An ATA disk is a storage device that "talks" the ATA -command set. That seems pretty clear. However the command set that a -disk uses at its connector (and thus shown on its label) may not be -the command set that the operating system needs to use due to command -set translation between the OS and the disk. -</para> -<para> -The ATA command set is used over native ATA transports which are -parallel ATA (PATA) up to 133 MB/sec and serial ATA (SATA) at link -speeds of 1.5 Gbps (approximately 150 MB/sec) or 3 Gbps. In the past -when ATA disks needed to use some other transport (e.g. USB and IEEE1394) -the SCSI command set was sent over the foreign transport. So in this -case the operating system sees a device "talking" the SCSI command set -but the device is really an ATA disk. Many current disk external enclosures -contains ATA disks yet seen from the operating systems view point are -USB mass storage devices talking the SCSI command set. -</para> -<para> -The SCSI command set is used over various transports: the SCSI Parallel -Interface (SPI), Fibre Channel (FCP), Serial Attached SCSI (SAS), -IEEE1394 (SBP), USB (mass storage) and iSCSI. Many of these transports can -convey multiple command sets (i.e. not just the SCSI command set). The -SAS transport is interesting as it can convey both the SCSI -and ATA command sets. There is also the case of a RAID made up of ATA -disks which communicates to host operating system with the SCSI command -set (e.g. 3ware RAID controller). -</para> -<para> -So what does all this mean for smartmontools? In most cases the answer is -not good news. Devices such as USB external disk enclosures translate -incoming (from the host) SCSI commands to their ATA equivalents and process -responses as required. This translation is limited typically to a small -number of SCSI commands (e.g. READ and WRITE) but <emphasis>not</emphasis> -those commands needed by smartmontools. The author does not know of any -SCSI_over_USB devices that support Smartmontools. The 3ware RAID (6000, -7000, 8000 and 9000 series Escalade) controllers are supported -on several operating systems with special code. -<footnote><para> -The 3ware RAID solution tunnels the ATA commands needed for -smartmontools (together with a disk number) through a vendor specific -SCSI command. -</para></footnote> -</para> -<para> -There is an emerging SCSI to ATA Translation (SAT) standard -at <link linkend="t10">www.t10.org</link> -that may lead to improvements in this area. Apart from defining -some of the facilities smartmontools needs, it defines two ATA PASS THROUGH -SCSI commands. These pass through commands could be used in much the -same way that the 3ware RAID tunnels ATA commands. -</para> -<para> -The device type '-d sat' instructs the <command>smartctl</command> -command and the <command>smartd</command> daemon, to form SMART -commands for the ATA command set and then package those commands -within the ATA PASS THROUGH SCSI commands. The SCSI commands -are then sent to the "SCSI" device that the operating system -has been given. In version 5.37 of smartmontools it is no longer -necessary to specify '-d sat' in this situation. All that is -needed is a SATL that complies with the emerging SAT standard. -If the automatic detection of an ATA disk behind a SATL is -tricked, '-d scsi' (or some other device type) can be used to -override. -</para> -<para> -It has been reported that many external USB enclosures use a "Cypress" -chipset. This contains an ATACB proprietary pass through (for ATA -commands passed through SCSI commands) for which some publicly -available information is available. Smartmontools has no ATACB specific -code but may move in this direction in the future. Another approach is -to hope USB and SBP2 external enclosures adopt the SAT standard in the -near future. One interesting comment about ATACB is that it should not -be used at the same time as other types of access to the disk (e.g. a -mounted file system)! That implies that a disk should be taken -offline before smartmontools is used on it. It also implies that -the smartd background daemon should not be used. -</para> -</sect1> - -<sect1 id="satadisk"> - <title>SATA disks</title> -<para> -SATA disks use a 1.5 or 3 Gbps serial transport which carries the -ATA command set. The serial connection is point to point so each SATA disk -needs its own cable and plug on the host adapter or motherboard. -<footnote><para> -There are SATA devices called port multipliers that allow up to 15 -SATA drives to be connected to one host. SAS expanders seem to be a -better approach to the problem of connecting a large number of disks -to one or more hosts. -</para></footnote> -Many aspects of SATA are like SCSI and some operating -systems use existing SCSI infrastructure to handle SATA hosts (e.g. -Linux's libata). -</para> -<para> -Serial Attached SCSI (SAS) can be viewed as a superset of SATA. -It can directly connect thousands of SAS disks to one or more controllers -spread across multiple machines in one SAS "domain". Such a domain can -also contain SATA disks, connected to intermediate fanout devices called -expanders (similar to switches in networking). Most SAS host adapters -can also have SATA disks connected directly to the adapter (which -technically is not a usage of SAS but that is of little concern to -the end user). -</para> -<para> -So a SATA disk may be connected -<itemizedlist> -<listitem><para> -to a SATA host controller (on a motherboard or an adapter) -</para></listitem> -<listitem><para> -directly to a SAS host adapter -</para></listitem> -<listitem><para> -to a SAS expander which is connected to one or more SAS host adapters -</para></listitem> -<listitem><para> -or connected via a bridge which is connected to the host computer via -some other transport (e.g. fibre channel) -</para></listitem> -</itemizedlist> -Since all but the first item might have other disks connected which -use the SCSI command set (e.g. SAS and FC disks) often the SATA disks -have a SAT layer put in front of them so they look like SCSI disks. -That SAT layer may be in: -<itemizedlist> -<listitem><para> -the operating system kernel (e.g. libata in Linux) -</para></listitem> -<listitem><para> -in the host adapter firmware (or RAID controller) -</para></listitem> -<listitem><para> -or external to the host computer: within a disk enclosure (e.g. -associated with a SAS expander) -</para></listitem> -</itemizedlist> -</para> -<para> -For normal file system work, a SCSI to ATA Translation Layer (SATL) only -needs to concern itself with around 6 commands. Unfortunately -smartmontools uses other commands (both in the SCSI and ATA -command sets). Probably the simplest way to handle SMART for SATA disks -behind a SAT layer is to use the ATA PASS THROUGH SCSI commands. -</para> -<para> -smartmontools guesses the disk command set (i.e. ATA or SCSI) -based on the device node it is given. For example in Linux, -<filename>/dev/hda</filename> would be assumed to use the ATA command set -while <filename>/dev/sda</filename> would be assumed to use the SCSI -command set. -<footnote><para> -Even sending trial ATA and SCSI commands to see which one a device -responds to could be tricked. ATAPI cd/dvd drives respond to -both ATA commands (a few, for example IDENTIFY PACKET DEVICE) and SCSI -commands (found in MMC). -</para></footnote> -By using either the '-d ata' or the '-d scsi' option, the command set -guess made by smartmontools can be overridden. The '-d sat' device -type causes smartmontools to generate ATA commands which are then packaged -within the ATA PASS THROUGH SCSI commands (defined by the SAT standard) -and then sent to the device via a SCSI pass through mechanism. -As noted in the previous section, version 5.37 of smartmontools now -automatically detects a SATA disk behind a SAT layer and acts as -if '-d sat' has been given. -</para> -</sect1> - -<sect1 id="smart"> - <title>SMART</title> -<para> -<acronym>SMART</acronym> never attained the status of "standard" and its -original documents have been withdrawn. Its catchy name lives on, especially -on vendors' web sites and obviously in the name of this toolset. Luckily -the good ideas in <acronym>SMART</acronym> have been incorporated into the -ATA and SCSI standards albeit in slightly different forms. -</para> -<para> -Initially <acronym>SMART</acronym> began on SCSI disks as vendor -specific extensions. Gradually the <acronym>SMART</acronym> functionality has -moved into the standards (often by other names) and vendors are improving -their standards' compliance. [In the vendors' defence some of the -"standards" are drafts and are yet to be ratified.] Some SCSI disk vendors -have product manuals (available on the net) that cover the parts of the SCSI -command set that their disks support. Some of these manuals fill in details -that are left deliberately vague in the the standards. -<footnote><para> -For example: Seagate's "Cheetah 15K.3 Product Manual, Rev F" contains -sections on <acronym>SMART</acronym>, -thermal monitor, and drive self test (section 5.2.7 to 5.2.9). It also -lists the supported mode pages with their default and changeable values. -</para></footnote> -</para> -<para> -SCSI standards (found at <link linkend="t10">www.t10.org</link>) -only make one footnote reference to the term <acronym>SMART</acronym>. -In its place the awkward term "Informational Exceptions" is used. For SCSI -tapes the term "TapeAlert" is used. -</para> -</sect1> - -<sect1 id="smartctl"> - <title>smartctl command line utility</title> -<para> -The <command>smartctl</command> command line utility gets -<acronym>SMART</acronym> information from the nominated device. In some -cases <acronym>SMART</acronym> information held by the nominated device -can be modified by the <command>smartctl</command> command. The command -has many options that can be viewed by the long usage message output be -either of these invocations: <command>smartctl -h</command> or -<command>smartctl --help</command>. Those options that are only -available to ATA disks (i.e. not available to SCSI disks or tape drives) -are marked with "(ATA)". Unix style "man" page documentation is also -available. -</para> -<para> -The following options are currently available for SCSI disks and tape -drives unless otherwise noted: -<itemizedlist> -<listitem><para><command>-a | --all</command>: equivalent to the -combination <command>-i -H -A -l error -l selftest</command> options -invoked in that order. -</para></listitem> -<listitem><para><command>-A | --attributes</command>: outputs the -current device temperature, trip temperature, the number of elements -in the grown defect list (GLIST) and data from the start-stop log page. -Outputs some vendor specific information if available. -</para></listitem> -<listitem><para><command>-C | --captive</command>: used in conjunction -with <command>-t short</command> or <command>-t long</command> options to -do short or long self tests in the foreground. [Has no effect on tape -drives.] -</para></listitem> -<listitem><para><command>-d TYPE | --device=TYPE</command> where TYPE -is "ata", "scsi", "sat", "marvell", "3ware,N", "hpt,L/N[,M]" -or "cciss,N". Overrides utility's guess about the class of the device -which is based on the form of the nominated device's name. -</para></listitem> -<listitem><para><command>-h | --help</command>: outputs lengthy usage -message and exits without any other action. -</para></listitem> -<listitem><para><command>-H | --health</command>: outputs single device -health metric determined by the device manufacturer. This will be "OK" -or a failure message. -</para></listitem> -<listitem><para><command>-i | --info</command>: outputs device -identification information (derived from a SCSI INQUIRY command) and -whether the device supports <acronym>SMART</acronym> (and temperature -warnings) and if those facilities are currently enabled. The -type of transport (e.g. FC or SAS) is also reported, if available. -Some users have reported disks that report the wrong transport. -</para></listitem> -<listitem><para><command>-l TYPE | --log=TYPE</command> where TYPE is -either "background", "selftest" or "error". Decodes are outputs the -requested log. Note that <command>--all</command> does not include -<command>--log=background</command> . -</para></listitem> -<listitem><para><command>-q TYPE | --quietmode=TYPE</command> where TYPE is -either "silent" or "errorsonly". When the type is silent then nothing is -output to the console but the exit status is set (so it is suitable for -scripts). For "errorsonly" only errors are output to the console. The -exit status is always set. [See the smartctl man page.] -</para></listitem> -<listitem><para><command>-r TYPE | --report=TYPE</command> where TYPE is -either "ioctl[,<n>]" or "scsiioctl[,<n>]". Turns on low level -debugging of issued commands and responses. These commands are issued -through a system command called an "ioctl" in Unix. The debug can be for -all issued commands (i.e. "ioctl") or only SCSI commands ("scsiioctl"). -Optionally the TYPE can have a comma and a number post pended to increase -the volume of debug. See this <link linkend="ctldebug">section</link> for -more details. -</para></listitem> -<listitem><para><command>-s VALUE | --smart=VALUE</command> where VALUE is -either "on" or "off". Enables or disables <acronym>SMART</acronym> -monitoring (and temperature warnings). -</para></listitem> -<listitem><para><command>-S VALUE | --saveauto=VALUE</command> where VALUE -is either "on" or "off". Controls whether the error log values are -preserved across device power cycles. -</para></listitem> -<listitem><para><command>-t TEST | --test=TEST</command> where TEST -is either "offline", "short" or "long". Despite its name "offline" is -a short foreground test that all SCSI devices should support. A "short" -self test is typically 2 minutes or less. A "long" self test will be -considerably longer than 2 minutes, depending on the size of the media. -The estimated time that a "long" self test will take is printed after -the "selftest" log (i.e. with '-l selftest' or '-a') -</para></listitem> -<listitem><para><command>-V | --version</command>: outputs the smartctl -version number (including the cvs version of all its source files) -and build information then exits without any other action. -</para></listitem> -<listitem><para><command>-X | --abort</command>: will terminate a -background short or long self test. Usually the self test log notes -that a self test has been aborted. [Has no effect on tape drives.] -</para></listitem> -</itemizedlist> -</para> -<para> -After the options <command>smartctl</command> expects a device name. -This device name is not required for the '--help' or '--version' options. -If no options are given and a valid device name is given then the copyright -notice is output and the program exits. If the device name is invalid -then that is reported. Only one device name can be given. -</para> -<para> -Examples of various invocations of <command>smartctl</command> on a -SCSI disk follow: -<programlisting> -# smartctl -i /dev/sdc -smartctl version 5.37 [i686-pc-linux-gnu] Copyright (C) 2002-6 Bruce Allen -Home page is http://smartmontools.sourceforge.net/ - -Device: SEAGATE ST336754SS Version: 0003 -Serial number: xxxxxxxx -Device type: disk -Transport protocol: SAS -Local Time is: Fri Apr 28 15:55:34 2006 EDT -Device supports SMART and is Enabled -Temperature Warning Enabled -</programlisting> -</para> -<para> -<programlisting> -# smartctl -H /dev/sdd -smartctl version 5.37 [i686-pc-linux-gnu] Copyright (C) 2002-6 Bruce Allen -Home page is http://smartmontools.sourceforge.net/ - -SMART Health Status: O -</programlisting> -<programlisting> -# smartctl -A /dev/sdc -smartctl version 5.37 [i686-pc-linux-gnu] Copyright (C) 2002-6 Bruce Allen -Home page is http://smartmontools.sourceforge.net/ - -Current Drive Temperature: 42 C -Drive Trip Temperature: 68 C -Elements in grown defect list: 0 -Vendor (Seagate) cache information - Blocks sent to initiator = 1666124337 - Blocks received from initiator = 1517744621 - Blocks read from cache and sent to initiator = 384030649 - Number of read and write commands whose size <= segment size = 21193148 - Number of read and write commands whose size > segment size = 1278317 -Vendor (Seagate/Hitachi) factory information - number of hours powered up = 277.08 - number of minutes until next internal SMART test = 108 -</programlisting> -</para> -</sect1> - -<sect1 id="selftest"> - <title>Self Tests</title> -<para> -Rather than wait for thresholds to be tripped, an administrator can -request a self test. Alternatively a self test can be scheduled -periodically (e.g. at 3 a.m. every night or perhaps weekly) with -<command>smartd</command>. All SCSI disks and tape drives should -support a <emphasis>default</emphasis> self test since it is mandatory. -This can be invoked with the -<command>smartctl -t offline <device></command> command. Despite -the term "offline" this is actually a foreground test of less than 2 -minutes. On completion the default self test reports any errors detected -in its response. The default self test makes no entry into the self test -log. Most SCSI devices perform a default self test when they are being -powered up. -</para> -<para> -The other self tests that are optionally supported by the device are listed -here with the <command>smartctl</command> invocation in brackets: -<itemizedlist> -<listitem><para> -background short [<command>smartctl -t short <device></command>] -</para></listitem> -<listitem><para> -background extended [<command>smartctl -t long <device></command>] -</para></listitem> -<listitem><para> -foreground short [<command>smartctl -C -t short <device></command>] -</para></listitem> -<listitem><para> -foreground extended [<command>smartctl -C -t long <device></command>] -</para></listitem> -</itemizedlist> -Short self tests should take less than two minutes to complete. The extended -self tests have been known to take more than one hour for disks that are over -100 GBytes in size. Care should be taken with foreground tests on disks -with mounted file systems as the OS may not take kindly to an hour delay -on a simple READ command. -<footnote><para> -Linux has an additional problem with the foreground extended self tests: -it will attempt to time out the command after 10 seconds. This will appear -in the self test log page as an aborted self test. This problem is fixed -in lk 2.4.22 and the lk 2.6 series (by extending the -timeout to 2 hours). To be on the safe side use the background extended -test instead. Also some disks silently ignore foreground self -tests (e.g. the Seagate Cheetah series). -</para></footnote> -</para> -<para> -Background self tests can be aborted with the <command>smartctl -X -<device> </command> command. The self test log will note that an -abort was requested. -</para> -<para> -Self tests other than the default self test cause an entry to be placed -in the self test results log page. The 20 most recent self tests are -held. The self test results can be viewed with the -<command>smartctl -l selftest <device></command> command. All tests -output the accumulated power on hours when the test was performed and -the success or otherwise (e.g. the self test was aborted by the user's -request) of the test. Unsuccessful self tests output a self test segment -number (vendor specific), the logical block address of the first failure -(if appropriate) and a sense_key,asc,ascq triple (see appendix). Following -the self test result table is the expected duration of an uninterrupted -extended self test (when that figure is provided by the device). -</para> -<para> -Here is an example of a self test log: -<programlisting> -# smartctl -l selftest /dev/sdd -smartctl version 5.37 [i686-pc-linux-gnu] Copyright (C) 2002-6 Bruce Allen -Home page is http://smartmontools.sourceforge.net/ - - -SMART Self-test log -Num Test Status segment LifeTime LBA_first_err [SK ASC ASQ] - Description number (hours) -# 1 Background long Completed - 100 - [- - -] -# 2 Background long Completed - 25 - [- - -] -# 3 Background long Completed - 24 - [- - -] -# 4 Background short Completed - 0 - [- - -] - -Long (extended) Self Test duration: 603 seconds [10.1 minutes] -</programlisting> -</para> -</sect1> -<sect1 id="errorlog"> - <title>Error Logs</title> -<para> -The <command>smartctl -l error <device></command> command displays -the error counters maintained in the device's log pages. Here is an -example of an error log: -<programlisting> -# smartctl -l error /dev/sdd -smartctl version 5.37 [i686-pc-linux-gnu] Copyright (C) 2002-6 Bruce Allen -Home page is http://smartmontools.sourceforge.net/ - - -Error counter log: - Errors Corrected by Total Correction Gigabytes Total - ECC rereads/ errors algorithm processed uncorrected - fast | delayed rewrites corrected invocations [10^9 bytes] errors -read: 5805 0 0 5805 5805 121.451 0 -write: 0 0 0 0 0 471.291 0 - -Non-medium error count: 0 -</programlisting> -The displayed error logs (if available) are displayed on separate lines: -<itemizedlist> -<listitem><para> -write error counters -</para></listitem> -<listitem><para> -read error counters -</para></listitem> -<listitem><para> -verify error counters (only displayed if non-zero) -</para></listitem> -<listitem><para> -non-medium error counter (only a single number displayed). This represents -the number of recoverable events other than write, read or verify errors. -</para></listitem> -<listitem><para> -error events are held in the "Last n error events" log page. The number -of error event records held (i.e. "n") is vendor specific (e.g. up to 23 -records are held for Hitachi 10K300 model disks). The contents of each -error event record is in ASCII and vendor specific. The parameter code -associated with each error event record indicates the relative time at -which the error event occurred. A higher parameter code indicates that the -error event occurred later in time. -If this log page is not supported by the device then "Error Events logging -not supported" is output. If this log page is supported and there are -error event records then each one is prefixed by "Error event <n>:" -where <n> is the parameter code. -</para></listitem> -</itemizedlist> -Each of the write, read and verify error counter logs has various -parameters codes. They are itemized below with the smartctl column -name followed, in brackets, with SCSI standard's description and -parameter code). A description taken from Seagate's SCSI -manual (publication 77738479, Rev J) is then given. -<itemizedlist> -<listitem><para> -Errors Corrected by ECC, fast [Errors corrected without substantial delay: -00h]. An error correction was applied to get perfect data (a.k.a. ECC -on-the-fly). "Without substantial delay" means the correction did not -postpone reading of later sectors (e.g. a revolution was not lost). The -counter is incremented once for each logical block that requires correction. -Two different blocks corrected during the same command are counted as two -events. -</para></listitem> -<listitem><para> -Errors Corrected by ECC: delayed [Errors corrected with possible delays: 01h]. -An error code or algorithm (e.g. ECC, checksum) is applied in order to -get perfect data with substantial delay. "With possible delay" means the -correction took longer than a sector time so that reading/writing of -subsequent sectors was delayed (e.g. a lost revolution). The counter is -incremented once for each logical block that requires correction. A -block with a double error that is correctable counts as one event and -two different blocks corrected during the same command count as two -events. -</para></listitem> -<listitem><para> -Error corrected by rereads/rewrites [Total (e.g. rewrites and rereads): 02h]. -This parameter code specifies the counter counting the number of errors -that are corrected by applying retries. This counts errors recovered, -not the number of retries. If five retries were required to recover one -block of data, the counter increments by one, not five. The counter is -incremented once for each logical block that is recovered using retries. -If an error is not recoverable while applying retries and is recovered -by ECC, it isn't counted by this counter; it will be counted by the -counter specified by parameter code 01h - Errors Corrected With Possible -Delays. -</para></listitem> -<listitem><para> -Total errors corrected [Total errors corrected: 03h]. -This counter counts the total of parameter code errors 00h, 01h and -02h (i.e. error corrected by ECC: fast and delayed plus errors corrected -by rereads and rewrites). There is no "double counting" of data errors -among these three counters. The sum of all correctable errors can be -reached by adding parameter code 01h and 02h errors, not by using this -total. [The author does not understand the previous sentence from the -Seagate manual.] -</para></listitem> -<listitem><para> -Correction algorithm invocations [Total times correction algorithm -processed: 04h]. This parameter code specifies the counter that counts -the total number of retries, or "times the retry algorithm is invoked". -If after five attempts a counter 02h type error is recovered, then five -is added to this counter. If three retries are required to get stable -ECC syndrome before a counter 01h type error is corrected, then those -three retries are also counted here. The number of retries applied to -unsuccessfully recover an error (counter 06h type error) are also -counted by this counter. -</para></listitem> -<listitem><para> -Gigabytes processed {10^9} [Total bytes processed: 05h]. This parameter -code specifies the counter that counts the total number of bytes either -successfully or unsuccessfully read, written or verified (depending -on the log page) from the drive. If a transfer terminates early because -of an unrecoverable error, only the logical blocks up to and including -the one with the uncorrected data are counted. [smartmontools divides -this counter by 10^9 before displaying it with three digits to the -right of the decimal point. This makes this 64 bit counter easier to -read.] -</para></listitem> -<listitem><para> -Total uncorrected errors [Total uncorrected errors: 06h]. This parameter -code specifies the counter that contains the total number of blocks for -which an uncorrected data error has occurred. -</para></listitem> -</itemizedlist> -</para> -<para> -The SCSI standard (SPC-3) cautions that the <emphasis>exact</emphasis> -definitions of the error counters is not part of the standard (i.e. they -are vendor specific). As noted the above list contains Seagate's -explanation for its disk products (the last revision of that document -was 1999). Seagate's disk product manuals imply that the disk firmware -collects these counter values and periodically commit them to persistent -storage (disk or non-volatile RAM). -<footnote><para> -This is why some models spring to life after minutes of inactivity and -perform some operation even though there are no external commands -pending. -</para></footnote> -They also imply that their firmware is monitoring these error counters -and if they exceed some threshold (e.g. in a certain time interval) -then the firmware will report a thresholds exceeded. -</para> -<para> -The error counter logs for some disks (e.g. some Seagate models) can -look worrying: -<programlisting> -# smartctl -l error /dev/sdc -smartctl version 5.37 [i686-pc-linux-gnu] Copyright (C) 2002-6 Bruce Allen -Home page is http://smartmontools.sourceforge.net/ - - -Error counter log: - Errors Corrected by Total Correction Gigabytes Total - ECC rereads/ errors algorithm processed uncorrected - fast | delayed rewrites corrected invocations [10^9 bytes] errors -read: 1111396 0 0 1111396 1113203 781.138 13 -write: 0 0 0 0 92 822.450 4 -verify: 341115 0 0 341115 341115 42.159 0 - -Non-medium error count: 1 -</programlisting> -The "fast" ECC corrected number is high. However the '-H' option reports the disk is -in good health as does an extended (long) background self test. The uncorrected errors -would be a problem had in not been for the fact that the author caused them on -purpose (by writing a bad sector with the SCSI WRITE LONG command). -</para> -</sect1> - -<sect1 id="background"> - <title>Background scan</title> -<para> -Recent SCSI disks can perform what are termed as "background scans". These -are reads of the whole media with recoverable errors acted on and -unrecoverable errors noted. If a sector (block) is found with a recoverable -error (i.e. the error correction codes (ECC) detect a problem but contain -enough redundant information to fix the problem) it may be fixed with a -re-write "in place". Alternatively the disk may decide to re-assign the -recovered data to another physical sector which is assigned the same logical -block address (and the original faulted sector is unmapped and placed on -the grown defect list (GLIST)). Since unrecoverable errors potentially -involve user data being lost, no automatic recovery action is undertaken by -the disk. However logical block addresses that contain either recovered -data or unrecoverable errors are noted in the Background Scan Results -log page. The <command>smartctl --log=background</command> command decodes -and outputs that log page. -</para> -<para> -Background scans may be performed periodically (e.g. every 24 hours) or -every time the disk is powered up (or both). These parameters can be -controlled via the Background Control mode page. The -<link linkend="sdparm">sdparm</link> utility can be used to access and -modify this mode page. -</para> -<para> -Here is an example of the output from the Background Scan Results log page. -The first descriptor in that log page shows the status followed by up -to 2048 entries for background scan "events". In this case a background -scan is still in progress and 3 scans have been completed in the past. -The "events" shown are all recoverable errors that the disk dealt with -by rewriting the block. -<programlisting> -# smartctl -l background /dev/sda -smartctl version 5.37 [i686-pc-linux-gnu] Copyright (C) 2002-6 Bruce Allen -Home page is http://smartmontools.sourceforge.net/ - -Background scan results log - Status: scan is active - Accumulated power on time, hours:minutes 618:01 [37081 minutes] - Number of background scans performed: 3, scan progress: 59.81% - - # when lba(hex) [sk,asc,ascq] reassign_status - 1 617:13 0000000001fbc5b2 [1,17,1] Recovered via rewrite in-place - 2 617:13 00000000022756d2 [1,17,1] Recovered via rewrite in-place - 3 617:14 000000000227727f [1,17,1] Recovered via rewrite in-place - 4 617:18 00000000023568e5 [1,17,1] Recovered via rewrite in-place - 5 617:22 00000000024fab5f [1,17,1] Recovered via rewrite in-place - 6 617:23 00000000025aa29a [1,17,1] Recovered via rewrite in-place - 7 617:27 000000000275d0bc [1,17,1] Recovered via rewrite in-place -</programlisting> -In this case the reassign_status shows that no user intervention is -required. The other "don't worry (too much)" reassign_status is "Logical -block successfully reassigned". Any other reassign_status will require -user intervention to correct. There is a LOWIR ("log only when intervention -required") bit in the Background Control mode page that the user can -set (e.g. with the <link linkend="sdparm">sdparm</link> utility) to filter -out "noisy" entries like those shown above. -</para> -<para> -The user can manually re-assign logical blocks with a utility like -<command>sg_reassign</command> found in the -<link linkend="sg3utils">sg3_utils</link> package. The background scan -output contains a "[sk,asc,ascq]" tuple of numbers. The one shown above -translates to "recovered error, recovered data with retries". Unrecoverable -errors would most likely have 3 ("medium eror") or 4 ("hardware error") -as the first number. A decoding of the latter two numbers can be found -in the "Numeric Order Codes" annex of SPC-4 (see <link linkend="t10"> -www.t10.org</link>) in the Additional Sense Codes section. -</para> -</sect1> - - -<sect1 id="smartd"> - <title>smartd daemon</title> -<para> -<command>smartd</command> is a daemon for monitoring disks (both ATA and -SCSI). It is recommended that tape drives and medium changers are monitored -in a more manual fashion with the <command>smartctl</command> command -as discussed in <xref linkend="tapes"/>. -</para> -<para> -The configuration file for <command>smartd</command> -is called <filename>/etc/smartd.conf</filename> and has a man page (as does -the <command>smartd</command> command). The controlling daemon script -is placed in the normal place for a distribution, typically -<filename>/etc/rc.d/init.d/smartd</filename>. -</para> -<para> -<command>smartd</command> polls the devices it has recognized when it -was started. By default it polls every 30 minutes. It reports any adverse -finding and noteworthy occurrences (e.g. disk drive temperature changes) -to a log file (<filename>/var/log/messages</filename>). <command>smartd -</command> can be configured to take other actions, for example send -email to a system administrator. -</para> -<para> -SCSI disks can be discovered by <command>smartd</command> via a scan of -device nodes (for linux: <filename>/dev/sda</filename> through to -<filename>/dev/sdz</filename>) by placing the word "DEVICESCAN" in -<filename>/etc/smartd.conf</filename> file. Alternatively the -"DEVICESCAN" word can be removed (or commented out) and SCSI devices -named explicitly: -<programlisting> -/dev/sda -a -d scsi -/dev/sdb -a -d scsi -</programlisting> -</para> -<para> -The "-d scsi" argument overrides what <command>smartd</command> would -guess as the device -class (i.e. "ata", "scsi", "sat", "marvell", "3ware,N", "hpt,L/N[,M]" -or "cciss,N"). In smartmontools version 5.37 the <command>smartd</command> -daemon guesses SCSI device nodes on the basis of their name (i.e. without -querying the device beforehand). However it does query the device -after it has been placed in the SCSI group and if it notices that the -vendor name is "ATA " and that it responds to SCSI ATA PASS THROUGH -commands then a informational message is sent to the log suggesting -that the user try adding '-d sat' (or perhaps a '-d scsi' should be -changed to '-d sat'). After such a warning for node <filename>/dev/sdb -</filename> the code snippet from the <filename>/etc/smartd.conf</filename> -file might be changed to: -<programlisting> -/dev/sda -a -d scsi -/dev/sdb -a -d sat -</programlisting> -</para> -<para> -This may be automated in a later version of -smartmontools (the <command>smartctl</command> command does automatic -detection in version 5.37). -</para> -</sect1> - -<sect1 id="tapes"> - <title>TapeAlert</title> -<para> -TapeAlert (or "tape alerts") is closely related to the -<acronym>SMART</acronym> infrastructure provided for SCSI disks. -TapeAlert is specialized for tape and medium changer devices. An example of -a TapeAlert is an indication that the tape drive heads need to be cleaned. -</para> -<para> -Pending TapeAlert errors can be read from the TapeAlert log page -(using <command>smartctl</command>). This can be done even when -<acronym>SMART</acronym> -monitoring is disabled (e.g. after <command>smartctl -s off <tape_device -></command>). In fact, the best way to use the TapeAlert mechanism is -to poll the flags (with <command>smartctl</command>) at relevant times when -using the tape, for example: -<itemizedlist> -<listitem><para> -when starting a new job using the tape drive -</para></listitem> -<listitem><para> -after an unrecoverable error -</para></listitem> -<listitem><para> -at the end of using each tape (and before it is unloaded) -</para></listitem> -</itemizedlist> -</para> -<para> -The TapeAlert information is divided into three severity classes: -Critical, Warning, and Information. The critical messages require -urgent user intervention. Both critical and warning errors may lead to -loss of data. Some of the errors are related to the medium and others -to the tape drive itself. This is why the TapeAlert information should be -checked when the tape is in use and not polled periodically (i.e. the -<command>smartd</command> daemon with its periodic polling is not -particularly useful for TapeAlert mechanism). -</para> -<para> -Different sets of flags are defined for tape drives and media -changers. Most of the flags are optional and the set of flags -supported depends on the device. TapeAlert is being included into the -SCSI-3 standards. Many SCSI-2 drives support TapeAlert but the -implementation may not fully conform to the SCSI-3 draft definition -used by smartmontools. -</para> -<para> -It is important that only one application -(or OS driver) is monitoring tape alerts since reading the TapeAlert log -page deactivates all flags after they are read. -<footnote><para> -In a multi initiator environment (e.g. several computers sharing the same -tape jukebox) there should only be one application monitoring tape alerts -per initiator. -</para></footnote> -Currently the Linux SCSI tape drivers (st and osst) do not check the -TapeAlert log page. In Linux, a medium changer device (i.e. the robot in -a tape jukebox) is accessed via its SCSI generic (sg) device name. -</para> -<para> -Code and information on the TapeAlert mechanism have been provided by -Kai Mäkisara <email>Kai.Makisara at kolumbus dot fi</email>. -</para> -</sect1> - -<sect1 id="examples"> - <title>Examples</title> -<para> -Here is some output from the <command>smartctl</command> -command. Mostly it is for the '--all' option. -<itemizedlist> -<listitem><para> -StorageTek LT20 tape 'jukebox': the -<ulink url="examples/bnch_DLT1.html"> -<literal>tape reading mechanism</literal></ulink> -and the -<ulink url="examples/bnch_robot.html"> -<literal>medium changer</literal></ulink> (robot). -Note the TapeAlert warnings in the medium changer output. -</para></listitem> -<listitem><para> -HP DDS-4 -<ulink url="examples/hp_c5713a_smt_a.html"> -<literal>tape</literal></ulink> -drive. -</para></listitem> -<listitem><para> -Generic ATAPI CD-RW -<ulink url="examples/atapi_cdrw_smt_a.html"> -<literal>cd writer</literal></ulink> is an example of a device that -does not support <acronym>SMART</acronym>. -</para></listitem> -<listitem><para> -IBM DDRS 39130 -<ulink url="examples/ddrs_39130_smt_a.html"> -<literal>disk</literal></ulink> - manufactured in 1998. -</para></listitem> -<listitem><para> -Fujitsu MAM3184MP 18 GigaByte -<ulink url="examples/mam3184_smt_a.html"> -<literal>disk</literal></ulink> when all is well. Here is the output from -the <command>smartctl -H</command> command after the IEC Test bit has been -set (with the <command>smartctl -s on -r ioctl,3</command> command) on the -same Fujitsu <ulink url="examples/mam3184_smt_health.html"> -<literal>disk</literal></ulink> . -</para></listitem> -<listitem><para> -Fujitsu MAP3735NP 73 GigaByte -<ulink url="examples/map3735_smt_a.html"> -<literal>disk</literal></ulink> -</para></listitem> -<listitem><para> -Quantum ATLAS IV 36 WLS, 36 GigaByte -<ulink url="examples/ativ_36_smt_a.html"> -<literal>disk</literal></ulink> -</para></listitem> -<listitem><para> -Seagate Cheetah ST336754 36 GigaByte -<ulink url="examples/st336754_smt_a.html"> -<literal>disk</literal></ulink>. -</para></listitem> -</itemizedlist> - -</para> -</sect1> - -<sect1 id="raid"> - <title>RAID, JBOD and Enclosures</title> -<para> -It is unlikely that a hardware RAID controller will directly support -smartmontools. A SCSI RAID controller is a virtual target device that -essentially remaps the SCSI commands it receives to the physical disks on its -internal buses. The physical disks in a "SCSI" RAID could be ATA or sATA -disks, in this case a SCSI bus is used between the host computer and an -external RAID controller since LVD SCSI buses (SPI-2,3 and 4) can run -up to 25 metres (plus other protocol related issues). -</para> -<para> -Some SCSI RAIDs equipped internally with SCSI disks allow access to the -physical disks via logical unit numbers (LUNs) greater than 0. The SCSI RAID -controller itself takes a LUN equal to 0. In this case smartmontools could -be applied to the LUNs greater than 0 that refer to physical disks. -</para> -<para> -Some SCSI RAIDs equipped internally ATA disks have a mechanism that -allows ATA commands to be tunnelled to the ATA disks. The 3ware 6000 -and 7000 series Escalade controllers are examples. In this case, -special provision has been made in smartmontools (starting with -release 5.1-16) to tunnel the ATA command required through to the -physical disks. This is done by using the <command>-d 3ware,N</command> -option/Directive. See the <command>smartctl</command> -and <command>smartd</command> man pages for details. -</para> -<para> -The approach that smartmontools takes is to communicate directly -with physical storage devices (e.g. a disk). Another approach is -to collectively monitor and manage a group of disks and/or tape -drives (be they a RAID, "Just a Bunch Of Disks" <acronym>JBOD</acronym> -or a collection of disks and tape drives) in an enclosure. The SCSI -Enclosure Services <acronym>SES</acronym> (reference: SES-2 at -<link linkend="t10">www.t10.org</link>) is designed for this task. -Both SCSI device and recent SATA disk enclosures are using SES. Amongst -other things SES can monitor the state of individual devices within the -enclosure, the temperature, power supplies and fans. A user can set -thresholds, define alarm types and remotely administer the enclosure. -</para> -</sect1> - -<appendix id="Details"> - <title>Details</title> -<sect1 id="stand"> - <title>Standards</title> -<para> -One of the first surprises working with SCSI devices and smartmontools -is that the SCSI standards (found at <link linkend="t10">www.t10.org</link>) -do <emphasis>not</emphasis> use the term <acronym>SMART</acronym>. In its -place the awkward term "Informational Exceptions" (IE) is used. -</para> -<para> -The original SCSI standard (over 20 years old now) and the SCSI-2 standard -were monolithic documents. In SCSI-3 and beyond the SCSI standards have -been sub-divided and three categories of interest are the: -<itemizedlist> -<listitem><para>architectural model [SAM-4]</para></listitem> -<listitem><para>command sets [SPC-4, SBC-3, SSC-3, SMC-2, etc] -</para></listitem> -<listitem><para>transports [SPI-4, SBP-2, FCP-3, SAS, etc]</para></listitem> -</itemizedlist> -The architectural model while interesting says nothing specific about -Informational Exceptions or related topics. With respect to the transports -the term <emphasis>SCSI</emphasis> has often been synonymous with one -of the SCSI Parallel Interface transports (e.g. SPI-4 which is often know -as "Ultra320") however this is unhelpful. For the purpose of smartmontools -the SCSI command sets are more interesting. The main reference is the -SCSI Primary Commands (SPC-4) document, specifically these sections: -<itemizedlist> -<listitem><para>self test operations; SEND DIAGNOSTIC command (which is -the mechanism for requesting self tests) -</para></listitem> -<listitem><para>MODE SENSE and MODE SELECT commands (both 6 and 10 byte -variants); Mode parameters [the Informational Exceptions Control (IEC) mode -page and the Control mode page] -</para></listitem> -<listitem><para>LOG SENSE and LOG SELECT commands; -Log parameters [these log pages: Informational exceptions, -read/write/verify error counters, non medium error count, temperature, -start-stop cycle counter and the self test results] -</para></listitem> -</itemizedlist> -The SCSI Block Commands (SBC-3) document covers random access storage -devices such as disks (but excluding CD/DVD readers and writers which are -covered by MMC-4) while the SCSI Streaming Commands (SSC-3) document covers -tape systems. The SBC-3 standard does not contain any additional -information (compared with SPC-4) about Informational Exceptions. -The SSC-3 standard covers TapeAlert (section 4.2.15), some extra facilities in -the IEC mode page (see the mode parameters section) and some additional -log pages. Medium changers, typically the "robots" in jukebox tape systems, -often support the TapeAlert mechanism and are described in the SMC-2 standard. -</para> -</sect1> - -<sect1 id="infoexc"> - <title>Informational Exceptions</title> -<para> -So what are Informational Exceptions in the SCSI context? They are a -set of vendor specific parameters that the device firmware monitors and -if a "failure prediction threshold" is exceeded then an exception is -reported. A user is also able to set thresholds on error counters and -have an exception reported if a condition is met. Additionally most -modern disks monitor their temperature and will issue a warning if -a temperature threshold is exceeded. -</para> -<para> -The "failure prediction threshold" exception reporting and the temperature -warning are separately controlled (in byte 2 of the Informational Exceptions -Control (IEC) mode page). -<footnote><para> -Henceforth the term <emphasis>Informational Exceptions</emphasis> -(or IE) will include both Informational Exceptions and the -temperature (or "enclosure degraded") warnings. -</para></footnote> -In smartmontools the -<command>smartctl -s on <device></command> command turns on IE. -There are various reasons why this may not (fully) work (e.g. IEC mode -page not available or not changeable) so this command queries the device -again after it has attempted the change and reports the state. -The <command>smartctl -s off <device></command> command turns off -IE reporting. -<footnote><para> -IE have a (minor) performance impact on a disk. There are various other -settings in the IEC mode page (e.g. PERF, EBF and LOGERR) that address -this. The standard gives a lot of latitude to the vendor in implementing -these additional flags. This finer level of control may be added to -smartmontools if the need arises. -</para></footnote> -</para> -<sect2 id="iereport"> - <title>IE reporting</title> -<para> -Informational Exceptions are reported via the standard SCSI status -reporting mechanism of an additional sense code (asc) and an additional -sense code qualifier (ascq) pair. A selection of these pairs and the -associated message (there is full list in the SPC-3 document) is listed -here: -<programlisting> -asc ascq message -------------------------------------------------------- -0xb 0x1 Warning - specified temperature exceeded -0x5d 0x0 Failure prediction threshold exceeded -0x5d 0x2 Media failure prediction threshold exceeded -0x5d 0x10 Hardware impending failure general hard drive failure -0x5d 0x11 Hardware impending failure drive error rate too high -0x5d 0x56 Spindle impending failure start unit times too high -0x5d 0xff Failure prediction threshold exceeded (false) -</programlisting> -The last entry in the above table results from setting the TEST bit and -is for exercising the reporting mechanism rather than the indication -of an actual error. -See this <link linkend="testbit">footnote</link> for more information. -</para> -<para> -One difficulty with IE is that the device firmware may detect these -conditions independently of any command executing. Even if it detects -an informational exception during a command it needs to be careful -sending IE error notifications back with a command especially if -that command succeeded (Linux will not handle this too well in the -2.4 kernel series). -There is asynchronous event notification (AEN) in SCSI but it is not -reliably supported across all transports. So smartmontools relies -on a poll from the <command>smartd</command> daemon (the default -is every 30 minutes) to detect informational exceptions. -</para> -<para> -The additional sense code and its qualifier are part of what is termed as -the <emphasis>sense buffer</emphasis> which is the response to a -REQUEST SENSE command. The sense key is also found in the sense buffer. -Synchronous SCSI commands that fail return a single byte status code of -CHECK CONDITION. An OS kernel would see this error/warning status and -then check the sense buffer (by doing a REQUEST SENSE or by other means) -and decide how to continue. From smartmontools's point of view, its -<command>smartd</command> daemon would like to process Informational -Exceptions without interference from the OS. This is done by setting up -the IEC mode page's MRIE field set to 6. This instructs the SCSI -device to hold a pending exception until an unsolicited REQUEST SENSE is -sent. If an exception is pending then the sense key will be "NO SENSE" -and the asc, ascq pair will be set accordingly. In the case of no pending -exception the asc,ascq pair will both be zero. The pending exception is -also visible in the IE log page, if that is supported. So -<command>smartd</command> can check the device during its normal polling -cycle. -</para> -<para> -Pending informational exceptions can also be checked by running -<command>smartctl -H <device></command>. A message of -"SMART Health Status: OK" indicates that there is no pending IE. -<footnote><para> -<anchor id="testbit"/> -One might worry whether the <command>smartd</command> daemon is properly set -up or if the device really will issue IE when the need arises. The mechanism -can be tested by setting the TEST bit in the IEC mode page. That is -done by this command: <command>smartctl -r ioctl,3 -s on <device> -</command> [ignore the extra debugging output that "-r ioctl,3" causes]. A -special asc/ascq pair is reserved for testing (0x5d,0xff) -and the standard associates with it this awkward message: "Failure prediction -threshold exceeded (false)". A call to -<command>smartctl -H <device></command> or waiting until the next -<command>smartd</command> poll should produce that message if the mechanism -is working. The IEC mode page TEST bit can be turned off (i.e. back to normal -IE) with <command>smartctl -s on <device></command>. The output -after the TEST bit has been activated is shown in the -Examples section for the Fujitsu MAM3184 disk. -</para></footnote> -</para> -</sect2> -</sect1> - -<sect1 id="ctldebug"> - <title>smartctl debug</title> -<para> -Debug information for <command>smartctl</command> is output when -the <command>-r ioctl</command> or the <command>-r scsiioctl</command> -option is used. More debug is output when the <command>-r ioctl,<n> -</command> form is used (where "n" is a number greater or equal to 1). Both -<command>-r ioctl</command> and <command>r scsiioctl,1</command> select -the same amount of SCSI debug information. The debug levels currently -defined are: -<itemizedlist> -<listitem><para> -1 - output SCSI commands sent to the device and the status received from -the device -</para></listitem> -<listitem><para> -2 - additionally, output the first 64 bytes of data sent to or received from -the device -</para></listitem> -<listitem><para> -3 - additionally, set the IEC mode page TEST bit if accompanying the '-s on' -option -</para></listitem> -</itemizedlist> -See this <link linkend="testbit">footnote</link> for more information about the -use of the IEC mode page TEST bit. -</para> -<para> -One shortcoming of the Informational Exception data provided by -SCSI devices (at least as defined in the current standard) is that -no LOG SENSE page tells the user how many hours the device has been -in use for. The device needs to track its "age" for applying timestamps -to self test results (seen in the "Lifetime (hours)" column of the -<command>smartctl -l selftest</command> command) if they are supported. -So one way to circumvent this shortcoming is to do dummy self -tests. Hence do a <command>smartctl -t short</command> command and then -wait 2 minutes to see the result in the self test log in which the most -recent self test row (i.e. the first) will have the current lifetime of -the device. -</para> -</sect1> - -<sect1 id="links"> - <title>Links</title> -<para> -Here are some links to related projects and packages: -<itemizedlist> -<listitem><para> -<anchor id="t10"/> -the primary reference site for SCSI architecture, command sets and transports -is <ulink url="http://www.t10.org"> -<literal>www.t10.org</literal></ulink>. The main documents of interest -to smartmontools are the "Primary Commands" (SPC-4), the "Block -Commands" (SBC-3) for disks and the "Streaming Commands" (SSC-3) for -tape drives. This <ulink url="http://www.t10.org/scsi-3.htm"> -<literal>www.t10.org/scsi-3.htm</literal></ulink> page contains a diagram -showing the relationships of various SCSI standards. -<footnote><para> -The documents found on the t10 site are actually <emphasis>draft</emphasis> -standards. Once they are ratified they become available from ANSI for -a fee. The t10 site maintains the last draft prior to ratification and -the most recent draft of yet to be ratified standards. -</para></footnote> -</para></listitem> -<listitem><para> -<anchor id="scsirastools"/> -SCSI raid monitoring tools plus a firmware update utility and other low level -tools <ulink url="http://scsirastools.sourceforge.net"> -<literal>scsirastools.sourceforge.net</literal></ulink> . -</para></listitem> -<listitem><para> -<anchor id="sdparm"/> -The <command>sdparm</command> utility allows mode page settings to be -viewed and changed. It can decode Vital Product Data (VPD) pages. -It implements a small number of commands to start and stop media, -and to eject and load removable media. -See this page <ulink url="http://www.torque.net/sg/sdparm.html"> -<literal>www.torque.net/sg/sdparm.html</literal></ulink> . -<command>sdparm</command> is available on Linux with ports to -FreeBSD, Tru64 and Windows. -</para></listitem> -<listitem><para> -<anchor id="sg3utils"/> -A package of SCSI low level tools for Linux called sg3_utils can be found -on this page <ulink url="http://www.torque.net/sg/sg3_utils.html"> -<literal>www.torque.net/sg/sg3_utils.html</literal></ulink> (the most recent -version is sg3_utils-1.22). Allows command level access to SCSI devices -and is available on Linux with ports to FreeBSD, Tru64 and Windows. -</para></listitem> -<listitem><para> -<anchor id="howto"/> -There is a HOWTO on the Linux SCSI subsystem in the 2.4 series here: -<ulink url="http://www.tldp.org/HOWTO/SCSI-2.4-HOWTO"> -<literal>www.tldp.org/HOWTO/SCSI-2.4-HOWTO</literal></ulink>. -</para></listitem> -</itemizedlist> -</para> - -<para> -CVS $Id: smartmontools_scsi.xml,v 1.16 2006/11/21 20:23:07 dpgilbert Exp $ -</para> -</sect1> -</appendix> - -</article> - diff --git a/www/sphider/search.php b/www/sphider/search.php deleted file mode 100644 index d46143ec8..000000000 --- a/www/sphider/search.php +++ /dev/null @@ -1,145 +0,0 @@ -<?php -/******************************************* -* Sphider Version 1.3.x -* This program is licensed under the GNU GPL. -* By Ando Saabas ando(a t)cs.ioc.ee -********************************************/ -//error_reporting(E_ALL ^ E_NOTICE ^ E_WARNING); -error_reporting(E_ALL); -$include_dir = "./include"; -include ("$include_dir/commonfuncs.php"); -//extract(getHttpVars()); - -if (isset($_GET['query'])) - $query = $_GET['query']; -if (isset($_GET['search'])) - $search = $_GET['search']; -if (isset($_GET['domain'])) - $domain = $_GET['domain']; -if (isset($_GET['type'])) - $type = $_GET['type']; -if (isset($_GET['catid'])) - $catid = $_GET['catid']; -if (isset($_GET['category'])) - $category = $_GET['category']; -if (isset($_GET['results'])) - $results = $_GET['results']; -if (isset($_GET['start'])) - $start = $_GET['start']; -if (isset($_GET['adv'])) - $adv = $_GET['adv']; - - -$include_dir = "./include"; -$template_dir = "./templates"; -$settings_dir = "./settings"; -$language_dir = "./languages"; - - -require_once("$settings_dir/database.php"); -require_once("$language_dir/en-language.php"); -require_once("$include_dir/searchfuncs.php"); -require_once("$include_dir/categoryfuncs.php"); - - -include "$settings_dir/conf.php"; - -include "$template_dir/$template/header.html"; -include "$language_dir/$language-language.php"; - - -if ($type != "or" && $type != "and" && $type != "phrase") { - $type = "and"; -} - -if (preg_match("/[^a-z0-9-.]+/", $domain)) { - $domain=""; -} - - -if ($results != "") { - $results_per_page = $results; -} - -if (get_magic_quotes_gpc()==1) { - $query = stripslashes($query); -} - -if (!is_numeric($catid)) { - $catid = ""; -} - -if (!is_numeric($category)) { - $category = ""; -} - - - -if ($catid && is_numeric($catid)) { - - $tpl_['category'] = sql_fetch_all('SELECT category FROM '.$mysql_table_prefix.'categories WHERE category_id='.(int)$_REQUEST['catid']); -} - -$count_level0 = sql_fetch_all('SELECT count(*) FROM '.$mysql_table_prefix.'categories WHERE parent_num=0'); -$has_categories = 0; - -if ($count_level0) { - $has_categories = $count_level0[0][0]; -} - - - -require_once("$template_dir/$template/search_form.html"); - - -function getmicrotime(){ - list($usec, $sec) = explode(" ",microtime()); - return ((float)$usec + (float)$sec); - } - - - -function poweredby () { - global $sph_messages; - //If you want to remove this, please donate to the project at http://www.sphider.eu/donate.php - print $sph_messages['Powered by'];?> <a href="http://www.sphider.eu/"><img src="sphider-logo.png" border="0" style="vertical-align: middle" alt="Sphider" /></a> - - <?php -} - - -function saveToLog ($query, $elapsed, $results) { - global $mysql_table_prefix; - if ($results =="") { - $results = 0; - } - $query = "insert into ".$mysql_table_prefix."query_log (query, time, elapsed, results) values ('$query', now(), '$elapsed', '$results')"; - mysql_query($query); - - echo mysql_error(); - -} - -switch ($search) { - case 1: - - if (!isset($results)) { - $results = ""; - } - $search_results = get_search_results($query, $start, $category, $type, $results, $domain); - require("$template_dir/$template/search_results.html"); - break; - default: - if ($show_categories) { - if ($_REQUEST['catid'] && is_numeric($catid)) { - $cat_info = get_category_info($catid); - } else { - $cat_info = get_categories_view(); - } - require("$template_dir/$template/categories.html"); - } - break; - } - -include "$template_dir/$template/footer.html"; -?> diff --git a/www/sphider/settings/conf.php b/www/sphider/settings/conf.php deleted file mode 100644 index 19afe59b5..000000000 --- a/www/sphider/settings/conf.php +++ /dev/null @@ -1,179 +0,0 @@ -<?php -/*********************** - Sphider configuration file -***********************/ - - -/*********************** -General settings -***********************/ - -// Sphider version -$version_nr = '1.3.4'; - -//Language of the search page -$language = 'en'; - -// Template name/directory in templates dir -$template = 'standard'; - -//Administrators email address (logs can be sent there) -$admin_email = '<email>'; - -// Print spidering results to standard out -$print_results = 1; - -// Temporary directory, this should be readable and writable -$tmp_dir = 'tmp'; - - -/*********************** -Logging settings -***********************/ - -// Should log files be kept -$keep_log = 0; - -//Log directory, this should be readable and writable -$log_dir = 'log'; - -// Log format -$log_format = 'html'; - -// Send log file to email -$email_log = 0; - - -/*********************** -Spider settings -***********************/ - -// Min words per page required for indexing -$min_words_per_page = 10; - -// Words shorter than this will not be indexed -$min_word_length = 3; - -// Keyword weight depending on the number of times it appears in a page is capped at this value -$word_upper_bound = 100; - -// Index numbers as well -$index_numbers = 1; - -// if this value is set to 1, word in domain name and url path are also indexed,// so that for example the index of www.php.net returns a positive answer to query 'php' even // if the word is not included in the page itself. -$index_host = 0; - - -// Wether to index keywords in a meta tag -$index_meta_keywords = 1; - -// Index pdf files -$index_pdf = 0; - -// Index doc files -$index_doc = 0; - -// Index xls files -$index_xls = 0; - -// Index ppt files -$index_ppt = 0; - -//executable path to pdf converter -$pdftotext_path = 'c:\temp\pdftotext.exe'; - -//executable path to doc converter -$catdoc_path = 'c:\temp\catdoc.exe'; - -//executable path to xls converter -$xls2csv_path = 'c:\temp\xls2csv'; - -//executable path to ppt converter -$catppt_path = 'c:\temp\catppt'; - -// User agent string -$user_agent = 'Sphider'; - -// Minimal delay between page downloads -$min_delay = 0; - -// Use word stemming (e.g. find sites containing runs and running when searching for run) -$stem_words = 0; - -// Strip session ids (PHPSESSID, JSESSIONID, ASPSESSIONID, sid) -$strip_sessids = 1; - - -/*********************** -Search settings -***********************/ - -// default for number of results per page -$results_per_page = 10; - -// Number of columns for categories. If you increase this, you might also want to increase the category table with in the css file -$cat_columns = 2; - -// Can speed up searches on large database (should be 0) -$bound_search_result = 0; - -// The length of the description string queried when displaying search results. // If set to 0 (default), makes a query for the whole page text, // otherwise queries this many bytes. Can significantly speed up searching on very slow machines -$length_of_link_desc = 0; - -// Number of links shown to next pages -$links_to_next = 9; - -// Show meta description in results page if it exists, otherwise show an extract from the page text. -$show_meta_description = 1; - -// Advanced query form, shows and/or buttons -$advanced_search = 1; - -// Query scores are not shown if set to 0 -$show_query_scores = 1; - - - - // Display category list -$show_categories = 1; - -// Length of page description given in results page -$desc_length = 250; - -// Show only the 2 most relevant links from each site (a la google) -$merge_site_results = 0; - -// Enable spelling suggestions (Did you mean...) -$did_you_mean_enabled = 1; - -// Enable Sphider Suggest -$suggest_enabled = 1; - -// Search for suggestions in query log -$suggest_history = 1; - -// Search for suggestions in keywords -$suggest_keywords = 0; - -// Search for suggestions in phrases -$suggest_phrases = 0; - -// Limit number of suggestions -$suggest_rows = 10; - - -/*********************** -Weights -***********************/ - -// Relative weight of a word in the title of a webpage -$title_weight = 20; - -// Relative weight of a word in the domain name -$domain_weight = 60; - -// Relative weight of a word in the path name -$path_weight = 10; - -// Relative weight of a word in meta_keywords -$meta_weight = 5;?> diff --git a/www/sphider/sphider-instructions.txt b/www/sphider/sphider-instructions.txt deleted file mode 100644 index 814355b2a..000000000 --- a/www/sphider/sphider-instructions.txt +++ /dev/null @@ -1,33 +0,0 @@ -$Id: sphider-instructions.txt,v 1.1 2008/04/18 13:56:54 dipohl Exp $ --- Some instructions on how to configure and use *Sphider* - -You can lookup user and passwords for the DBs at sourceforge here: -http://sourceforge.net/project/admin/database.php?group_id=64297 - -We use *Sphider* (http://www.sphider.eu) as search engine for the website. -The admin page is: http://smartmontools.sourceforge.net/sphider/admin/admin.php -You find user and password in /sphider/admin/auth.php -(!!!) Please do _not_ reindex the site, because it doesn't func -at sourceforges place and will delete existing index for the pages! - -------------------------------------- -I made changes at the following files: -------------------------------------- -Added login data for admin account --> sphider/admin/auth.php - -Some corrections to get valid xhtml-Format --> sphider/search.php - -Changed some settings: -$did_you_mean_enabled = 1; # give hint -$advanced_search = 1; # enable advanced search --> sphider/settings/conf.php - -Adapted entries for database access: --> sphider/settings/database.php - -Adapted the templates to our layout --> sphider/templates/standard/footer.html --> sphider/templates/standard/header.html --> sphider/templates/standard/search_form.html diff --git a/www/sphider/templates/standard/footer.html b/www/sphider/templates/standard/footer.html deleted file mode 100644 index bf6c05582..000000000 --- a/www/sphider/templates/standard/footer.html +++ /dev/null @@ -1,20 +0,0 @@ -<br style="clear:left" /> -<hr /> -<div align="center"> -Hosted by<br /> -<a href="http://sourceforge.net/"><img style="border:0;width=:88px;height:31px" - src="http://sourceforge.net/sflogo.php?group_id=64297&type=5" alt="SourceForge.net" /></a> - <br /> -<font size="-1">Last update: $Date: 2008/04/18 13:35:10 $</font><br /> -<a href="http://validator.w3.org/checklink?uri=http%3A%2F%2Fsmartmontools.sourceforge.net%2Fsearch.php">W3C Link-Checker</a><br /> -<a href="http://validator.w3.org/check?uri=referer"><img - src="http://www.w3.org/Icons/valid-xhtml10-blue" - alt="Valid XHTML 1.0 Transitional" height="31" width="88" border="0" /></a> -<a href="http://jigsaw.w3.org/css-validator/check/referer"> - <img style="border:0;width:88px;height:31px" - src="http://jigsaw.w3.org/css-validator/images/vcss-blue" - alt="CSS ist valide!" /></a> -</div> - -</body> -</html> \ No newline at end of file diff --git a/www/sphider/templates/standard/header.html b/www/sphider/templates/standard/header.html deleted file mode 100644 index 3bf5a3731..000000000 --- a/www/sphider/templates/standard/header.html +++ /dev/null @@ -1,38 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> -<head> - <title>smartmontools Home Page (last updated $Date: 2008/04/18 13:36:32 $)</title> - <link rev="made" href="mailto:smartmontools-support@sourceforge.net" /> - <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=ISO-8859-1" /> - <meta name="description" content="smartmontools Home Page" /> - <meta name="keywords" content="S.M.A.R.T., SMART, FreeBSD, Linux, NetBSD, Solaris, Windows, disk, monitor, monitoring" /> -<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /> -<meta http-equiv="content-style-type" content="text/css" /> -<link rel="stylesheet" type="text/css" href="../css/style.css" /> -<!-- <link type="text/css" rel="stylesheet" href="templates/standard/search.css"> --> - <!-- suggest script --> - <style type="text/css">@import url("include/js_suggest/SuggestFramework.css");</style> - <script type="text/javascript" src="include/js_suggest/SuggestFramework.js"></script> - <script type="text/javascript">window.onload = initializeSuggestFramework;</script> - <!-- /suggest script --> -</head> -<body> -<!-- $Id: header.html,v 1.1 2008/04/18 13:36:32 dipohl Exp $ --> -<div id="header"> - <h1><a id="logo" href="http://smartmontools.sourceforge.net/"><img src="../smart_logo.gif" width="105" height="59" border="0" hspace="20" align="middle" name="smartmontools_Logo" alt="S.M.A.R.T. Logo" /></a> - smartmontools Home Page</h1> -</div> - -<div id="mainmenu" class="nav"> - <ul> - <li class="first"><a accesskey="n" href="../index.html">Home</a></li> - <li><a href="../doc.html">Documentation</a></li> - <li><a accesskey="d" href="../download.html">Download</a></li> - <li><a accesskey="f" href="../faq.html">FAQ</a></li> - <li><a accesskey="h" href="../help.html">Help</a></li> - <li><a accesskey="a" href="../about.html">About</a></li> - <li><a accesskey="l" href="../links.html">Links</a></li> - <li class="active last"><a accesskey="s" href="search.php">Search</a></li> - </ul> -</div> - diff --git a/www/sphider/templates/standard/search_form.html b/www/sphider/templates/standard/search_form.html deleted file mode 100644 index 9f168d62f..000000000 --- a/www/sphider/templates/standard/search_form.html +++ /dev/null @@ -1,33 +0,0 @@ -<div class="left-header"><form action="search.php" method="get"> -<?php if ($adv==1 || $advanced_search==1) { -?> -<input type="radio" name="type" value="and" <?php print $type=='and'?'checked="checked"':''?> /><?php print $sph_messages['andSearch']?> -<input type="radio" name="type" value="or" <?php print $_REQUEST['type']=='or'?'checked="checked"':''?> /><?php print $sph_messages['orSearch']?> -<input type="radio" name="type" value="phrase" <?php print $_REQUEST['type']=='phrase'?'checked="checked"':''?> /><?php print $sph_messages['phraseSearch']?><br /> -<?php }?> - -<input type="text" name="query" id="query" size="40" value="<?php print quote_replace($query);?>" /> -<input type="submit" value="<?php print $sph_messages['Search']?>" /><br /> - -<?php if ($adv==1 || $advanced_search==1) { -echo "<br />"; -print $sph_messages['show']?> - <select name='results'> - <option <?php if ($results_per_page==10) echo "selected=\"selected\"";?>>10</option> - <option <?php if ($results_per_page==20) echo "selected=\"selected\"";?>>20</option> - <option <?php if ($results_per_page==50) echo "selected=\"selected\"";?>>50</option> - <option <?php if ($results_per_page==100) echo "selected=\"selected\"";?>>100</option> - </select> - - <?php print $sph_messages['resultsPerPage']?> -<?php }?> - -<?php if ($catid<>0){?> - <center><b><?php print $sph_messages['Search']?></b>: <input type="radio" name="category" value="<?php print $catid?>"><?php print $sph_messages['Only in category']?> "<?php print $tpl_['category'][0]['category']?>'" <input type="radio" name="category" value="-1" checked /><?php print $sph_messages['All sites']?></center> -<?php }?> - <input type="hidden" name="search" value="1" /> - </form> - <?php if ($has_categories && $search==1 && $show_categories){?> - <a href="search.php"><?php print $sph_messages['Categories']?></a> - <?php }?> -</div> \ No newline at end of file diff --git a/www/tmpl.txt b/www/tmpl.txt deleted file mode 100644 index 1b09c06e2..000000000 --- a/www/tmpl.txt +++ /dev/null @@ -1,42 +0,0 @@ -$Id: tmpl.txt,v 1.1 2008/04/12 13:35:09 dipohl Exp $ - -Here you find templates for the new website shape: - ------------------------------------------------------------- -Set code sections using this markup (please not <pre></pre>!) -and insert linebreaks with <br /> : - -<p class="code"></p> - ------------------------------------------------------------- -Markup Pathnames and Programs with: - -<tt></tt> - ------------------------------------------------------------- -If you want to highlight text within paragraphs use: - -<span class="marked"></span> - ------------------------------------------------------------- -Markup for bold text is: (please not <b></b>!) - -<strong></strong> - ------------------------------------------------------------- -Markup for cursive text is: (please not <i></i>!) - -<em></em> - ------------------------------------------------------------- -Icon for external links: - -<img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " /> - ------------------------------------------------------------- -Link within Page "links.html" - -<li><a href="??"> -<img src="pics/linkext.gif" width="11" height="11" border="0" alt="extLink: " />??</a></li> ------------------------------------------------------------- - -- GitLab