Script Smartctl para escrever zeros

0

Então eu tenho um disco rígido antigo que era badsectors e eu errado o seguinte script para escrever zeros em badsectors que smartctl encontra. A questão é que isso ajudará os erros de leitura / gravação ou será inútil?

o script (a propósito de qualquer script escrito pela primeira vez):

a="$(smartctl -l selftest /dev/sdb | grep '# 1' | awk '{print  $9}')"
smartctl -t short /dev/sdb
clear
echo $a
b="$(smartctl -l selftest /dev/sdb | grep '# 1' | awk '{print  $5}')"
echo $b
until [[ $a = 0 ]];do
if [[ $b == *Compl* && $a == 0% ]]
        then
            exit
    else
            if [[ $b == *Compl* ]]
                    then
                    echo writting zeros
                    X="$(smartctl -l selftest /dev/sdb | grep 'read failure'| grep '# 1' | awk '{print  $10}')"
                    Y=$((X / 8))
                    Z=${Y%.*}
                    echo $Y
                    dd if=/dev/zero of=/dev/sdb conv=sync bs=4096 count=1 seek=$Y
                    smartctl -t short /dev/sdb
            fi
            sleep 10
            c="$(smartctl -l selftest /dev/sdb | grep '# 1' | awk '{print  $9}')"
            d="$(smartctl -l selftest /dev/sdb | grep '# 1' | awk '{print  $5}')"
                    until [[ $c != $a ]] || [[ $d != $b ]];do
                            sleep 10
                            c="$(smartctl -l selftest /dev/sdb | grep '# 1' | awk '{print  $9}')"
                            d="$(smartctl -l selftest /dev/sdb | grep '# 1' | awk '{print  $5}')"
                            clear
                            echo $c
                            echo $d
                            echo ZZZZzzzzzZZZZ
                    done
            clear
            echo wake up time $(date +"%H:%M:%S")
            a=$c
            b=$d
            echo $a
            echo $b

fi
done
echo done
    
por Νίκος Φυτίλης 13.11.2014 / 22:15

1 resposta

1

É basicamente fútil. Isso pode ajudar por um curto período, mas se o seu disco tiver setores defeituosos, ele só terá mais setores defeituosos com o tempo. É melhor comprar um novo disco e / ou substituí-lo se estiver na garantia. Se não estiver na garantia, faça o backup dos dados válidos em um disco bom, escreva 0s no disco defeituoso pelo menos 10 vezes e leve-o para um local em que ele será reciclado adequadamente.

    
por dobey 13.11.2014 / 22:29