Commit 6890ba32 authored by Vitaly Lipatov's avatar Vitaly Lipatov

fix fix_disk.sh (not all sectors of a block was repaired before)

parent 26880872
...@@ -12,6 +12,7 @@ if [ -z "$1" ] || [ "$1" = "-h" ] || [ "$1" = "--help" ] ; then ...@@ -12,6 +12,7 @@ if [ -z "$1" ] || [ "$1" = "-h" ] || [ "$1" = "--help" ] ; then
exit exit
fi fi
BLOCKSIZE=8
TESTONLY= TESTONLY=
FORCE= FORCE=
LIST= LIST=
...@@ -19,6 +20,9 @@ LIST= ...@@ -19,6 +20,9 @@ LIST=
[ "$1" = "--fix" ] && { TESTONLY=$1 ; shift ; } [ "$1" = "--fix" ] && { TESTONLY=$1 ; shift ; }
[ "$1" = "--force" ] && FORCE=$1 [ "$1" = "--force" ] && FORCE=$1
[ "$1" = "--list" ] && LIST=$1 [ "$1" = "--list" ] && LIST=$1
[ "$1" = "--dev" ] && DEV=$2 && shift 2
[ "$1" = "--sector" ] && SECTOR=$2 && shift 2
[ "$1" = "--block" ] && BLOCK=$2 && shift 2
test_block() test_block()
{ {
...@@ -65,6 +69,11 @@ fix_block() ...@@ -65,6 +69,11 @@ fix_block()
echo "Something still wrong with $block on $DEV" echo "Something still wrong with $block on $DEV"
} }
if [ -n "$DEV" ] && [ -n "$SECTOR" ] ; then
echo "Fixing $SECTOR sector on $DEV ..."
fix_block $DEV $SECTOR
exit
fi
# by dmesg # by dmesg
# FIXME: which device?? # FIXME: which device??
...@@ -80,11 +89,12 @@ while read devname block ; do ...@@ -80,11 +89,12 @@ while read devname block ; do
echo "List $block bad block on /dev/$devname ..." echo "List $block bad block on /dev/$devname ..."
if [ -z "$LIST" ] ; then if [ -z "$LIST" ] ; then
echo "Fixing $block block (* 4 + 0...4) on /dev/$devname ..." sector=$((block*$BLOCKSIZE))
fix_block /dev/$devname $(($block*4+0)) echo "Fixing $block block (sector $sector + 0...7) on /dev/$devname ..."
fix_block /dev/$devname $(($block*4+1)) for i in {0..7} ; do
fix_block /dev/$devname $(($block*4+2)) echo -n " sector $(($sector+$i)) on /dev/$devname ... "
fix_block /dev/$devname $(($block*4+3)) fix_block /dev/$devname $(($sector+$i))
done
fi fi
done done
...@@ -102,3 +112,8 @@ while read devname sector ; do ...@@ -102,3 +112,8 @@ while read devname sector ; do
fix_block /dev/$devname $sector fix_block /dev/$devname $sector
fi fi
done done
#[ 4486.625237] end_request: critical medium error, dev sdh, sector 196651224
#[ 4486.625240] Buffer I/O error on device sdh, logical block 24581403
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment