Frage:
Mac OS X erstellt keine Auslagerungsdatei
kayoz
2018-03-15 14:32:26 UTC
view on stackexchange narkive permalink

Vor kurzem sind auf meinem Mac mit High Sierra viele Speicherprobleme aufgetreten. Anstatt das Fenster zum Beenden zu erzwingen, würde mein System vollständig einfrieren und die einzige Möglichkeit zur Wiederherstellung besteht darin, einen Neustart zu erzwingen.

Nach einigen Nachforschungen stellte ich fest, dass mein System keine Auslagerungsdateien erstellt, selbst wenn der Speicherdruck kritisch ist. Das Verzeichnis / private / var / vm / enthält nichts.

Ich habe bereits versucht, sudo launchctl load -wF /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist .

Gibt es eine andere Möglichkeit, das Austauschen zu aktivieren? Oder um eine Diagnose durchzuführen?

Zusatzdetails:

Ich boote von einer externen Thunderbolt-SSD (ich weiß nicht, ob dies die Ursache ist).

Unten sehen Sie die Ausgabe von vm_stat . Wenn ich zu diesem Zeitpunkt etwas speicherintensives mache, friert mein System ein.

  Mach Virtual Memory Statistics: (Seitengröße 4096 Byte)
Seiten frei: 4116.
Seiten aktiv: 854231.
Seiten inaktiv: 825841.
Seiten spekulativ: 27754.
Seiten gedrosselt: 0.
Seiten verkabelt: 606483.
Seiten löschbar: 22070.
"Übersetzungsfehler": 75731290.
Seiten kopieren beim Schreiben: 401121.
Seiten mit Null gefüllt: 49766457.
Seiten reaktiviert: 17690835.
Seiten gelöscht: 1577284.
Dateisicherte Seiten: 503400.
Anonyme Seiten: 1204426.
Im Kompressor gespeicherte Seiten: 6563399.
Vom Kompressor belegte Seiten: 1875311.
Dekompressionen: 21012443.
Kompressionen: 32102441.
Pageins: 2172708.
Pageouts: 35123.
Swapins: 0.
Swapouts: 0.
 

Edit:

Weitere Details:

Dies ist die Ausgabe von diskutil ap list

  APFS-Container (1 gefunden)
|
+ - Container disk4 6BE5FDB5-A68F-4CBF-A404-68AE73E61C10
    ================================================== ==
    APFS-Containerreferenz: disk4
    Kapazität Decke (Größe): 499898105856 B (499,9 GB)
    Verwendete Kapazität nach Volumen: 452259872768 B (452,3 GB) (90,5% verwendet)
    Verfügbare Kapazität: 47638233088 B (47,6 GB) (9,5% kostenlos)
    |
    + -< Physical Store disk3s2 39853349-6B62-4961-99DE-811BA56465EC
    | -------------------------------------------------- ---------
    | APFS Physical Store Disk: disk3s2
    | Größe: 499898105856 B (499,9 GB)
    |
    + -> Volume disk4s1 99688E85-E9EF-3688-A324-913D00FF6A0E
    | -------------------------------------------------- - -
    | APFS Volume Disk (Rolle): disk4s1 (keine bestimmte Rolle)
    | Name: System (Groß- und Kleinschreibung wird nicht berücksichtigt)
    | Einhängepunkt:               /
    | Verbrauchte Kapazität: 449420767232 B (449,4 GB)
    | FileVault: Nein
    |
    + -> Volume disk4s2 729366E4-48AA-45A3-95DA-8871B8A29778
    | -------------------------------------------------- - -
    | APFS Volume Disk (Rolle): disk4s2 (Preboot)
    | Name: Preboot (Groß- und Kleinschreibung wird nicht berücksichtigt)
    | Mount Point: Nicht montiert
    | Verbrauchte Kapazität: 20357120 B (20,4 MB)
    | FileVault: Nein
    |
    + -> Volume disk4s3 431C0191-2B1F-480C-94D0-AF4748E6D213
    | -------------------------------------------------- - -
    | APFS Volume Disk (Rolle): disk4s3 (Wiederherstellung)
    | Name: Wiederherstellung (Groß- und Kleinschreibung wird nicht berücksichtigt)
    | Mount Point: Nicht montiert
    | Verbrauchte Kapazität: 509820928 B (509,8 MB)
    | FileVault: Nein
    |
+ -> Volume disk4s4 5DE0EA6B-CA57-4226-B038-2E256FCC5B98
        --------------------------------------------------- -
        APFS Volume Disk (Rolle): disk4s4 (VM)
        Name: VM (Groß- und Kleinschreibung wird nicht berücksichtigt)
        Mount Point: Nicht montiert
        Verbrauchte Kapazität: 2147504128 B (2,1 GB)
        FileVault: Nein
 

Und die Ausgabe von mount :

  / dev / disk4s1 on / (apfs, lokal, journalisiert)
devfs on / dev (devfs, local, nobrowse)
/ dev / disk2 on / Volumes / Storage (hfs, lokal, journalisiert)
map -hosts on / net (autofs, nosuid, automounted, nobrowse)
map auto_home on / home (autofs, automounted, nobrowse)
 

Solution (aktualisiert): Eine Reihe guter Lösungen wurde vorgeschlagen.Nachdem ich das Problem erneut aufgegriffen habe, würde ich die unten stehende Lösung von lint empfehlen.Dies ist die allgemeinste Methode, mit der Änderungen an Datenträgernamen berücksichtigt werden.

In diesem Thread finden Sie eine Erklärung, was zu tun ist: https://apple.stackexchange.com/questions/126669/how-to-add-hibernate-mode-to-macbook-pro
@Lexs danke für Ihre Antwort, aber ich glaube nicht, dass dieser Thread etwas enthält, das mit meinem Problem zusammenhängt?Oder fehlt mir etwas?
Zwölf antworten:
Michael Golban
2018-06-05 19:40:42 UTC
view on stackexchange narkive permalink

