A vueltas con el reposo de los discos duros en un Mac

Miquel nos pregunta: “Os quería hacer una consulta… En el MacPro tengo 4 discos de los cuales dos no los utilizo muy frecuentemente (virtual machines y data)… Me gustaría poder expulsar los discos de manera rápida e intuitiva sin tener que ir a las opciones de los discos… Rebuscando encontré en un foro un Script que en teoría me desmonta los discos y funciona a la perfección, hago una aplicación que se ejecuta de arranque y punto, el disco ya no aparece en mi escritorio pero… Ese disco (esos) no están montados, pero siguen girando, a mí me gustaría que se expulsaran para reducir el ruido y el consumo de esos dos discos… ¿Hay algún script que lo haga?¿Alguna aplicación? Si queréis os mando el Script que encontré para desmontar que supongo puede resultar interesante para muchos usuarios.

Un saludo y muchas gracias“

El problema del Mac Pro es que no gestiona el reposo de cada disco por separado sino que lo hace todos a la vez. Es implica que cuando se despierta un disco, también lo hacen el resto … y es justo lo que no quieres hacer.

El sistema si que te permite, sin embargo, mandar los discos duros a reposo mientras no están funcionando vía una casilla disponible a través del Panel de Control Economizador … pero es solo una casilla a marcar y el sistema no permite gestionar de forma específica el tiempo que tardará en enviar esos discos a reposo. Aunque hay soluciones.

Primero, el AppleScript

Este es el script utilizado para desmontar los correspondientes disco duros citado por Miquel, por si alguien lo considera útil:

set myVolumeLabel to “Storage HD”

tell application “GrowlHelperApp”

set the allNotificationsList to {“Disk mounted”, “Disk unmounted”}

register as application “Disk Mounter” all notifications allNotificationsList default notifications allNotificationsList icon of application “Disk Utility.app”

end tell

tell application “Finder”

set diskDev to do shell script “diskutil list | grep “” & myVolumeLabel & “” | grep -o ‘disk[1-9]*’ “

if not (disk myVolumeLabel exists) then

do shell script “diskutil mountDisk ” & diskDev

tell application “GrowlHelperApp” to notify with name “Disk mounted” title “Volume mounted” description “Disk “” & diskDev & “” with volume “” & myVolumeLabel & “” has been successfully mounted.” application name “Disk Mounter” icon of application “Disk Utility.app”

else

do shell script “diskutil unmountDisk ” & diskDev

tell application “GrowlHelperApp” to notify with name “Disk unmounted” title “Disk unmounted” description “Disk “” & diskDev & “” with volume “” & myVolumeLabel & “” has been successfully unmounted.” application name “Disk Mounter” icon of application “Disk Utility.app”

end if

end tell

“Storage HD” es el nombre del disco duro, y es una variable que tendrás que cambiar. El Script incluye una serie de avisos para ser usados con Growl, el sistema de notificaciones independiente para Mac OS X, aunque si no lo tienes instalado, no pasa nada, no es necesario.

Gestionando el tiempo de reposo para los discos duros en Mac OS X

Lo primero es activar el reposo de los disco duros cuando sea posible. Esto se realiza desde el Panel de Control Economizador en Preferencias del Sistema.

reposo_macOSX_discosDuros.jpg

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

Como estás usando AppleScript, vamos a incluir el parámetro dentro del lenguaje de AppleScript para poder incluirlo en el script que estabas usando:

do shell script “sudo pmset disksleep 10” password “tucontraseñadeadministrador” with administrator privileges

Al comando sudo pmset -a disksleep VALUE (donde VALUE es el tiempo en minutos) le puedes pasar varios parámetros:

  • -a: para todas las configuraciones de energía
  • -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
  • Si prefieres hacer esto con un Interfaz, las CHUDTools (Computer Hardware Understanding Developer Tools, unas herramientas extra que se instalan opcionalmente con las herramientas de desarrollo de Apple que incluyen una aplicación llamada SpindownHD.app que permite gestionar este tiempo con un interfaz además de tener controlado el estado de los discos duros.

    0 0 votos
    Article Rating
    Subscribe
    Notify of
    4 Comments
    Oldest
    Newest Most Voted
    Opiniones Inline
    Ver todos los comentarios
    Anónimo
    Anónimo
    13 years ago

    Buen post. A mi lo que me pasa en uno de os discos del Mac Pro es que de vez en cuando me salta el aviso de que el disco no se expulsó de manera correcta y se me queda el spootlight trabado y ese disco me desaparece del dock y al apagar el Mac Pro no apaga.

    Gracias de antemano.

    Itnas
    Itnas
    13 years ago

    El script de expulsión no es más sencillo…

    tell application “Finder”
    the disk “DiscoXXXX” eject
    end tell

    Lo que no entiendo de tu post es si el segundo escript (el del reposo) puede ir junto al anterior y si es para todos los discos o le puedes decir cuál es que que quieres que repose, por ejemplo el de TimeMachine ¿?

    Administrador
    13 years ago

    No, el segundo script parametriza el tiempo antes de que se pongan en reposo todos los discos. X minutos. No se pueden poner los discos en reposo por separado o de forma individual.

    Saludos

    —————
    http://www.faq-mac.com

    mnebot
    mnebot
    13 years ago

    Grande Carlos! Grande!
    Mil Gracias!

    4
    0
    Me encantaría saber tu opinión, por favor, deja un comentariox
    ()
    x