Site Meter
Ver o conteúdo

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



BuscaPé, líder em comparação de preços na América Latina

Leia também:

9 Comentários

  1. Guilherme

    Caraca!!!! O meu está com mais de 309000

    Publicado em 18-Jun-08 às 14:52 | Permalink
  2. wasare

    Guilherme,

    Acompanhei o seu comentário no Alex’s Weblog e realmente a sua situação é muito curiosa!!!

    Meu notebook é exatamente igual ao seu e meu disco é hitachi, pois troquei para aumentar a capacidade. Penso que você deve fazer uma investigação detalhada nos dados técnicos do seu HD (pelo modelo e fabricante), talvez tem mais capacidade de ciclos de carga/descarga da cabeça de leitura. O melhor conselho nesta hora é fazer becape imediatamente e não esperar por sinais de falha, pois podem não aparecer.

    Publicado em 18-Jun-08 às 17:43 | Permalink
  3. João Santana

    Olá, Guilherme.

    Tentei executar seu script mas dá o seguinte erro:

    joao@ubuntu:~$ sudo ./hd-vida-util.sh
    grep: 1: Arquivo ou diretório inexistente
    ./hd-vida-util.sh: 36: gt: not found
    ./hd-vida-util.sh: 36: /dev/null: Permission denied

    Como posso consertar esse erro?

    Publicado em 05-Aug-08 às 11:35 | Permalink
  4. wasare

    João,

    As possíveis causas de erro são:

    - Seu disco não tem suporte a propriedade “Load_Cycle_Count”
    - Ao copiar o script ficou com sintaxe errada onde talvez esteja com isto: & gt ; deve ficar assim: >
    - o interpretador padrão do ubuntu (dash) não é compatível com os comandos, tente executar $ sudo bash

    Publicado em 05-Aug-08 às 12:10 | Permalink
  5. Mario

    Li seu comentário, estou com uma duvida

    Estou instalando Debian 4.0 no meu not HP v6210 br

    O debian pode diminuir a vida ultil do HD deste not

    Se você puder responder agradeço

    Publicado em 15-Aug-08 às 1:20 | Permalink
  6. wasare

    Mario,

    eu não ouvi nenhum relato deste problema com o Debian. Tudo indica que foi um caso exclusivo do Ubuntu, mas para tirar a dúvida faça os testes propostos e tire conclusões.

    Outra coisa importante sobre este modelo de note é o recall da HP: http://h10025.www1.hp.com/ewfrf/wc/document?docname=c01319037&lc=pt&cc=br&lang=pt&product=3432960&dlc=pt

    A série do meu notebook está no recall, mas até agora não apresentou nenhum sintoma.

    Publicado em 15-Aug-08 às 7:40 | Permalink
  7. Machizu

    wasare, o meu note é um Microboard Innovation SR, HD 120gb. Instalei ontem o Ubuntu 8.04. Estou com dúvida sobre seu relato: desativando esse recurso, a vida util do HD aumenta? O que esse recurso tras de bom? Obrigado.

    Publicado em 22-Aug-08 às 15:03 | Permalink
  8. wasare

    Machizu,

    Não exatamente…isto apenas evita uma possível degradação no tempo da vida útil do disco.

    Você pode obter mais detalhes sobre este problema em:

    http://alexblog.eeol.org/linux/aumentando-a-vida-util-dos-hds/

    Publicado em 22-Aug-08 às 15:39 | Permalink
  9. Olá, acabei de perder um hd e estou quase convencido que foi o ubuntu e esse problema, ao fazer o uso do script notei que em meia hora ele fez uma média de 73 ciclos, não sei se isso é bom ou é ruim…. Não to querendo perder outro hd :)

    vlw

    Publicado em 01-Nov-08 às 14:32 | Permalink

Envie um Comentário

Seu email nunca será publicado ou revelado a terceiros. Campos obrigatórios são marcados com *
*
*