Ich hatte das gleiche Problem, als ich High Sierra auf einer externen SSD installiert habe.

  Volume disk3s4 647DA4A9-7E85-4523-A4D2-F0392D3789D4
        -------------------------------------------------- - -
        APFS Volume Disk (Rolle): disk3s4 (VM)
        Name: VM (Groß- und Kleinschreibung wird nicht berücksichtigt)
        Mount Point: Nicht montiert
        Verbrauchte Kapazität: 4294987776 B (4,3 GB)
        FileVault: Nein
 

Solution:

  1. Erstellen Sie eine Plist-Datei als Root-Benutzer und legen Sie sie im Ordner / Library / LaunchDaemons / ab. Es muss in umgekehrter Domänennotation wie folgt geschrieben werden:

      /Library/LaunchDaemons/local.mountdisk3s4.plist
     
  2. Kopieren Sie einfach diese XML-Daten in Ihre Plist-Datei und ändern Sie den Namen von APFS VM Volume mit Ihrem.

      <? xml version = "1.0" encoding = "UTF-8"? >
    <! DOCTYPE plist PUBLIC "- // Apple Computer // DTD PLIST 1.0 // DE" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version = "1.0" >
    <dict>
         <key>Label< / key>
         <string>THE NAME OF FILE< / string>
         <key>ProgramArguments< / key>
         <array>
              <string> / sbin / mount_apfs< / string>
              <string>YOUR APFS VOLUME< / string>
              <string> / private / var / vm< / string>
         < / array>
         <key>KeepAlive< / key>
         <dict>
        <key>SuccessfulExit< / key>
        <false / >
         < / dict>
    < / dict>
    < / plist>
     

    In meinem Fall sieht es so aus:

      <? xml version = "1.0" encoding = "UTF-8"? >
    <! DOCTYPE plist PUBLIC "- // Apple Computer // DTD PLIST 1.0 // DE" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version = "1.0" >
    <dict>
         <key>Label< / key>
         <string>local.mountdisk3s4< / string>
         <key>ProgramArguments< / key>
         <array>
              <string> / sbin / mount_apfs< / string>
              <string>disk3s4< / string>
              <string> / private / var / vm< / string>
         < / array>
         <key>KeepAlive< / key>
         <dict>
        <key>SuccessfulExit< / key>
        <false / >
         < / dict>
    < / dict>
    < / plist>
     
  3. Starten Sie Ihren Mac neu

  4. ol>
klanomath
2018-03-16 16:09:57 UTC
view on stackexchange narkive permalink

Das dedizierte VM APFS-Volume ist nicht ordnungsgemäß bereitgestellt:

  + -> Volume disk4s4 5DE0EA6B-CA57-4226-B038-2E256FCC5B98
    -------------------------------------------------- - -
    APFS Volume Disk (Rolle): disk4s4 (VM)
    Name: VM (Groß- und Kleinschreibung wird nicht berücksichtigt)
    Mount Point: Nicht montiert
    Verbrauchte Kapazität: 2147504128 B (2,1 GB)
    FileVault: Nein
 

Es sollte am Mount Point / private / var / vm gemountet werden.

Wenn Sie mount in Terminal eingeben, sollte Folgendes angezeigt werden:

  ...
/ dev / disk4s4 on / private / var / vm (apfs, lokal, noexec, journalisiert, noatime, nobrowse)
...
 

Der Grund ist unklar. Zumindest einige Auslagerungsdateien wurden in der Vergangenheit erstellt, da 2,1 GB (= zwei Auslagerungsdateien à 1 GiB) von VM verbraucht werden.


A temporäre Problemumgehung gibt ein anderes Auslagerungsdateiverzeichnis an. Nachdem SIP deaktiviert hat, kann dies durch Ändern der Datei /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist mit sudo nano ... oder erreicht werden LaunchControl.

Original:

  <? xml version = "1.0" encoding = "UTF-8"? >
<! DOCTYPE plist PUBLIC "- // Apple // DTD PLIST 1.0 // DE" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version = "1.0" >
<dict>
    <key>EnableTransactions< / key>
    <true / >
    <key>Label< / key>
    <string>com.apple.dynamic_pager< / string>
    <key>KeepAlive< / key>
    <dict>
        <key>SuccessfulExit< / key>
        <false / >
    < / dict>
<key>POSIXSpawnType< / key>
    <string>Interactive< / string>
    <key>ProgramArguments< / key>
    <array>
        <string> / sbin / dynamic_pager< / string>
    < / array>
< / dict>
< / plist>
 

Mod:

  <? xml version = "1.0" encoding = "UTF-8"? >
<! DOCTYPE plist PUBLIC "- // Apple // DTD PLIST 1.0 // DE" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version = "1.0" >
<dict>
    <key>EnableTransactions< / key>
    <true / >
    <key>Label< / key>
    <string>com.apple.dynamic_pager< / string>
    <key>KeepAlive< / key>
    <dict>
        <key>SuccessfulExit< / key>
        <false / >
    < / dict>
    <key>POSIXSpawnType< / key>
    <string>Interactive< / string>
    <key>ProgramArguments< / key>
    <array>
        <string> / sbin / dynamic_pager< / string>
        <string>-F< / string>
        <string> / vm / swapfile< / string>
    < / array>
< / dict>
< / plist>
 

Wenn das Verzeichnis / vm nicht vorhanden ist, erstellen Sie es:

  sudo mkdir / vm
sudo chmod 755 / vm
 

Starten Sie anschließend Ihren Mac neu. Aktivieren Sie SIP erneut!


Meiner Meinung nach bezieht sich dies auf das 10.13.3 Supplemental Update. Zumindest in meinen verschiedenen High Sierra VMs wurden zusätzliche Ordner / vm erstellt, die jeweils eine verlassene swapfile0 enthalten. Das eigentliche Auslagerungsverzeichnis ist / private / var / vm -> disk1s4 (APFS-VM-Volume) - getestet mit sudo memory_pressure -l kritisch im Terminal.

I muss dies weiter untersuchen.


