User manual

SANtools® S.M.A.R.T. Disk Monitor (SMARTMon-UX)220
SANTOOLS® is registered in US Patent and Trademark Office No 3,107,854 All rights reserved.
The script, FindBadBlocks.sh utilizes the -bmsr function to enumerate all bad blocks and report them by slice (the
equivalent of a partition). This, in turn, can be used by the system administrator to determine whether or not a repair
is warranted for any particular volume. This script was run against the same Solaris 10 system that supplied the scan
results shown above .
./FindBadBlocks.sh
PhysicalDevPath Days:Hrs:Min Offset State
/dev/rdsk/c1t2d0s0 - - OK
/dev/rdsk/c4t12d0s0 0:00:08 577a4b Recovered via in-place rewrite
/dev/rdsk/c4t12d0s0 32:05:12 381f8 Recovered via in-place rewrite
/dev/rdsk/c4t12d0s0 32:05:22 7598a8e Recovered via in-place rewrite
/dev/rdsk/c4t12d0s0 81:08:19 2cfae2a Recovered via in-place rewrite
/dev/rdsk/c4t12d0s0 81:08:29 9c9036c Recovered via in-place rewrite
/dev/rdsk/c4t12d0s0 91:01:36 77b3f4d Recovered via in-place rewrite
/dev/rdsk/c4t12d0s0 93:18:41 77339d3 Recovered via in-place rewrite
/dev/rdsk/c4t14d0s0 0:02:28 d99d9f7 Recovered via in-place rewrite
/dev/rdsk/c4t14d0s0 6:03:35 761f75d Recovered via in-place rewrite
/dev/rdsk/c4t15d0s0 0:02:13 37fc7 Recovered via in-place rewrite
/dev/rdsk/c4t15d0s0 81:07:54 2bf620f Recovered via in-place rewrite
/dev/rdsk/c4t15d0s0 90:22:34 7b ERR waiting for WRITE Controller/drive hardware failed Track following error
/dev/rdsk/c4t15d0s0 90:22:34 1c8 ERR waiting for WRITE Controller/drive hardware failed Track following error
/dev/rdsk/c4t15d0s0 90:22:34 37fc7 Recovered via in-place rewrite
/dev/rdsk/c4t15d0s0 91:05:52 37fc8 Recovered via in-place rewrite
/dev/rdsk/c4t15d0s0 92:15:00 38039 Recovered via in-place rewrite
/dev/rdsk/c4t15d0s0 92:21:52 d699104 Recovered via in-place rewrite
/dev/rdsk/c4t16d0s0 32:04:36 3b46c18 Recovered via in-place rewrite
/dev/rdsk/c4t16d0s0 92:13:47 80a34 Recovered via in-place rewrite
/dev/rdsk/c4t17d0s0 0:02:07 381a8 Recovered via in-place rewrite
/dev/rdsk/c4t17d0s0 32:04:58 de80f44 Recovered via in-place rewrite
/dev/rdsk/c4t17d0s0 39:05:08 3a44867 Recovered via in-place rewrite
/dev/rdsk/c4t17d0s0 60:06:35 a817a7f Recovered via in-place rewrite
/dev/rdsk/c4t17d0s0 90:07:39 de863e6 Recovered via in-place rewrite
/dev/rdsk/c4t17d0s0 90:23:51 1e240 ERR waiting for WRITE Controller/drive hardware failed Track following error
/dev/rdsk/c4t17d0s0 92:06:10 e01e8c4 Recovered via in-place rewrite
/dev/rdsk/c4t17d0s0 92:14:30 1f62 ERR waiting for WRITE Controller/drive hardware failed Track following error
/dev/rdsk/c4t17d0s0 92:14:30 8034a ERR waiting for WRITE Controller/drive hardware failed Track following error
/dev/rdsk/c4t17d0s0 92:14:30 805b4 ERR waiting for WRITE Controller/drive hardware failed Track following error
/dev/rdsk/c4t17d0s0 93:14:18 e01e8fa Recovered via in-place rewrite
1.53.1 Finding Bad Blocks Script
This is the source code for the FindBadBlocks.sh script shown in previous section. It has only been tested under
Solaris 10, but serves as an example of what can be done to extend the functionality of the -bmsr command.
#!/bin/ksh
#
# Script Copyright 2008 SANtools (R) Inc.
# By David A. Lethe david@santools.com
#
# This script parses bmsr output and provides list of devices and known bad blocks
# It is not in public domain
#
Headed=0
function Header {
if [ $Headed -eq 0 ] ; then
printf "PhysicalDevPath Days:Hrs:Min Offset State\n"
Headed=1
fi
}
function OK {
printf "%-20s - - OK\n" $LASTDEV
}
TFILE=/tmp/smartscan.$$
/etc/smartmon-ux -bmsr > $TFILE
LASTGOOD=""
cat $TFILE | while read a b c d e f LASTDEV h
do
220
217
217