Hinweis: Dies ist eine Frage , die ich vor einiger Zeit bei SuperUser gestellt habe. Ich poste es hier erneut, weil ich denke, dass es hierher gehört.
Standardmäßig speichert Mac OS X seine Auslagerungsdateien in /private/var/vm/
. Ich möchte die Auslagerungsdateien an einem anderen Ort ablegen. Wie geht das?
/private/var/vm/sleepimage
in Super User: Soll ich mein / private / var / vm-Verzeichnis mit einem anderen Volume in OS X Lion verknüpfen? (2011-09-20) - Es gibt eine Antwort, die empfiehlt, nicht dasselbe separate Volume für externe Auslagerungsdateien und Sleepimage zu verwenden.Antworten:
Hinweis: Von SuperUser kopiert:
Informationen zu älteren Versionen von OSX finden Sie in diesem Thread auf forums.macosxhints.com.
Dank geht an dblu für die Erklärung der Verwendung von
plutil
, ZILjr für die Einführung deswait4path
Befehls und ekl für die Vereinfachung des Ganzen, da kein Shell-Zwischenskript erforderlich ist.Komplette Lösung:
1. Öffnen Sie das Terminal und erstellen Sie eine Sicherungskopie von Apples Standard-Dynamic_Pager.plist:
2. Konvertieren Sie die Plist von binärem zu einfachem XML:
3. Öffnen Sie die konvertierte Liste mit dem Texteditor Ihrer Wahl. (Ich benutze
pico
, siehe dblus Antwort für ein Beispiel mitvim
):Es sollte wie folgt aussehen:
4. Ändern Sie das Array
wait4path
ProgramArguments (Zeilen 13 bis 18), um den Shell-Befehl vor dem Starten von dynamic_pager zu verwenden. In Anmerkung 1 finden Sie Einzelheiten dazu, warum dies erforderlich ist. Im folgenden Beispiel wird meine Partition aufgerufenSwap
, und ich habe mich dafür entschieden, die Auslagerungsdateien in einem versteckten Verzeichnis auf dieser Partition abzulegen. Dabei.vm
muss sichergestellt sein, dass das von Ihnen angegebene Verzeichnis tatsächlich vorhanden ist . Das XML sollte wie folgt aussehen:5. Speichern Sie die Liste und kehren Sie zur Eingabeaufforderung des Terminals zurück. Mit
pico
, wären die Befehle:6. Konvertieren Sie die geänderte Plist zurück in eine Binärdatei:
7. Starten Sie Ihren Mac neu. Wenn Sie auf Probleme stoßen, wechseln Sie in den ausführlichen Startmodus, indem Sie Command-v unmittelbar nach dem Startsignal gedrückt halten. Auf diese Weise können Sie alle Startmeldungen anzeigen, die während des Startvorgangs angezeigt werden. Wenn Sie auf noch schlimmere Probleme stoßen (dh wenn Sie den Anmeldebildschirm nie sehen), halten Sie stattdessen Befehl-s gedrückt. Dadurch wird der Computer im Einzelbenutzermodus gestartet (keine grafische Benutzeroberfläche, nur eine Eingabeaufforderung), und Sie können die in Schritt 1 erstellte Sicherungskopie von com.apple.dynamic_pager.plist wiederherstellen.
8. Starten Sie nach dem Start des Computers das Terminal und überprüfen Sie, ob die Auslagerungsdateien tatsächlich verschoben wurden:
Sie sollten so etwas sehen:
9. Löschen Sie die alten Swap-Dateien:
10. Profit!
Anmerkung 1
Das Ändern der Argumente für dynamic_pager in der plist ohne Verwendung von
wait4path
funktioniert nicht immer, und wenn dies fehlschlägt, geschieht dies auf spektakulär stille Weise. Das Problem rührt von der Tatsache her, dass dynamic_pager sehr früh im Startprozess gestartet wird. Wenn Ihre Swap-Partition beim erstmaligen Laden von dynamic_pager noch nicht gemountet wurde (nach meiner Erfahrung passiert dies 99% der Zeit), wird sich das System durchschlagen. Es wird eine symbolische Verknüpfung in Ihrem / Volumes-Verzeichnis erstellt, die denselben Namen wie Ihre Swap-Partition hat, jedoch auf den Standardspeicherort der Swap-Datei (/ private / var / vm) verweist. Wenn Ihre tatsächliche Swap-Partition aktiviert wird, wird ihr der NameSwap 1
(oderYourDriveName 1
) zugewiesen . Sie können das Problem erkennen, indem Sie das Terminal öffnen und den Inhalt Ihres Verzeichnisses / Volumes auflisten:Sie werden so etwas sehen:
Beachten Sie, dass dieser Fehler sehr schwer zu erkennen sein kann. Wenn Sie nach den Swap-Dateien suchen würden, wie ich in Schritt 12 gezeigt habe, würden Sie sie immer noch sehen ! Die symbolische Verknüpfung lässt den Eindruck entstehen, dass Ihre Auslagerungsdateien verschoben wurden, obwohl sie tatsächlich am Standardspeicherort gespeichert waren.
Anmerkung 2
Ursprünglich war es mir nicht möglich, dies in Snow Leopard zum Laufen zu bringen, da com.apple.dynamic_pager.plist im Binärformat gespeichert wurde. Ich habe eine Kopie der Originaldatei erstellt und sie mit Apples Eigenschaftenlisten-Editor (verfügbar mit Xcode) geöffnet, um Änderungen vorzunehmen, aber dieser Prozess hat der plist-Datei einige erweiterte Attribute hinzugefügt, wodurch das System sie ignorierte und nur die Standardeinstellungen verwendete . Wie dblu betonte, funktioniert die
plutil
Konvertierung der Datei in einfaches XML wie ein Zauber.Notiz 3
Sie können die Konsolenanwendung überprüfen, um alle Meldungen zu sehen, die dynamic_pager_init auf dem Bildschirm wiedergibt. Wenn die folgenden Zeilen immer wieder angezeigt werden, liegt ein Problem mit der Einrichtung vor. Ich bin auf diese Nachrichten gestoßen, weil ich vergessen habe, das in dynamic_pager_init angegebene Verzeichnis '.vm' zu erstellen.
Wenn alles ordnungsgemäß funktioniert, wird die obige Meldung möglicherweise nur ein paar Mal angezeigt, und es werden keine weiteren Meldungen zum "Drosseln von Respawns" angezeigt. Das bedeutet, dass das System warten musste, bis die Partition geladen war, aber am Ende war es erfolgreich.
Schließen Sie den Pfad von Time Machine aus
In OS X 10.7 und höher können Sie dies mit tmutil tun . Beispiel:
sudo tmutil addexclusion -p /Volumes/Swap/.vm
So überprüfen Sie das Ergebnis für dieses Beispiel:
tmutil isexcluded /Volumes/Swap && tmutil isexcluded /Volumes/Swap/.vm
Wenn das für den Swap verwendete Volume nicht indiziert werden muss
Verwenden Sie mdutil . Beispiel zum Ausschalten und Löschen des Speichers:
sudo mdutil -i off /Volumes/Swap && sudo mdutil -E /Volumes/Swap
quelle
;)
Ich konnte keine permanente Systemstartlösung einrichten, da 10.10 /etc/.rc beim Booten nicht mehr verwendet und die Methode com.apple.dynamic_pager.plist fehlgeschlagen ist .... jedoch ...
ändert das gespeicherte Präfix wie von gemeldet
für die Dauer der Sitzung, und es überlebt einen Neustart.
Dies könnte als Unix-Befehl in eine Textdatei eingebunden werden:
und bei der Anmeldung ausführen.
quelle
Einfache Lösung:
http://www.macupdate.com/app/mac/10771/swap-relocator
SwapRelocator 1.1.2 funktioniert hervorragend auf Maverick!
Verwenden Sie (zum Beispiel) Tinker Tool System, um Volumes vor der Anmeldung bereitstellen zu lassen, wodurch das einzige Problem behoben wird, auf das ich gestoßen bin.
(Dank Filippo kann ich endlich den Swap vom gespiegelten Boot-Volume auf ein gestreiftes Cache-Volume (alle SSDs) verschieben.)
quelle