Um das Problem wirklich zu beheben, sollte das Entfernen und erneute Hinzufügen des irgendwie defekten VM APFS-Volumes helfen:

  • Stellen Sie die Standarddatei com.apple.dynamic_pager.plist
  • wieder her
  • Überprüfen Sie, ob der Ordner / private / var / vm vorhanden ist
  • Booten Sie im High Sierra-Wiederherstellungsmodus
  • Öffnen Sie Terminal in der Menüleiste> Dienstprogramme und geben Sie diskutil ap list ein, um die APFS-Details
  • abzurufen
  • Entfernen Sie das APFS-VM-Volume:

      diskutil ap deleteVolume <av_vmUUID> #<av_vmUUID>: UUID des APFS-Volumes mit der VM-Rolle
     

    In Ihrem Fall lautet av_vmUUID 5DE0EA6B-CA57-4226-B038-2E256FCC5B98, also:

      diskutil ap deleteVolume 5DE0EA6B-CA57-4226-B038-2E256FCC5B98
     
  • Fügen Sie ein APFS-VM-Volume hinzu:

      diskutil ap addVolume diskX APFS VM -mountpoint / private / var / vm -role V.
     

    mit diskX: APFS-Container Referenz des Containers mit der UUID 6BE5FDB5-A68F-4CBF-A404-68AE73E61C10 in der diskutil ap-Liste (wahrscheinlich disk3, disk4 oder disk5)

    Das Volume wird erstellt, aber nicht gemountet, da der angegebene Mountpunkt im Basissystem des Wiederherstellungsmodus nicht vorhanden ist!

  • Starten Sie Ihren Mac neu und überprüfen Sie zunächst, ob die VM mit mount an / private / var / vm gemountet ist. Testen Sie es mit sudo memory_pressure -l kritisch .
Danke für die ausführliche Antwort, aber leider funktioniert das bei mir immer noch nicht. Nach dem Anwenden und Neustarten befindet sich nichts in meinem Ordner / vm /. Ich habe den memory_pressure-Test ausprobiert und es wurde kein Swap erstellt. Ich habe jedoch festgestellt, dass in der Konsole immer wieder das Protokoll "vm_swap_create_file fehlgeschlagen bei XXX Sekunden" angezeigt wird.Und die VM-Festplatte wird immer noch als nicht gemountet angezeigt.
@kayoz Eine mögliche Lösung wurde hinzugefügt
Nochmals vielen Dank für die Zeit, die Sie gebraucht haben, um mir bei der Lösung dieses Problems zu helfen.Leider funktioniert das Entfernen und Erstellen des VM-Volumes immer noch nicht.Nach dem erneuten Erstellen des Volumes wurde seine Größe auf 20 KB reduziert.Wenn ich im normalen Modus neu starte, wird die Lautstärke wieder auf 2 GB erhöht und bleibt nicht aktiviert.
@kayoz Ich versuche eine andere Lösung zu finden!Haben Sie in der Vergangenheit einen Hack verwendet, um die VM auf ein anderes Volume zu verschieben?Oder enthält die TB-Festplatte ein "frisches" HighSierra-System (= kein aktualisiertes System)?
Ich habe das VM-Zeug noch nie berührt.Die TB-Festplatte hat kein neues System.Früher war es Sierra, die auf High Sierra aufgerüstet wurde.Ich habe mein System ursprünglich über eine Zeitmaschinensicherung auf die TB-Festplatte migriert.
@kayoz Eine andere seltsame Sache ist, dass anscheinend 2 Auslagerungsdateien (wahrscheinlich à 1 GiB) erstellt werden.Wie viel RAM ist auf Ihrem Mac installiert?
Ich habe 16 GB RAM.Ich habe dir vor zwei Tagen per E-Mail die Ausgabe geschickt, hast du sie erhalten?
@kayoz Ja, ich habe es verstanden.Ich untersuche es immer noch ...
lint
2018-11-13 07:53:31 UTC
view on stackexchange narkive permalink

Ich hatte das gleiche Problem beim Ausführen von High Sierra (und Mojave seitdem) von einer externen SSD. Ich habe den Vorschlag von Glorfindel ♦ nicht ausprobiert, die Festplatte in Sierra auf HFS + zu löschen, bevor sie in High Sierra wiederhergestellt wird, was eine Menge Arbeit zu sein scheint.

Ich verwende jedoch seit Januar meinen eigenen Startdämon mit einem Bash-Skript, ähnlich wie bei chrisgooley. Mein Skript überprüft jedoch auch, welche Volume-ID gemountet werden soll. Ich dachte, ich würde meine Lösung mit der dynamischen Überprüfung auf die richtige Volume-ID teilen.

Anfangs habe ich auch die Volume-ID fest codiert, aber dies war problematisch, da bei jedem Systemstart mit angeschlossenen zusätzlichen Laufwerken die Volume-ID das Swap-Volume nicht einbinden konnte.

Mein Skript und mein Daemon befinden sich unten:

mountvm.sh

  #! / bin / bash
# Mounten Sie das APFS-VM-Volume, falls es noch nicht gemountet ist

VM_VOLUME = $ (/ usr / sbin / diskutil list | grep "VM" | awk '{print $ 7}')
# echo "VM-Volumen ist $ VM_VOLUME"
für i in {1..5}
tun
    wenn [ ! -e / private / var / vm / sleepimage]
    dann
# echo "$ (Datum" +% a% d /% m /% Y% I:% M:% S% p ") > VM-Volume noch nicht bereitgestellt ..."
# echo -n "$ (Datum" +% a% d /% m /% Y% I:% M:% S% p ") >"
        / usr / sbin / diskutil mount -mountPoint / private / var / vm / $ VM_VOLUME
        Unterbrechung
    sonst
# echo "$ (Datum" +% a% d /% m /% Y% I:% M:% S% p ") > VM-Volume bereits gemountet ..."
        if [$ i -lt 6]
        dann
# echo -n "$ (Datum" +% a% d /% m /% Y% I:% M:% S% p ") > Bestätigung in"
            für die Zählung in {2..1}
            tun
