Preserve seu HD quando usar Linux!

Recentemente, pesquisando em busca de drivers pra minha placa de rede wifi que funcionassem no linux ubuntu, achei uma informação deveras muito importante.

Ao que tudo indica, em muitos casos, principalmente em se tratando de notebooks e laptops equipados com dispositivos de armazenamento eletromagnéticos (HD, disco rígido, winchester ou como queira chamar) usando distros de linux, há uma configuração default do Gerenciamento Avançado de Energia (APM) que faz com que o HD sofra vários ciclos de Carga/Descarga em um espaço de tempo reduzido. O problema é que um HD tem uma vida útil de ciclos de carga/descarga em torno de 600.000, então é preciso administra-los corretamente caso contrário ele irá começar a dar problemas e eventualmente parar de funcionan em pouco tempo. Então não perca tempo e corrija logo o problema. O artigo completo sobre o assunto pode ser encontrado aqui.

Detectando o problema:

No Ubuntu, para verificar se o gerenciamento de energia está impondo ciclos de carga/descarga demais ao HD, é necessário instalar o smartmontools. Para isso, simplesmente, deve ser executado o comando a seguir.

sudo apt-get install smartmontools

Com o smartmontools instalado, pode-se utilizar o smartctl como segue para visualizar o número de ciclos de carga que o HD já foi submetido.

sudo smartctl -A /dev/sda | grep Load_Cycle_Count

Evidentemente, /dev/sda deve ser substituído com o dispositivo que deseja-se inspecionar.

A saída do comando anterior é algo como segue.

193 Load_Cycle_Count 0×0032 189 189 000 Old_age Always – 35715

Em tal saída, a informação importante é o último número, o 35715. Este é o número de ciclos de carga do HD. Deve-se esperar algo em torno de 10 ou 20 minutos antes do smartctl ser executado novamente. Isso dará uma estimativa de quantas vezes por minuto o HD está sofrendo um ciclo de carga/descarga. Sabendo que um HD pode sofrer 200.000 ciclos desse tipo, pode-se estimar quantas horas de vida útil ele tem. O ideal é que, durante o intervalo de uns 20 minutos, não seja feito (quase) nenhum ciclo de carga. Contudo, ao invés disso, se o sistema de gerenciamento de energia estiver sendo muito agressivo com o HD, deve-se corrigir o problema.

Corrigindo o problema:

Eis um script que pode resolver o problema de forma prática:

#!/bin/sh

PARAM=255
HD=/dev/sda

echo #!/bin/sh > 99-hdd-spin-fix.sh
echo hdparm -B $PARAM $HD >> 99-hdd-spin-fix.sh

chmod +x 99-hdd-spin-fix.sh

cp 99-hdd-spin-fix.sh /etc/acpi/suspend.d/
cp 99-hdd-spin-fix.sh /etc/acpi/resume.d/
mv 99-hdd-spin-fix.sh /etc/acpi/start.d/

Parâmetros importantes do script acima são as variáveis PARAM e HD. A variável PARAM pode ser igual a 255 ou 254. O valor 255 desliga o gerenciamento de energia do HD completamente. Assim, os ciclos de carga serão mínimos, mas o HD ficará a uma temperatura mais elevada que o normal. Contudo, é consenso que o HD pode lidar melhor com alguns graus de temperatura a mais do que muitos ciclos de carga. Por outro lado, o PARAM=254 faz com que o gerenciamento de energia para o HD continue ativo, mas de uma forma menos agressiva. Por último, a variável HD deve ser alterada se o dispositivo do HD que se deseja proteger seja diferente de /dev/sda.

Antes de executar o script anterior deve-se copiar e colar as linhas de código acima em um arquivo texto, salva-lo como hdd-spin-fix.sh e executá-lo como segue.

sudo sh hdd-spin-fix.sh

Pronto! Após isso, a próxima vez que o sistema for iniciado, gerenciamento de energia será bem mais gentil com o HD.
Monitorando outros problemas

Um fato importante a ser observado é que o smartctl não fornece apenas informações sobre a quantidade de ciclos de carga. Por exemplo, o comando a seguir fornece dezenas de informações sobre o HD em /dev/sda.

sudo smartctl -a /dev/sda

Há um excelente artigo do Linux Journal que explica todas as informações retornadas pelo smartctl. Tais informações fornecem estimativas bastantes exatas de quando e porque o HD dará problema. Contudo, não é necessário usar o smartctl frequentemente para monitorar a saúde do HD. Ao invés disso, o pacote smartmontools instala um daemon (o smartd) que é ativado na carga do sistema. Assim, basta instalar o smart-notifier com o comando a seguir para ser notificado por uma janela pop-up quando o HD tem uma grande probabilidade de dar problema.

sudo aptitude install smart-notifier

3 Comentários

  1. Ótimo! Já perdi dois HD’s usando o Ubunto, agora estou usando o opensuse. Instalarei o programa para me precaver que não tenha futuras descobertas frustrantes como as que já tive.
    Parabens!

  2. Mas o que é isso!!??? Meu HD está com +18000 ciclos!!! Só uso ele a um ano!!! (obs.: com Windows!!!)

    • bem, apenas 18.000 em um ano acho bastante rasoável… seguindo essa média ainda terá cerca de 11 anos de vida…


Comentários RSS URI identificador do TrackBack

Deixe um comentário