Ubuntu 8.04 e a vida útil dos HDs
O caso de redução da vida útil dos HDs de notebooks, tem causado muito barulho e desconfiança dos usuários do Ubuntu. A questão surgiu no Ubuntu 7.04, mas depois de alguns relatos e um teste que eu mesmo fiz, posso afirmar que no Ubuntu 8.04 continuam sendo afetados pelo problema. Neste link [1] você pode obter todas as informações sobre o problema.
No meu caso específico depois de instalar o Ubuntu 8.04, acreditei estar imune ao problema.
Mas para desencargo de consciência resolvi fazer um teste e calculei a vida útil do meu HD em mais de 7 anos. Mas isso por que se trata de um hitachi [2], que neste quesito, segundo o fabricante tem vida útil três vezes maior do que outros fabricantes. Enquanto qualquer HD de notebook suporta 200.000 ciclos de descarregamento da cabeça de gravação os HDs hitachi suporta 600.000 ciclos. O teste foi em um intervalo de 30 minutos em uso onde fiz a contagem de menos de 20 ciclo . Mas como ainda não tinha me convencido fiz um novo teste com intervalo aproximado de 2 horas, com o note praticamente em repouso e para minha triste surpresa quase 1000 ciclos!!!! Então não tive dúvida desativei completamente este recurso do meu HD. Notei que houve um pequeno aumento de 2 graus na temperatura de trabalho, mas totalmente dentro da normalidade.
Para quem tem um notebook com ubuntu e não sabe o que fazer exatamente, eu criei um pequeno script que faz o teste e informa a vida útil estimada do disco. Siga as instruções do script (hdd-vida-util.sh) a seguir que vai realizar o teste dentro de um intervalo de uma hora, o ideal é tentar deixar a máquina em repouso durante uns trinta minutos durante o teste. E caso o resultado não seja satisfatório execute o script hdd-spin-fix.sh, adaptado do Alex's Weblog [1], que desativa completamente o recurso de descarregamento da cabeça de leitura pelo gerenciamento de energia.
#!/bin/bash
#
# hd-vida-util.sh - Verifica a vida útil estimada de um HD de notebook
#
# Autor : Wanderson S. Reis
# -------------------------------------------------------------
# Este script testa e calcula a vida útil do HD em notebooks com o Ubuntu 8.04 LTS.
#
# detalhes sobre este problema:
# http://tutolivre.net/ubuntu-804-e-a-vida-util-dos-hds
# http://alexblog.eeol.org/linux/aumentando-a-vida-util-dos-hds/
#
# como usar:
# $ chmod +x hd-vida-util.sh
# $ sudo ./hd-vida-util.sh
#
#
# É pré-requisito ter o pacote smartmontools instalado:
# $ sudo aptitute install smartmontools
# -------------------------------------------------------------
#
# Histórico:
#
# v0.1 2008-06-13, Wanderson S. Reis:
# - Versão inicial realiza o teste para um intervalo de 60 minutos
#
# Licença: GPL.
#
CICLOS_ESTIMADOS=200000
CICLOS_RESTANDO=0
CICLOS=0
DISCO=/dev/sda
_smartctl=`which smartctl`
$_smartctl -A $DISCO | grep Load_Cycle_Count 1> /dev/null
if [ "$?" = "1" ]
then
echo "Seu disco ($DISCO) não possui o recurso de descarregamento de cabeça de leitura"
echo "Ou seja não se preocupe ;)."
exit 0
fi
L0=`$_smartctl -A $DISCO | grep Load_Cycle_Count | awk -F" " '{print $10}'`
sleep 3600
L1=`$_smartctl -A $DISCO | grep Load_Cycle_Count | awk -F" " '{print $10}'`
CICLOS=$(expr $L1 - $L0)
if [ "$CICLOS" = "0" ]; then
echo "Não houve, variação. É provável que o recurso já esteja desativado."
else
CICLOS_RESTANDO=$(expr $CICLOS_ESTIMADOS - $L1)
VIDA_UTIL_HORA=$(expr $CICLOS_RESTANDO / $CICLOS)
VIDA_UTIL_DIAS=$(expr $VIDA_UTIL_HORA / 8)
echo "Ciclos restantes de vida útil do disco: $CICLOS_RESTANDO"
echo "Vida útil total restante (horas): $VIDA_UTIL_HORA"
echo "Vida útil em dias (média de 8 horas de uso): $VIDA_UTIL_DIAS"
fi
exit 0
Se o seu HD for um hitachi altere a variável CICLOS_ESTIMADOS para 400000 ou 500000. Para descobrir qual o fabricante do seu disco execute no terminal:
$ sudo smartctl -a /dev/sda | grep "Model"
Baixo segue o script que desativa o recurso de descarregamento da cabeça de leitura do hd.
#!/bin/bash
# hdd-spin-fix.sh
# adaptado a partir de: http://alexblog.eeol.org/linux/aumentando-a-vida-util-dos-hds/
PARAM=255
HD=/dev/sda
echo "#!/bin/bash" > 99-hdd-spin-fix.sh
echo "hdparm -B $PARAM $HD" >> 99-hdd-spin-fix.sh
chmod +x 99-hdd-spin-fix.sh
if [ ! -f /etc/acpi/suspend.d/99-hdd-spin-fix.sh ]; then
cp 99-hdd-spin-fix.sh /etc/acpi/suspend.d/
fi
if [ ! -f /etc/acpi/resume.d/99-hdd-spin-fix.sh ]; then
cp 99-hdd-spin-fix.sh /etc/acpi/resume.d/
fi
if [ ! -f /etc/acpi/start.d/99-hdd-spin-fix.sh ]; then
mv 99-hdd-spin-fix.sh /etc/acpi/start.d/
fi
exit 0
Comentem suas experiências e expectativas com relação a este problema e quanto tem abalado a confiança dos usuários no Linux e especialmente no Ubuntu.
[1] - http://alexblog.eeol.org/linux/aumentando-a-vida-util-dos-hds/
[2] - http://www.hitachigst.com/hdd/support/5k160/5k160.htm