# echo -n "$ count min ..."
                Schlaf 60
            getan
            Echo
        fi
    fi
getan

Ausfahrt 0
 

com.local.mountvm.plist

  <? xml version = "1.0" encoding = "UTF-8"? >
<! DOCTYPE plist PUBLIC "- // Apple // DTD PLIST 1.0 // DE" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version = "1.0" >
<dict>
<key>Label< / key>
    <string>com.local.mountvm< / string>
    <key>ProgramArguments< / key>
    <array>
        <string> [/ path / to / script] /mountvm.sh</string>
    < / array>
    <key>RunAtLoad< / key>
    <true / >
< / dict>
< / plist>
 

Einige Hinweise:

Ändern Sie das [/ path / to / script] in der Liste in die Position, an der Sie das Bash-Skript platzieren.

Entfernen Sie das # in den Echozeilen im Bash-Skript, um Fehler zu beheben (Sie müssen das Skript in Terminal mit sudo ausführen oder einen Standardpfad in der Liste angeben).

Das Skript prüft, ob / private / var / vm / sleepimage vorhanden ist. Ist dies nicht der Fall, wird das Swap-Volume nicht bereitgestellt und versucht, das richtige Volume bereitzustellen. Wenn dies der Fall ist, wird es vor dem Beenden in zwei Minutenintervallen noch viermal überprüft. Der Grund, warum ich dies hinzugefügt habe, war, dass ich festgestellt habe, dass es fehlschlagen würde, wenn ich einfach versuchen würde, das Volume bereitzustellen, sobald der Daemon geladen wird.

Chang-Han Huang
2018-03-27 17:16:50 UTC
view on stackexchange narkive permalink

Ich habe das gleiche Problem nach dem Upgrade. Mein Weg ist einfach, den APFS-Container zu löschen und dann Time Machine zu verwenden, um Sierra mit HFS + wiederherzustellen, und dann High Sierra mit APFS-Partitionen wiederherzustellen. Unten sind meine Konfigurationen aufgeführt, mit denen es funktioniert.

  MacBook-Pro: ~ root # diskutil apfs list
APFS-Container (1 gefunden)
|
+ - Containerscheibe1 96CC8155-6433-4240-B445-3E909F80E1CF
    ================================================== ==
    APFS-Containerreferenz: disk1
    Kapazität Decke (Größe): 250790436864 B (250,8 GB)
    Verwendete Kapazität nach Volumen: 221076267008 B (221,1 GB) (88,2% verwendet)
    Verfügbare Kapazität: 29714169856 B (29,7 GB) (11,8% kostenlos)
    |
    + -< Physical Store disk0s2 0D0BAEFE-FBC0-496D-9260-5F2A5D6B0793
    | -------------------------------------------------- ---------
    | APFS Physical Store Disk: disk0s2
    | Größe: 250790436864 B (250,8 GB)
    |
    + -> Volume disk1s1 5AA2CDA5-EAD1-4D9C-BEE0-E85957526A37
    | -------------------------------------------------- - -
    | APFS Volume Disk (Rolle): disk1s1 (keine bestimmte Rolle)
    | Name: Macintosh HD (ohne Berücksichtigung der Groß- und Kleinschreibung)
    | Einhängepunkt:               /
    | Verbrauchte Kapazität: 218261549056 B (218,3 GB)
    | FileVault: Nein
    |
    + -> Volume disk1s2 4BC0480C-2FED-4B48-A3A5-5E133B707776
    | -------------------------------------------------- - -
    | APFS Volume Disk (Rolle): disk1s2 (Preboot)
    | Name: Preboot (Groß- und Kleinschreibung wird nicht berücksichtigt)
    | Mount Point: Nicht montiert
    | Verbrauchte Kapazität: 19046400 B (19,0 MB)
    | FileVault: Nein
    |
    + -> Volume disk1s3 DF8D07CD-27C0-4EB2-A939-2D3E2E64EB66
    | -------------------------------------------------- - -
    | APFS Volume Disk (Rolle): disk1s3 (Wiederherstellung)
    | Name: Wiederherstellung (Groß- und Kleinschreibung wird nicht berücksichtigt)
    | Mount Point: Nicht montiert
| Verbrauchte Kapazität: 509820928 B (509,8 MB)
    | FileVault: Nein
    |
    + -> Volume disk1s4 27BDB6EB-9BE8-417E-8B03-D2C03E64DD30
        -------------------------------------------------- - -
        APFS Volume Disk (Rolle): disk1s4 (VM)
        Name: VM (Groß- und Kleinschreibung wird nicht berücksichtigt)
        Mount Point: / private / var / vm
        Verbrauchte Kapazität: 2147504128 B (2,1 GB)
        FileVault: Nein
MacBook-Pro: ~ root #
MacBook-Pro: ~ root #
MacBook-Pro: ~ root # diskutil mount -mountPoint / private / var / vm disk1s4
Volume VM auf disk1s4 gemountet
MacBook-Pro: ~ root #


MacBook-Pro: ~ root # vi /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
MacBook-Pro: ~ root # cat /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
<? Xml version = "1.0" encoding = "UTF-8"? >
<! DOCTYPE plist PUBLIC "- // Apple // DTD PLIST 1.0 // DE" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version = "1.0" >
<dict>
    <key>EnableTransactions< / key>
    <true / >
    <key>Label< / key>
    <string>com.apple.dynamic_pager< / string>
    <key>KeepAlive< / key>
    <dict>
        <key>SuccessfulExit< / key>
        <false / >
    < / dict>
    <key>POSIXSpawnType< / key>
    <string>Interactive< / string>
    <key>ProgramArguments< / key>
    <array>
        <string> / sbin / dynamic_pager< / string>
                <string>-F< / string>
<string> / private / var / vm / swapfile< / string>
    < / array>
< / dict>
< / plist>
MacBook-Pro: ~ root # ls -l / sbin / dynamic_pager
-rwxr-xr-x 1 Wurzelrad 43920 1 19 16:32 / sbin / dynamic_pager
MacBook-Pro: ~ root # ls -l / private / var / vm / swapfile *
-rw ------- 1 Root Wheel 1073741824 3 28 00:36 / private / var / vm / swapfile0
 
