Kann ich mein MacBook so konfigurieren, dass alle externen Laufwerke deaktiviert werden, wenn ich den Deckel schließe?

Ich habe ein neues 13-Zoll-Macbook Pro, auf dem Mavericks ausgeführt wird. Dieser Computer ist an ein externes USB-Laufwerk angeschlossen, das ich für meine Time Machine-Sicherungen und als externen Speicher verwende. Time Machine-Sicherungen werden einige Male am Tag durchgeführt, und das Laufwerk ist die meiste Zeit weitgehend inaktiv der Tag.

Wenn ich zu einem Meeting, in den Serverraum oder am Ende des Tages nach Hause eile, möchte ich Folgendes tun:

  1. Schließen Sie schnell den Deckel meines Macbooks.
  2. Lassen Sie den Mac alle externen Laufwerke so schnell wie möglich automatisch unmounten und bei Bedarf erzwingen. Ich bin bereit, ein paar Sekunden zu warten, bis alle Lichter ausgehen.

Gibt es eine Möglichkeit, den Computer dazu zu bringen, alle externen Laufwerke automatisch abzumelden, sobald ich den Deckel meines Mac schließe?

Wenn ich derzeit vergesse, die externen Laufwerke auszuhängen, tadelt mich mein Mac später mit dem Fehler „Der Datenträger wurde nicht ordnungsgemäß ausgeworfen. Wenn möglich, werfen Sie einen Datenträger immer aus, bevor Sie ihn entfernen oder ausschalten.“

Ich weiß, dass es am besten ist, eine Festplatte immer sauber zu unmounten, bevor die Festplattenschnittstelle entfernt wird, aber ich suche nach einer automatisierten Lösung. Ich mache mir keine großen Sorgen, wenn ein Time Machine-Backup-Image unterbrochen oder beschädigt wird, da eines der nächsten nachfolgenden Backups funktioniert und ich sehr selten aus dem Backup wiederherstellen muss. Da das Dateisystem ein Journaling-Dateisystem ist, kümmert sich das Journal transparent um viele andere Dateisystembeschädigungsfehler.

Da durch das Abmelden von Ihrem Konto alle Laufwerke getrennt werden, gibt es einen erheblichen Nachteil, wenn Sie sich einfach abmelden? Außerdem glaube ich, dass das Betriebssystem alle Dateisystem-E / A-Schreibvorgänge löscht, sodass die Wahrscheinlichkeit eines tatsächlichen Problems mit dem Auswurf während des Ruhezustands mir ziemlich gering erscheint - doppelt so für aufgezeichnete Dateisysteme.

Antworten (3)

Es gibt eine Reihe von Apps, die Skripts im Ruhezustand ausführen können:

  • SleepWatcher – einfach und doch effektiv.
  • Szenario – kann Skripte auch zu anderen Zeiten ausführen, z. B. nach dem Aufwachen.
  • ControlPlane – besser anpassbar, lässt Sie Skripte nach vielen verschiedenen Ereignissen ausführen.

Ein Bash-Skript wie das folgende wird alle angegebenen Festplatten unmounten:

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

So unmounten Sie alle Volumes außer /:

umount -A

oder sauberer…

osascript -e 'tell application "Finder" to eject (every disk whose ejectable is true)'

Eine andere Option ist Jettison (erhältlich über den App Store) – das verwende ich jetzt seit ein paar Monaten und hatte überhaupt keine Probleme. Es hat kürzlich die Option erhalten, noch verbundene Festplatten automatisch neu zu mounten, wenn Sie aus dem Ruhezustand aufwachen.

Die neuere v1.3.0 (nur direkter Download - ich nehme an, sie ist auf dem Weg in den App Store) kostet mehr und sie erklären in ihren FAQ, warum das so ist.

Wenn ich das richtig gelesen habe, könnte man die App Store-Version für zwei Dollar kaufen und dann kostenlos auf die Direkt-Download-Version upgraden, aber ich habe dies nicht bestätigt oder ausprobiert.

Nicht gerade teuer zu beiden Preisen, aber nicht kostenlos, wie es die SleepWatcher-Option zu sein scheint.

Ich werde die Antwort von @grgarside näher erläutern.

Ich benutze SleepWatcher

  1. Von Ports installieren:

    sudo port install sleepwatcher
    
  2. Lesen Sie das Handbuch unter /opt/local/share/doc/sleepwatcher/ReadMe.rtfund über man sleepwatcher. Lesen Sie diesen alten Machint von Macworld: Cure an insomniac Mac with SleepWatcher System . Je nach Machint kann ich einfach Code zu ~/.sleepund ~/.wakeupoder zu den globalen Dateien /etc/rc.sleep& hinzufügen /etc/rc.wakeup.

  3. Fügen Sie den folgenden Code ein ~/.sleep:

    osascript -e 'tell application "Finder" to eject (every disk whose ejectable is true)'
    
  4. Sleepwatcher aktivieren. Wechseln Sie <key>Disabled</key><true/>zu <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. Verifizieren:

    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. Getan!

Ich könnte eine Überprüfung dieser Antwort gebrauchen, um sicherzustellen, dass ich das .plistDing richtig aktiviere.
Ich habe es Schritt für Schritt befolgt, aber es funktioniert bei mir nicht. Nach dem Ruhezustand trenne ich meine externe Festplatte, mein MacBook 5,3 wacht auf und wenn ich den Deckel öffne, erhalte ich den Fehler, dass die Festplatte nicht ordnungsgemäß ausgeworfen wurde.
Das funktioniert bei mir, aber nur manchmal. Nicht sicher warum.
Allerdings erhalte ich auch die Fehlermeldung „Die Diskette wurde nicht richtig ausgeworfen. Werfen Sie eine Diskette nach Möglichkeit immer aus, bevor Sie sie ausstecken oder ausschalten.“ während die Maschine aktiv ist, mit geöffnetem Deckel, während ich sie auch benutze. Es scheint, dass Mavericks einen Fehler mit sporadischen Fehlern in Bezug auf USB-Festplatten hat.
Ich bin immer noch auf ML, also ist es nicht Mavericks-spezifisch, und ich erhalte keine Fehler, wenn die Maschine aktiv ist. Mir ist aufgefallen, dass das .sleep-Skript manchmal beim Aufwachen ausgeführt wird, als ob es nicht genug Zeit dafür hätte, wenn es schlafen geht.
Ich habe dies jetzt deaktiviert, da es nicht konstant zu funktionieren scheint. Außerdem stoße ich auf einen Mavericks "Sleep Wake Failure"-Absturz und versuche herauszufinden, ob mein Sleepwatcher-Skript der Übeltäter war.
Auch hier eine gute Anleitung: damacy.net/post/9377132648/…