A vueltas con el reposo de un disco duro ruidoso

11/01/2013 por Carlos Burges

La magia de las cajas para discos duros es que puedes cambiar el disco que hay dentro si el chip con el correspondiente firmware tolera la capacidad del disco. Así, a un MyBook de Western Digital le he quitado el disco de 500 GB que venía de serie para ponerle un disco duro de 1 TB de Seagate … y todo perfecto. ¿El problema? que el disco de Seagate es considerablemente ruidoso cuando gira (no cuando lee o escribe) y tiene un zumbido muy molesto.

La solución es evidente: mandar el disco duro a reposo cuando sea posible. La opción más sencilla es realizar esta tarea desde el Panel de Control Economizador marcando la casilla "Poner el disco en reposo cuando se posible". El problema es que el tiempo por defecto que Apple tiene predeterminado para este reposo es un poco largo, pero afortunadamente se puede modificar.

El tiempo, parámetro no disponible en las preferencias, lo vamos a gestionar con un comando de terminal llamado pmset que permite cambiar, entre otras cosas, este parámetro.

Abriremos el Terminal, en Aplicaciones > Utilidades y usaremos el comando:

sudo pmset -a disksleep VALUE

donde VALUE es el tiempo en minutos. Adicionalmente le puedes pasar al sistema varios parámetros:

  • -a: para todas las configuraciones de energía, como es el caso de nuestro ejemplo
  • -b: solo para la batería (en el caso de que sea un portátil)
  • -c: para el cargador de un portátil
  • -u: para un UPS, en el caso de que haya uno disponible

Vamos a estirar un poco más este caso, por ejemplo, para un usuario de portátil con disco duro tradicional que tiene que exprimir su batería al máximo con un Applescript que parametrice este reposo en función de sus intereses:

--llamamos a la aplicación para crear el menú

tell application "System Events"
   
   activate
   
   --Definimos las opciones del menú, con esta sintaxis puedes hacer el menú tan largo como quieras añadiendo mas opciones
   
   set theList to {"1 minuto Batería", "3 minutos Batería", "5 minutos Cargador", "7 minutos Cargador"}
   
   --Permite elegir el elemento y define un elemento seleccionado por defecto
   
   choose from list theList with prompt "Elige una opción" default items {"1 minute"}
   
   set listchoice to result as text
   
end tell

--define la acción por elemento elegido

if listchoice is "1 minuto Batería" then
   
   --aquí iría tu acción de Applescript para ajustar el tiempo de reposo del disco duro. Si te fijas,
   
   do shell script "sudo pmset -b disksleep 1" password "tucontraseñadeadministrador" with administrator privileges
   
   --definimos el resto de acciones para la batería
   
   if listchoice is "3 minutos Batería" then
      
      --aquí iría tu acción de Applescript para ajustar el tiempo de reposo del disco duro. Si te fijas,
      
      do shell script "sudo pmset -b disksleep 3" password "tucontraseñadeadministrador" with administrator privileges
      
      --Así se definen las subsiguientes acciones para el cargador
      
      if listchoice is "5 minutos Cargador" then
         
         --aquí iría tu acción de Applescript para ajustar el tiempo de reposo del disco duro. Si te fijas,
         
         do shell script "sudo pmset -c disksleep 5" password "tucontraseñadeadministrador" with administrator privileges
         
         if listchoice is "7 minutos Cargador" then
            
            --aquí iría tu acción de Applescript para ajustar el tiempo de reposo del disco duro. Si te fijas,
            
            do shell script "sudo pmset -c disksleep 7" password "tucontraseñadeadministrador" with administrator privileges
            
            
            --ahora cerraremos el menú, estas líneas han de ir siempre al final del selector de opciones, una por cada if
            
         end if
         
      end if
      
   end if
   
end if
end

Recuerda que debes cambiar tucontraseñadeadministrador por la correspondiente contraseña. Prueba la aplicación primero como un simple Applescript y si todo está correcto, guárdala como una aplicación para evitar que pueda editarse y alguien pueda ver tu contraseña de administrador.