Ich sehe, Sie haben versucht, Ihre Antwort zu bearbeiten, aber das System hat Sie nicht erkannt.Bitte [Konto erstellen] (/ users / join) und über das Formular [Contact Us] (/ contact) darum bitten, dass es mit Ihrem alten zusammengeführt wird.
Alan Harper
2018-04-20 04:30:39 UTC
view on stackexchange narkive permalink

Ich habe genau die gleichen Symptome.Ich habe High Sierra 10.13.4 auf einer frisch formatierten externen APFS-Thunderbolt-SSD installiert.Der Aktivitätsmonitor zeigt keinen Auslagerungsbereich an, und diskutil apfs list zeigt an, dass die VM-Partition nicht wie oben bereitgestellt ist.Ich habe wiederholt Panik bekommen, wenn mir der Speicher ausgeht (mein Computer hat nur 4 GB RAM).

Meine Lösung, die ich noch nicht getestet habe, besteht darin, einen Carbon Copy Clone der externen Festplatte zu erstellen und diese dann zu löschen und neu zu formatieren (mithilfe des Befehls "Partition" des Festplatten-Dienstprogramms) als Mac OS Extended (Journaled).und dann mit CCC wiederherstellen.Dies sollte mir meine VM zurückgeben.

chrisgooley
2018-10-18 09:21:50 UTC
view on stackexchange narkive permalink

Dieses Problem ist mir beim Upgrade auf Mojave begegnet. Mein Betriebssystem ist auf einer externen SSD installiert. Mein Fix war ähnlich wie der von Michael Golban, aber ich brauchte einen zusätzlichen Befehl.

Am Ende habe ich ein kleines Bash-Skript geschrieben und es mit einem LaunchDaemon geladen.

/ usr / local / sbin / mount_swap.sh

  #! / bin / bash
/ sbin / mount_apfs disk3s4 / private / var / vm
diskutil mount -mountPoint / private / var / vm disk3s4
 

com.local.mountswap.plist

  <? xml version = "1.0" encoding = "UTF-8"? >
<! DOCTYPE plist PUBLIC "- // Apple Computer // DTD PLIST 1.0 // DE" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version = "1.0" >
<dict>
     <key>Label< / key>
     <string>com.local.mountswap< / string>
     <key>ProgramArguments< / key>
     <array>
          <string> / usr / local / sbin / mount_swap.sh< / string>
     < / array>
     <key>KeepAlive< / key>
     <dict>
    <key>SuccessfulExit< / key>
    <false / >
     < / dict>
< / dict>
< / plist>
 

Sobald diese Befehle während des Tests ausgeführt wurden, werden in der Zeile "Swap Used" im Aktivitätsmonitor positive Werte angezeigt.

Hans-Göran Puke
2019-01-13 17:29:24 UTC
view on stackexchange narkive permalink

Ich bin auch in dieser Situation und starte von einer über USB3 angeschlossenen Samsung T5 SSD. Ich habe die Lösung von lint ausprobiert, in meinem Fall jedoch den Befehl

  / usr / sbin / diskutil list | grep "VM" | awk '{print $ 7}'
 

generiert zwei Antworten, da sowohl die interne Festplatte als auch die externe SSD eine Swap-Partition (VM) enthalten. Ich kann selbst keine Lösung für dieses Problem finden (Automatisierung des Montageprozesses beim Booten). Kann also jemand helfen?


[Pinetops] Seltsamerweise kann ich keinen Kommentar hinzufügen, daher werde ich stattdessen Ihre "Antwort" bearbeiten. Ich war in einer ähnlichen Situation (macOS Mojave bootete von einer Samsung T5 1 GB SSD). Ich sehe auch zwei Antworten, wenn ich den obigen Befehl diskutil ausführe, daher denke ich, dass die Antwort von lint für mich nicht funktioniert (außerdem sehe ich eine Datei mit dem Namen / private / var / vm / sleepimage obwohl die VM nicht gemountet ist). Ich habe jedoch die Antwort von Michael Golban ausprobiert und es hat mit minimalem Aufwand funktioniert. Zuerst musste ich herausfinden, welche VM beim Booten von der Samsung SSD gemountet werden sollte. Ich habe dies mit dem folgenden Befehl gemacht und dann nachgesehen, welche Festplatte auf / gemountet wurde.

  / usr / sbin / diskutil ap list
 

Das für mich relevante Ergebnis war:

  + -> Volume disk5s1 14706492-442E-3E44-84D8-C3A216EAB040
| -------------------------------------------------- - -
| APFS Volume Disk (Rolle): disk5s1 (keine bestimmte Rolle)
| Name: Ext macOS (Groß- und Kleinschreibung wird nicht berücksichtigt)
| Einhängepunkt:               /
| Verbrauchte Kapazität: 417911861248 B (417,9 GB)
| FileVault: Nein
 

Jetzt weiß ich also, dass sich die VM auf Festplatte5 befinden sollte. Ich schaue weiter unten in der Ausgabe von diskutil und sehe:

  + -> Volume disk5s4 8FF45FA5-EDB8-4812-947A-C1163BBDF5C4
    -------------------------------------------------- - -
    APFS Volume Disk (Rolle): disk5s4 (VM)
    Name: VM (Groß- und Kleinschreibung wird nicht berücksichtigt)
    Mount Point: Nicht montiert
Verbrauchte Kapazität: 10737463296 B (10,7 GB)
    FileVault: Nein
 

Bratsche! Es sollte disk5s4 als Swap Space mounten. Also folgte ich der Antwort von Michael Golban und ersetzte disk5s4 überall dort, wo er in seinem speziellen Beispiel disk3s4 verwendete. Nach einem Neustart zeigt diskutil ap list , dass disk5s4 ordnungsgemäß bereitgestellt ist.

  + -> Volume disk5s4 8FF45FA5-EDB8-4812-947A-C1163BBDF5C4
    -------------------------------------------------- - -
    APFS Volume Disk (Rolle): disk5s4 (VM)
    Name: VM (Groß- und Kleinschreibung wird nicht berücksichtigt)
    Mount Point: / private / var / vm
    Verbrauchte Kapazität: 10737463296 B (10,7 GB)
    FileVault: Nein
 

