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
exit
fi
BLOCKSIZE=8
TESTONLY=
FORCE=
LIST=
......@@ -19,6 +20,9 @@ LIST=
[ "$1" = "--fix" ] && { TESTONLY=$1 ; shift ; }
[ "$1" = "--force" ] && FORCE=$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()
{
......@@ -65,6 +69,11 @@ fix_block()
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
# FIXME: which device??
......@@ -80,11 +89,12 @@ while read devname block ; do
echo "List $block bad block on /dev/$devname ..."
if [ -z "$LIST" ] ; then
echo "Fixing $block block (* 4 + 0...4) on /dev/$devname ..."
fix_block /dev/$devname $(($block*4+0))
fix_block /dev/$devname $(($block*4+1))
fix_block /dev/$devname $(($block*4+2))
fix_block /dev/$devname $(($block*4+3))
sector=$((block*$BLOCKSIZE))
echo "Fixing $block block (sector $sector + 0...7) on /dev/$devname ..."
for i in {0..7} ; do
echo -n " sector $(($sector+$i)) on /dev/$devname ... "
fix_block /dev/$devname $(($sector+$i))
done
fi
done
......@@ -102,3 +112,8 @@ while read devname sector ; do
fix_block /dev/$devname $sector
fi
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