0
Comentarios
  • #1 por Cristian Contreras el 11/01/2013
    parece que este problema con los discos de 1 TB Seagate es "normal"
    tengo una iMac 27" modelo mid 2011 a la que le pasa lo mismo, noto un ruido molesto como chasquidos golpecitos metálicos cuando enciendo o apago la unidad, se me imagina que el cabezal frena en seco y golpea con algo dentro del disco.
    Al volver del reposo emite un ruido como si el disco estuviese fragmentado, pero no es así. Mientras funciona todo bien no se oye nada, pero cuando trabajas de noche bajo el silencio los sonidos se hacen notorios.

    Esta es mi segunda iMac de 27", ya que cuando la compre tenia el mismo problema, y me reemplazaron la maquina completa porque me di cuenta a los pocos días.
    Ahora pretendo ir a que me recambien el disco, quisiera que usaran un WD pero lo veo dificil por el tema del firmware en estas unidades del 2011 por el tema que se vuelven locos los ventiladores y solo aceptan discos que se instalen por Apple.
  • #2 por Itnas el 11/01/2013
    Por aportar otra opción: crear un script para montar y desmontar un disco externo del escritorio, por ejemplo mi caso, el disco de TimeMachine.
    El script, como no se como aparecerá como comentario lo que sigue, si el moderador lo cree oportuno puede darle otro formato a lo que sigue o cambiar cuanto guste:

    set diskName to "DISCO_CopiaTM"
    tell application "Finder"
    if disk diskName exists then
    eject disk diskName
    else
    tell current application
    set deviceLine to (do shell script "diskutil list | grep \"" & diskName & "\" | awk '{ print substr($0,69,9) }'")
    if deviceLine = "" then
    display dialog "El disco \"" & diskName & "\" no puede encontrarse." buttons {"OK"} default button 1 with title "Error" with icon caution
    end if
    set foundDisks to paragraphs of deviceLine
    repeat with i from 1 to number of items in foundDisks
    set this_item to item i of foundDisks
    if this_item contains "disk" then
    do shell script "diskutil mountDisk /dev/" & this_item
    end if
    end repeat
    end tell
    end if
    end tell
  • #3 por ronum el 11/01/2013
    No estoy seguro de que tenga relación pero creo que sí.

    Por lo que sé, los firmwares de los discos para portátiles tienen un parámetro que hace aparcar los cabezales unos 10 s después de cualquier actividad, como medida de protección frente a golpes. Los SS.OO. basados en UNIX tienen un demonio que está comprobando el Sistema de Archivos muy frecuentemente (y aunque supongo que será configurable no sé cómo modificarlo).

    Esto hace que cuando cambiamos el disco a un MacBook por otro OEM se produzcan ruidos periódicos bastante molestos (similares al del disparador de una cámara fotográfica), y lo que es peor, que se acorte drásticamente la vida del disco.

    En los discos que monta Apple no se oyen porque tienen el firmware modificado: además de la manzana en la etiqueta tienen números de parte algo diferentes de los comercializados por el fabricante.

    Hay una utilidad, HDAPM http://mymacfixes.blogspot.com.es/2009/06/how-do-i-stop-clicking-noise-from-hard.html, que puede configurar el tiempo para el reposo mencionado, pero no funciona con todos los modelos y marcas. Sin embargo, a algunos (incluso con discos de 3,5 '') les ha funcionado.
  • #4 por Carlos Burges el 11/01/2013
    Da gusto el nivel, la verdad. Muchas gracias por los comentarios.
  • #5 por Fakimaki el 11/01/2013
    #3 ronum
    Lo que cuenta Carlos Burges es ruido del giro, no de los cabezales.
    La utilidad HDAPM que enlazas la tuve que instalar en mi MBP cuando cambié el disco duro por un Western Digital porque se oía el cabezal aparcando cada dos por tres y se enlentecía el OSX, lo que se me solucionó con dicha utilidad. La contrapartida es que ahora nunca entra en reposo automáticamente.
    Saludos
  • avatar
    #6 por --472636-- el 13/01/2013
    ronum, creo que apple solo modifica el firmware al hd para el tema de la temperatura y digo solo creo. En cuanto a los hd, en el mac mini late 2012, por jemplo son HItachi y curiosamente no llevan serigrafiada la manzanita.
  • #7 por ezmac el 14/01/2013
    OJO: esto puede tener efectos nefastos... el/los disco/s se ponen a hacer clics que han asustado a más de uno ( a mi ).

    Hasta hace poco no se sabía de donde provenían. Curioso, lo llevabas al SAT y entonces no pasaba nada.

    Algunos discos y sobretodo los 2.5 tienden a aparcar los cabezales con mucha frecuencia ( según ajustes de su firmware ).

    Existe un programa que lo soluciona, pero no doy con él dentro de mi disco duro !!
  • #8 por Miguel Zambrana Infantes el 05/02/2013
    Hola,

    ante todo saludar y agradecer por tanta información como aportáis, resulta de mucha utilidad.

    Veréis, acabo de instalar un SSD en mi MBP de 2011 y he instalado un HDD clásico donde estaba el superdrive. He leído que para los SSD lo mejor es NO activar el reposo ya que cuando están idle reestructuran los sectores (o algo así) para incrementar su vida util (TRIM o Garbage collection).

    ¿Existe forma de programar en terminal que uno de los discos SI repose y el otro no?

    Muchas gracias.
  • #9 por Carlos Burges el 05/02/2013
    #8 No, las preferencias para reposo de los discos se utilizan para todos igual, no pueden granularizarse por unidad.
  • #10 por ezmac el 07/03/2013
    Hace unos días conseguí grabar, al final, los clics del disco duro de mi MBP 17.

    Incluso he encontrado una utilidad que resuelve, en parte, este problema.

    hdapm-1.2.dmg

    El enlace que indico no es el programa en si, ya que existen enlaces a la explicación de los clics, más una guía de uso.

    Espero que le sirva alguien. A pesar de esta, la semana que viene voy a SAT par que me cambien el disco ( que para eso pagué un AppleCare :angel: )