Monday, July 30, 2007

chkbootblk.sh

i wrote a small shell script as proof of concept for checking for corrupted boot-blocks in solaris.
there you go:
#!/bin/ksh

ARCH=`uname -i`
DEV=`df -k / | awk '{ print $1 }' | tail -1`
PREDEF="/tmp/chkbootblk_predef.tmp"
CURRENT="/tmp/chkbootblk_current.tmp"

dd if=/usr/platform/$ARCH/lib/fs/ufs/bootblk \
ibs=1b count=1 | od -c | head -3 > /tmp/chkbootblk_predef.tmp

dd if=$DEV ibs=1b iseek=1 count=1 | od -c | \
head -3 > /tmp/chkbootblk_current.tmp

cmp -s $PREDEF $CURRENT
if [ $? = 0 ]
then echo "*********************************"
echo "* BOOT-BLOCK SEEMS TO BE O.K. *"
echo "*********************************";
else echo "*********************************"
echo "* WARNING: CORRUPTED BOOT-BLOCK *"
echo "*********************************";
fi

rm $PREDEF $CURRENT

1 comment:

Anonymous said...
This comment has been removed by the author.