Außerdem zeigt vm_stat Nicht-0-Werte für Swapins und Swapouts an.

  Mach Virtual Memory Statistics: (Seitengröße 4096 Byte)
Seiten frei: 15355.
Seiten aktiv: 1504355.
Seiten inaktiv: 1006398.
Seiten spekulativ: 593600.
Seiten gedrosselt: 0.
Seiten verkabelt: 695931.
Seiten löschbar: 217108.
"Übersetzungsfehler": 20908140.
Seiten beim Schreiben kopieren: 566900.
Seiten null gefüllt: 14492420.
Seiten reaktiviert: 1136316.
Seiten gelöscht: 693655.
Dateisicherte Seiten: 1424716.
Anonyme Seiten: 1679637.
Im Kompressor gespeicherte Seiten: 1427995.
Vom Kompressor belegte Seiten: 378113.
Dekompressionen: 426681.
Kompressionen: 3751860.
Pageins: 2715810.
Pageouts: 14437.
Swapins: 438359.
Swapouts: 917646.
 
rferreira.dba
2019-07-28 09:02:23 UTC
view on stackexchange narkive permalink

Ich hatte eine ähnliche Erfahrung, aber mein Setup ist etwas ungewöhnlich. Ich habe:

  1. Ursprünglich ein Fusion-Laufwerk (128SSD + 1 TBHDD), bei dem ich die Festplatte gegen eine SSD eines Drittanbieters (Crucial MX500 (1 TB)) ausgetauscht habe. Und ja, ich habe das Fusion-Laufwerk nach dem Tausch neu erstellt. Jetzt bin ich wieder beim ursprünglichen Fusion-Laufwerk mit 1,2 TB, das jedoch aus zwei SSDs (beide APFS) besteht.
  2. Mit 32 GB etwas mehr RAM als die meisten anderen Systeme (ursprünglich 16 GB, Upgrade auf 32 GB).
  3. Drei externe Laufwerke, zwei über USB 3.0 (AKA 3.1v1) angeschlossene SSDs, eines mit 500 GB (APFS) und das andere mit 256 GB (HFS +) und das dritte Laufwerk ist eine normale Festplatte mit 3 TB (HFS +) über denselben USB-Bus.
  4. Mojave ausführen.
  5. ol>

    Nun, hier trat das Problem auf: Ich habe beschlossen, die 256-GB-SSD in APFS zu konvertieren. Die Umstellung verlief gut. Keine Probleme. Sobald dies abgeschlossen war, zeigte mein Überwachungstool (iStat) jedoch ein zusätzliches Laufwerk mit der Bezeichnung "VM" an. Ich war misstrauisch ... Auch in meinem Fall einzigartig: Ich führe virtuelle Maschinen mit Parallels aus. Wie gesagt, ich war neugierig, was dieses neue Laufwerk mit der Bezeichnung VM in meinem iStat-Menü macht ... Ich stöberte weiter herum und erkannte, dass dies die Auslagerungsdatei sein sollte. Ich habe den Aktivitätsmonitor geöffnet und zu meiner Überraschung war mein Speicher fast voll und der Wert der Auslagerungsdatei lautete 0, was NICHT korrekt ist. OS X soll anfangen, Dinge auf das Swap-Laufwerk zu pagen, anstatt dass der Speicher knapp wird.

    Ich hatte die Vermutung, dass dem Betriebssystem etwas fehlt, wenn es ein Volume in APFS konvertiert, und dass ein Neustart alles war, was ich brauchte, um die Dinge wieder in Ordnung zu bringen. Nun, in MEINEM Fall hat das den Trick getan. Nach dem Neustart begann das System, wie vorgesehen in die Auslagerungsdatei zurückzukehren, und iStat zeigte das "mysteriöse" VM-Laufwerk nicht mehr an. Und alle meine Laufwerke hatten die richtigen Dateisystemversionen.

    Entschuldigung. Ich weiß, dass dies wahrscheinlich nicht zur Lösung der ursprünglichen Frage beiträgt, aber es könnte etwas Licht in das Innenleben des Problems bringen.

    Alles Gute, Rapha.

butterflywings
2019-10-26 02:34:56 UTC
view on stackexchange narkive permalink

Vielen Dank für diese Frage und Antworten! Ich habe monatelang nach einer Lösung für dieses Problem gesucht, bis ich auf diese Seite gestoßen bin.

Ich verwende einen iMac, der auf einer externen Thunderbolt-SSD gestartet wurde. Hat der Maschine neues Leben eingehaucht und ich möchte den Bildschirm auf der Vorderseite nicht abnehmen, um die Festplatte zu wechseln. Das Tolle an Thunderbolt ist, dass der Computer ein externes Laufwerk so behandelt, als wäre es intern angeschlossen.

Diese Antwort wurde von der Antwort von Lint geändert. Dank an ihn für die Arbeit. Auf der Website würde ich seiner Antwort keinen Kommentar hinzufügen, daher poste ich hier.

