Posso configurare il mio Macbook per smontare tutte le unità esterne quando chiudo il coperchio?

10

Ho un nuovo MacBook Pro da 13 "con Mavericks in esecuzione. Questo computer è collegato a un'unità USB esterna che utilizzo per i miei backup di Time Machine e per backup di Time Machine esterni che si verificano alcune volte al giorno e l'unità è in gran parte inattiva per la maggior parte del giorno.

Quando mi sto affrettando verso una riunione, verso la stanza dei server o torno a casa alla fine della giornata, mi piacerebbe fare quanto segue:

  1. Chiudi il coperchio del mio MacBook, rapidamente.
  2. Chiedi al Mac di disinstallare automaticamente tutte le unità esterne, il più rapidamente possibile e, se necessario, con la forza. Sono disposto ad aspettare alcuni secondi affinché tutte le luci si spengano.

C'è un modo per far smontare automaticamente il computer tutte le unità esterne non appena chiudo il coperchio del mio Mac?

Attualmente se dimentico di smontare le unità esterne, il mio Mac mi rimprovera in seguito con l'errore "Il disco non è stato espulso correttamente. Se possibile, espellere sempre un disco prima di scollegarlo o spegnerlo."

So che è meglio smontare sempre un disco in modo pulito prima di rimuovere l'interfaccia del disco, ma sto cercando una soluzione automatizzata. Non sono molto preoccupato se un'immagine di backup di Time Machine viene interrotta o danneggiata, in quanto uno dei prossimi backup successivi funzionerà e molto raramente ho bisogno di ripristinare dal backup. Poiché il filesystem è un filesystem di journaling, il journal si occupa in modo trasparente di molti altri errori di danneggiamento del filesystem.

    
posta Stefan Lasiewski 09.12.2013 - 20:35
fonte

3 risposte

8

Esistono diverse app in grado di eseguire script durante lo stato di sospensione:

  • SleepWatcher - semplice ma efficace.
  • Scenario - puoi anche eseguire script in altri momenti, come dopo il risveglio.
  • ControlPlane - più personalizzabile, ti consente di eseguire script dopo molti eventi diversi.

Uno script bash come il seguente smonterà tutti i dischi specificati:

VOLUMES="/Volumes/drive1 /Volumes/drive2 /Volumes/drive3"
for volume in $VOLUMES ; do [ -d $volume ] && umount -f $volume done

Per smontare tutti i volumi eccetto / :

umount -A

o più pulito ...

osascript -e 'tell application "Finder" to eject (every disk whose ejectable is true)'
    
risposta data 09.12.2013 - 20:42
fonte
6

Un'altra opzione è Jettison (disponibile attraverso l'App Store) - questo è quello che uso da un paio di mesi ora e non ho avuto alcun problema. Recentemente ha ottenuto l'opzione di rimontare automaticamente i dischi ancora connessi quando ti svegli dal sonno.

La versione più recente v1.3.0 (solo download diretto - presumo che sia in arrivo su App Store) costa di più e spiega perché è nelle loro FAQ.

Se l'ho letto correttamente, è possibile acquistare la versione App Store per due dollari e quindi effettuare l'upgrade alla versione per il download diretto gratuitamente, ma non l'ho ancora verificato o provato.

Non esattamente costoso ad entrambi i prezzi, ma non è gratuito come sembra essere l'opzione SleepWatcher.

    
risposta data 02.01.2014 - 19:02
fonte
4

Elaborerò la risposta di @grgarside.

Sto usando SleepWatcher

  1. Installa dalle porte:

    sudo port install sleepwatcher
    
  2. Leggi il manuale in /opt/local/share/doc/sleepwatcher/ReadMe.rtf e tramite man sleepwatcher . Leggi questo vecchio Machint di Macworld: Cura un Mac insonne con SleepWatcher System . Secondo il Machint posso semplicemente aggiungere codice a ~/.sleep e ~/.wakeup , o ai file globali /etc/rc.sleep & /etc/rc.wakeup .

  3. Inserisci il seguente codice in ~/.sleep :

    osascript -e 'tell application "Finder" to eject (every disk whose ejectable is true)'
    
  4. Attiva lo sleepwatcher. Cambia <key>Disabled</key><true/> in <key>Disabled</key><false/> .

    sudo vim /Library/LaunchDaemons/org.macports.sleepwatcher.plist
    sudo launchctl load /Library/LaunchDaemons/org.macports.sleepwatcher.plist
    sudo launchctl list | grep sleepwatcher
    
  5. Verifica:

    ps aux |grep [s]leepwatcher
    root              421   0.0  0.0  2459568   1012   ??  Ss    2:45PM   0:00.00 /opt/local/bin/daemondo --label=sleepwatcher --start-cmd /opt/local/sbin/sleepwatcher --verbose --sleep /opt/local/etc/rc.sleep --wakeup /opt/local/etc/rc.wakeup ; --pid=exec
    root              422   0.0  0.0  2460656   1888   ??  S     2:45PM   0:00.17 /opt/local/sbin/sleepwatcher --verbose --sleep /opt/local/etc/rc.sleep --wakeup /opt/local/etc/rc.wakeup
    
  6. Fatto!

risposta data 09.12.2013 - 23:36
fonte

Leggi altre domande sui tag