L'espulsione di un'unità USB tramite AppleScript non provoca l'arresto del disco

1

All'avvio, espellono i miei dischi USB esterni con il seguente AppleScript:

try
    do shell script "diskutil eject \"/Volumes/USB Backup\""
end try

Funziona come previsto: l'unità si spegne. Tuttavia, quando il mio MacBook si risveglia dal sonno (per non essere utilizzato), l'unità si gira verso l'alto - nessuna partizione è montata, ma l'unità è comunque accesa e ronzante. Se controllo l'app Utility Disco, vedo che le unità USB sono tutte disattivate. Se faccio clic destro su una delle partizioni e selezioni "Espelli partizione" (anche se sono grigie e quindi simboleggiano che vengono espulse), l'unità si spegne.

Tuttavia è un po 'fastidioso dover andare costantemente in Utility Disco, così ho deciso di rieseguire il mio script di accesso. Ma questo non funziona. Anche se lo modifico per funzionare con DeviceIdentifier

do shell script "diskutil unmountDisk disk1"

o

do shell script "diskutil eject disk1"

non funziona. Qualcuno ha un consiglio per me su come posso spegnere l'unità, in modo che questo ronzio orribile si arresti?

Aggiunta successiva: ho notato qualcosa di interessante. Non ha nulla a che fare con la modalità sleep del laptop stesso, ma piuttosto quando il mio Cinema Display si addormenta (dopo 1 minuto). L'unità USB è collegata al Cinema Display e ogni volta che il display si "sveglia", il motore di azionamento si solleva. Ora ho provato a collegare l'unità USB al MacBook Pro stesso (chi ha il timer di spegnimento è a 30 min.) Forse questo risolverà il problema a metà strada.

    
posta Joseph 17.04.2012 - 10:08
fonte

1 risposta

1

Per cominciare, l'aspetto grigio in Utility Disco indica che il disco è non montato , non espulso . Un disco espulso non appare affatto.

Il motivo per cui si presenta è che quando il Cinema Display si sveglia, il computer vede il disco apparire come se lo avessi collegato. (Onestamente, sono sorpreso che non si innesca completamente e mostri sul desktop.)

Una cosa che può aiutare (in particolare nel caso del tuo secondo script) è usare l'identificatore del disco interno invece del nome del disco. Puoi trovare l'identificativo andando in Utility Disco, selezionando il disco (o partizione) in questione e premendo il pulsante Info (o premendo + I ). In quella finestra, guarda l'etichetta accanto a "Disk Identifier:". Un disco (intero disco rigido) potrebbe apparire come "disco0" o "disco2", una partizione appare come "disco0s0", "disco0s2" o "disco2s1". Invece di usare diskutil eject DriveName , usa diskutil eject /dev/disk2s0 .

    
risposta data 17.04.2012 - 20:23
fonte

Leggi altre domande sui tag