opensolarisでディスクの表面検査だが、もうにゃんかもうちょっとマシにゃ物はにゃいんかね。
zpool scrubするとIO負荷高すぎだし、停止したら最初からやり直しだし。
formatでパーティション指定したら無限ループするし。
もうddで読んでエラーでにゃきゃもうそれでいいや、ってことで、
dd if=/dev/rdsk/c8t0d0p0 bs=1048576 count=9000000 | wc -c
とかで。値の9TBは大きい目の数字というだけ。
ま、このp0でいいのかってのが非常に微妙にゃのだが、s2とか状況に応じてやるしかにゃいか
ディスクの容量
iostat -En | grep -v "^Vendor:" |grep -v "^Media Error:" | grep -v "^Illegal Request:" |
sed -e 's/Soft Errors:.*//' -e 's/ bytes.*//' -e 's/ *$//' -e 's/.* //' -e 's/^<//' -e 's/\n//' |
while read a ; do read b ; echo $a $b ; done
とwcの出力を比較すると、一応全容量読んで止まってくれてる感じはするんだよね。まぁあんまし検証してにゃいけど。
てことで合わせると、
iostat -En | grep -v "^Vendor:" |grep -v "^Media Error:" | grep -v "^Illegal Request:" |
sed -e 's/Soft Errors:.*//' -e 's/ bytes.*//' -e 's/ *$//' -e 's/.* //' -e 's/^<//' -e 's/\n//' |
while read a ; do read b ; echo $a $b ; done |
while read a b ; do
dd if=/dev/rdsk/${a}p0 bs=512 count=1 >/dev/null 2>/dev/null || continue
echo $b $a start
dd if=/dev/rdsk/${a}p0 bs=1048576 count=`expr $b / 1024 / 1024 + 1` | wc -c
echo $b $a end
done
みたいにゃ感じ?
ddでいいの?って点は大いに不安であるが(笑)