Einige Änderungen an seinem Skript vorgenommen:

  1. Ich habe einen Sicherungsklon meines Betriebssystemlaufwerks, der auch ein VM-Volume hat. Das Skript von Lint gab für mich zwei VM-Ergebnisse zurück. Mit dieser Änderung können Sie den Namen Ihrer Betriebssystemfestplatte eingeben und das richtige VM-Volume wird zurückgegeben und bereitgestellt.

  2. Lint's Skript sucht nach einem Schlafbild. Bei zwei Computern, auf die ich diesen Fix anwende, hat das Skript das Sleep-Image gefunden, obwohl die VM nicht gemountet war. Das Ergebnis war, dass das Skript die VM nicht bereitgestellt hat.

  3. Ich habe die if-Anweisung entfernt, um nach einem gemounteten Volume zu suchen, und versuche einfach, das Volume fünfmal zu mounten, egal was passiert. Wenn das Volume bereits bereitgestellt ist, wird kein Schaden angerichtet und Sie erhalten eine Meldung, dass das Volume bereitgestellt ist. Dies geschah, weil auch ich Probleme beim Mounten mit dem Startdämon hatte.

  4. hat Echoanweisungen in eine Protokolldatei geschrieben, damit ich die Skriptausgabe beim Testen während eines Neustarts sehen kann.

  5. Wenn Sie das zu testende Skript ausführen, müssen Sie s mounto sh mountvm.sh.

  6. Die Bereitstellung des VM-Volumes wird aufgehoben, sobald sich ein Benutzer oder möglicherweise alle Benutzer abmelden. Ich habe den Startdämon zu / Library / LaunchDaemons hinzugefügt, damit er als Root ausgeführt wird. Solange Sie sich nicht von Ihrem Benutzer abmelden, bleibt die VM gemountet. Wenn Sie den Computer neu starten, sollte das Skript die VM erneut bereitstellen.

  7. ol>

    Danke Lint!Und alle anderen, die zur Beantwortung dieser Frage beigetragen haben!Ich habe jetzt einen Mac, der nicht abstürzt, weil der Speicher voll ist!

    Ändern Sie die Variable OS_BOOT_NAME in den Namen der Festplatte, auf der Sie booten.

      #! / bin / bash
    # Mounten Sie das APFS-VM-Volume, falls es noch nicht gemountet ist
    OS_BOOT_NAME = "X"
    echo $ (Datum) > /Library/Logs/mountvm.log
    VM_VOLUME = $ (/ usr / sbin / diskutil list | grep -A5 "APFS-Volume $ OS_BOOT_NAME" | grep "VM" |
    
    awk '{print $ 7}')
    echo "VM-Volumen ist $ VM_VOLUME"
    echo "VM-Volumen ist $ VM_VOLUME" >> /Library/Logs/mountvm.log
    
    für i in {1..5}
        tun
            / usr / sbin / diskutil mount -mountPoint / private / var / vm / $ VM_VOLUME >> /Library/Logs/mountvm.log
                    Schlaf 60
                    Echo "Mount-Versuche: $ i"
            Echo "Mount-Versuche: $ i" >> /Library/Logs/mountvm.log
        getan
    
    Ausfahrt 0
     
José
2020-03-15 23:30:18 UTC
view on stackexchange narkive permalink

Ich bin bei einer Gelegenheit auf dasselbe Problem gestoßen und habe es mit Michael Golbans einfachster Lösung oben behoben, d. h. ich habe eine Liste hinzugefügt, um das APFS-VM-Volume direkt bereitzustellen.

Leider funktionierte diese Lösung nicht mit anderen Macs, da sich die Nummerierung des Festplattenvolumens aus einem unbekannten Grund zufällig geändert hat. Zu diesem Zeitpunkt habe ich angefangen, die verschiedenen oben genannten Skripte auszuprobieren, konnte aber kein 100% zuverlässiges finden. Lint's Vorschlag funktioniert nicht, wenn / private / var / vm / sleepimage vor dem Mounten des APFS-VM-Volumes auf / private / var / vm / vorhanden ist, was mein Fall war. Also fing ich an, mein eigenes Skript zu schreiben und bemerkte, dass das VM-Volume nach dem Start immer noch nicht gemountet war, und erkannte, dass das Volume während des Bootvorgangs nicht gemountet werden konnte. Nach vielen Umschreibungen und Tests freue ich mich jetzt, eine funktionierende Lösung zu teilen.

/Library/LaunchDaemons/local.mountvm.plist

  <? xml version = "1.0" encoding = "UTF-8"? >
<! DOCTYPE plist PUBLIC "- // Apple // DTD PLIST 1.0 // DE" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version = "1.0" >
<dict>
  <key>Label< / key>
        <string>local.mountvm< / string>
  <key>Program< / key>
        <string> / usr / local / bin / mountvm.sh< / string>
        <key>KeepAlive< / key>
        <dict>
                <key>Crashed< / key>
                <true / >
                <key>SuccessfulExit< / key>
                <false / >
        < / dict>
< / dict>
< / plist>
 

/usr/local/bin/mountvm.sh

  #! / bin / bash
# setze -x
# Dieses Skript soll ein Problem beheben, bei dem macOS (über 10.13) sein dediziertes APFS-Volume für den virtuellen Speicher nicht bereitstellt
# bei Ausführung von einem externen SSD-Laufwerk. Sollte mit macOS 10.13 und höher funktionieren (10.14.6 erfolgreich getestet). Es protokolliert seine Aktivität in /Library/Logs/mountvm.log.


# Nur um den Rest besser lesbar zu machen, wird -n verwendet, um das Echo -n auszulösen, und -c wird verwendet, um die Protokolldatei zu löschen
Log_input () {
    Fall $ 1 in
    "-c")
        echo "$ (Datum): $ 2" > /Library/Logs/mountvm.log
        ;;
    "-n")
        echo -n "$ (Datum):" >> /Library/Logs/mountvm.log
        ;;
    *)
        echo "$ (Datum): $ 1" >> /Library/Logs/mountvm.log
        ;;
    esac
}}


# Stellt sicher, dass ein APFS-Volume an Bord ist, andernfalls wird es beendet
if ["$ (/ usr / sbin / diskutil ap list)" == "Keine APFS-Container gefunden"]; dann
    Log_input "-c" "Kein APFS-Volume gefunden, beendet."
    Ausfahrt 255
fi

# Nimmt die VM-Volume-Zeichenfolge von der Systemfestplatte ab (sollte auch mit mehreren angeschlossenen Betriebssystemfestplatten funktionieren)
ROOT_DISK = $ (/ usr / sbin / diskutil ap list | grep -B 2 -E '/ $' | grep disk | awk '{print $ 6}' | cut -c 1-5)
VM_VOLUME = $ (/ usr / sbin / diskutil ap list | grep -A5 $ ROOT_DISK | grep "(VM)" | awk '{print $ 5}')

