Kann ich mein Macbook so konfigurieren, dass alle externen Laufwerke beim Schließen des Deckels entfernt werden?

10

Ich habe ein neues 13 "Macbook Pro mit Mavericks. Dieser Computer ist an ein externes USB-Laufwerk angeschlossen, das ich für meine Time Machine-Sicherungen und für die externe Speicherung verwende. Time Machine-Sicherungen werden einige Male pro Tag durchgeführt und das Laufwerk ist für die meisten weitgehend inaktiv der Tag.

Wenn ich zu einer Besprechung, zum Serverraum oder nach Hause gehe, 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 und bei Bedarf zwangsweise aushängen. 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 zu entfernen, sobald ich den Deckel meines Mac schließe?

Wenn ich vergesse, die externen Laufwerke abzuhängen, wird ich von meinem Mac später mit dem Fehler "Die Festplatte wurde nicht ordnungsgemäß ausgeworfen. Wenn möglich, werfen Sie eine Festplatte immer aus, bevor Sie sie ausstecken oder ausschalten."

Ich weiß, dass es empfehlenswert ist, eine Festplatte immer sauber zu entfernen, bevor die Festplattenschnittstelle entfernt wird, aber ich suche nach einer automatisierten Lösung. Ich bin nicht sehr besorgt, wenn ein Time Machine-Backup-Image unterbrochen oder beschädigt ist, da eines der nächsten nachfolgenden Backups funktioniert und ich sehr selten eine Wiederherstellung aus dem Backup durchführen muss. Da das Dateisystem ein Journal-Dateisystem ist, werden viele andere Fehler in der Dateisystembeschädigung transparent behoben.

Stefan Lasiewski
quelle
Gibt es einen erheblichen Nachteil, wenn Sie sich von Ihrem Konto abmelden und alle Laufwerke aushängen? Ich glaube auch, dass das Betriebssystem alle E / A-Schreibvorgänge des Dateisystems löscht, sodass die Wahrscheinlichkeit eines tatsächlichen Problems beim Auswerfen im Ruhezustand für mich recht gering erscheint - doppelt so für aufgezeichnete Dateisysteme.
bmike

Antworten:

8

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

  • SleepWatcher - einfach und doch effektiv.
  • Szenario - kann Skripte auch zu anderen Zeiten ausführen, z. B. nach dem Aufwecken.
  • ControlPlane - anpassbarer, ermöglicht das Ausführen von Skripten nach vielen verschiedenen Ereignissen.

Ein Bash-Skript wie das folgende hebt die Bereitstellung aller angegebenen Datenträger auf:

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

So heben Sie alle Volumes außer /:

umount -A

oder sauberer ...

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

Eine weitere Option ist Jettison (im App Store erhältlich) - das verwende ich seit einigen Monaten und hatte überhaupt keine Probleme. Es hat kürzlich die Option erhalten, noch verbundene Festplatten automatisch wieder bereitzustellen, wenn Sie aus dem Ruhezustand aufwachen.

Die neuere Version 1.3.0 (nur direkter Download - ich gehe davon aus, dass sie auf dem Weg zum App Store ist) kostet mehr und sie erklären, warum dies in ihren FAQ steht.

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.

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

man8
quelle
4

Ich werde auf die Antwort von @ grgarside eingehen.

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: Heilen Sie einen schlaflosen Mac mit dem SleepWatcher-System . Laut Machint kann ich einfach Code zu ~/.sleepund ~/.wakeupoder zu den globalen Dateien /etc/rc.sleep& hinzufügen /etc/rc.wakeup.

  3. Geben Sie den folgenden Code ein ~/.sleep:

    osascript -e 'tell application "Finder" to eject (every disk whose ejectable is true)'
    
  4. Aktiviere den Sleepwatcher. 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. Überprüfen:

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

Stefan Lasiewski
quelle
Ich könnte eine Überprüfung dieser Antwort verwenden, um sicherzustellen, dass ich das .plistDing richtig aktiviere .
Stefan Lasiewski
Ich habe es Schritt für Schritt befolgt, aber es funktioniert bei mir nicht. Nach dem Schlafengehen ziehe ich meine externe Festplatte aus der Steckdose, mein MacBook5,3 wacht auf und wenn ich den Deckel öffne, wird der Fehler angezeigt, dass die Festplatte nicht ordnungsgemäß ausgeworfen wurde.
Saaru Lindestøkke
Das funktioniert bei mir aber nur manchmal. Nicht sicher warum.
Stefan Lasiewski
1
Ich bin immer noch auf ML, daher ist es nicht Mavericks-spezifisch und ich erhalte keine Fehler, wenn der Computer aktiv ist. Mir ist aufgefallen, dass das .sleep-Skript manchmal beim Aufwecken ausgeführt wird, als ob es nicht genug Zeit dafür hat, wenn es schlafen geht.
Saaru Lindestøkke
1
Auch eine gute Anleitung hier: damacy.net/post/9377132648/…
Dan