Montar y desmontar unidades de disco duro usando Applescript

En muchas ocasiones, los discos duros externos (e incluso los externos) ralentizan el uso del Mac ya que cuando es necesario acceder a una de estas unidades, hay que esperar a que todos los discos vuelvan del reposo automático para poder acceder a uno de ellos. La solución lógica es expulsar el o los discos que no usamos habitualmente y solo montarlos cuando realmente lo necesitamos … pero tampoco es cuestión de esta apagando o encendiendo unidades, sobre todo, porque muchos de estos dispositivos no incluyen botones de encendido.

La solución es sencilla: automatizar con Applescript estas operaciones.

Este script puede adaptarse fácilmente para solo expulsar, o solo montar discos o incluso añadirle un cuadro de diálogo para realizar una de estas acciones:

set diskName to «nombre de tu disco»
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

Fuente: mac OS X Hints

3 Comments

  1. ErreKrbo

    Una cosita:
    Cuando el primer IF es FALSE el script funciona perfectamente pero cuando es TRUE, la linea «eject disk diskName» devuelve » –> error number 0″ y no lo desmonta.
    A qué se debe? alguna ayudita?

  2. ErreKrbo

    Creo que sé a que se debe el problema:
    En mi caso lo que quiero desmontar es una partición del disco de sistema (tengo Snow y Lion). Existe alguna denominación para la PARTICIÓN en vez de para el DISK?