# Stellt sicher, dass wir ein VM-Volume zum Mounten haben (wenn jemand mit einem regulären Ausdruck helfen kann, der zu disk0s1, disk1s4 usw. passt, wenden Sie sich bitte an)
if ["$ (echo $ VM_VOLUME | cut -c 1-4)"! = "disk"]; dann
    Log_input "-c" "Es konnte kein VM-Volume zum Mounten gefunden werden."
    Ausfahrt 255
fi


# Von hier aus sollten wir sicher sein, fortzufahren

# Montieren Sie den Attemps-Zähler
MOUNT_ATTEMPTS = 0

# Löscht das Protokoll früherer Einträge
Log_input "-c" "Beim Starten von mount_vm.sh beträgt das VM-Volume $ VM_VOLUME."

# Mounten Sie das VM-Volume und überprüfen Sie es dann alle zehn Sekunden während 5 Minuten
während [$ SECONDS -lt 300]
tun
    / usr / sbin / diskutil ap list | grep -A5 $ VM_VOLUME | grep "Nicht gemountet" >> / dev / null
    VM_status = $?
    case $ VM_status in
    "0")
        ((MOUNT_ATTEMPTS ++))
        Log_input "Versuch, $ VM_VOLUME # $ MOUNT_ATTEMPTS zu mounten"
Log_input "-n"
        / usr / sbin / diskutil mount -mountPoint / private / var / vm / $ VM_VOLUME >> /Library/Logs/mountvm.log
        ;;
    "1")
        Log_input "$ VM_VOLUME ist bereits gemountet und wartet ..."
        ;;
    *)
        Log_input "grep-Befehlsfehler beim Beenden."
        Ausfahrt 255
        ;;
    esac
    Schlaf 10
getan


# Warten Sie weitere 10 Sekunden ...
Schlaf 10

# vor dem Schreiben der endgültigen Protokolleingabe
case $ VM_status in
"1")
    if [$ MOUNT_ATTEMPTS -eq 0]; dann
        Log_input "$ VM_VOLUME wurde bereits beim Start des Skripts gemountet und blieb dies, bis das Skript nach Ablauf von $ SECONDS Sekunden beendet wurde."
    sonst
        Log_input "$ VM_VOLUME blieb nach $ MOUNT_ATTEMPTS-Versuchen gemountet und wurde nach Ablauf von $ SECONDS Sekunden beendet."
    fi
    ;;
"0")
    if [$ MOUNT_ATTEMPTS -gt 0]; dann
        Log_input "$ VM_VOLUME wurde nach $ MOUNT_ATTEMPTS-Versuchen immer wieder nicht gemountet und nach Ablauf von $ SECONDS Sekunden beendet."
    fi
    ;;
esac

Ausfahrt 0
 

Hinweise:

  • Auf einigen Macs ist mir aufgefallen, dass mountvm.log möglicherweise ohne die endgültigen Einträge endet, was bedeutet, dass das Skript beendet wurde. Es scheint, dass die in local.mountvm.plist festgelegten KeepAlive-Bedingungen nicht ausreichen, um das Skript neu zu starten, was zu einer nicht funktionierenden Situation des virtuellen Speichers führen kann.

  • Ich habe auch festgestellt, dass der Ordner / private / var / vm und sein Inhalt möglicherweise dem lokalen Administratorkonto anstelle von root gehören, was ich selbst bei deaktiviertem SIP nicht korrigieren konnte.

Kwadz
2020-07-03 20:37:24 UTC
view on stackexchange narkive permalink

Der folgende Befehl fixed das Problem auf meinem macOS Mojave (10.14.6).Ich verwende auch einen externen bootable HDD.

  sudo ist standardmäßig write / Library / Preferences / SystemConfiguration / autodiskmount AutomountDisksWithoutUserLogin -bool true
 

Mit diesem Befehl kann das System das Laufwerk früher im Prozess (vor der Anmeldung) bereitstellen.Ich denke, es macht es verfügbar, wenn das System (normalerweise zu früh) den Standardpfad des Swaps aktualisieren muss.

enter image description here

miller the gorilla
2018-08-20 20:25:58 UTC
view on stackexchange narkive permalink

Mac OSX High Sierra ist eine Art Linux-Derivat, und viele Linux-Betriebssysteme empfehlen, den Swap bei der Installation auf einer SSD zu deaktivieren, da der in einer Swap-Partition verwendete Speichertyp die magnetischen Medien der SSD in einem potenziellen Bereich stark belastetdestruktiver Weg. Ich würde also vermuten, dass High Sierra den Swap Space auf SSDs standardmäßig deaktiviert. Meine bevorzugte Option ist die Installation des Swap Space auf einem separaten herkömmlichen Laufwerk.

https://askubuntu.com/questions/652337/why-no-swap-partitions-on-ssd-drives

MacOS ist kein Linux-Derivat - Tatsächlich ist das grundlegende Design älter als Linux.Der Austausch ist etwas anders - auch der Austausch auf der Festplatte anstelle von SSDS verlangsamt das System massiv.
Ich stimme Miller zu, dass es nicht ratsam ist, Ihre primäre SSD auszutauschen.Der Austausch auf einem UNIX-System ist flüchtig und ständige Schreibvorgänge verursachen möglicherweise Probleme mit der SSD, und Sektoren müssen aufgrund ausgefallener magnetischer Medien neu zugeordnet werden.Und wenn die Festplatte ausfällt, startet Ihr System nicht. Eine nicht primäre SSD für den Austausch wäre definitiv viel schneller als eine herkömmliche platterbasierte externe Festplatte und der richtige Weg.
Was das Linux <-> macOS betrifft, sind Hühnchen / Ei-Diskussionen: alle Derivate von Dennis Ritchies AT & T Unix.https://en.wikipedia.org/wiki/Unix


Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...