Das Macbook meiner Freundin stürzte ab, als versucht wurde, eine Datei aus dem Ruhezustand wiederherzustellen. Der Fortschrittsbalken wurde bei ~ 10% angehalten. Danach haben wir den Computer für einen normalen Start neu gestartet.
Für dieses Speicherbild im Ruhezustand war in Pages ein nicht gespeichertes Dokument geöffnet, das wir wiederherstellen möchten. Es gibt ein sleepimage
In /private/var/vm
, von dem ich annehme, dass es sich um das Ruhezustand-Image handelt, das nie korrekt wiederhergestellt wurde. Wir haben dieses Ding gesichert, um es am Leben zu erhalten.
Wir haben es versucht, strings sleepimage | grep known_substring
aber es hat nichts zurückgegeben. grep -a known_substring sleepimage
Ich habe auch nichts getan, daher gehe ich davon aus, dass Pages die Textdaten nicht als einfachen Text gespeichert hat.
Bearbeiten: Nachdem ich diese Antwort auf Binary Grep gelesen hatte, versuchte ich es perl -ln0777e 'print unpack("H*",$1), "\n", pos() while /(null_padded_substring)/g' sleepimage
wieder fruchtlos zu machen. Ich habe es mit Nullen aufgefüllt, um eine Übereinstimmung für UTF-8-Text zu versuchen. Dann habe ich es mit .*
Klumpen zwischen den einzelnen Charakteren versucht - immer noch keine Würfel.
Daher speichert Pages wahrscheinlich keinen Text durch eine übliche Codierung im Speicher. Ich müsste eine Übersetzungsregel zwischen ASCII-Zeichenfolge und Pages-Datendarstellung finden - ich denke vielleicht an eine Art Objective C-Zeichenfolgenpuffer. Für mich scheint es sehr seltsam, Zeichendaten als etwas anderes als eine Folge von Zeichen zu speichern, aber genau das scheint Pages zu tun.
Wenn Sie eine Idee haben, wie Sie die speicherinterne Darstellung von Text in Pages herausfinden können, kann dies bei der Lösung dieses Problems sehr hilfreich sein. Vielleicht kann ich den Prozessspeicher auf einfache Weise sichern und lesen?
Eine andere mögliche Lösung ist einfacher - ich gehe davon aus, dass es irgendwie möglich ist, den Computer von hier aus neu zu starten sleepimage
, aber ich kann keine Dokumentation finden, wie Sie damit vorgehen würden. Einige andere Benutzer ( Makrumoren ) scheinen darauf gestoßen zu sein, aber bei allen Forumfragen , die ich gefunden habe, hat keiner von ihnen Antworten.
Die OS X-Version ist Snow Leopard, 10.6.8.
Komplexe Programmiervorschläge sind willkommen. Ich mache C und Python.
Vielen Dank.
sleepimage
. Das Durchsuchen eines anderen Bildes nach eindeutigem Text wäre ebenso schwierig, da das Bild immer noch 4 GB groß wäre und der Pages-Speicherblock irgendwo zufällig in dieser Datei zugewiesen würde. Ich nehme an, ich könnte den Arbeitsspeicher auf Null setzen, dann Seiten öffnen und dann im Schlafbild nach Sequenzen ungleich Null suchen. Aber Pages verbraucht trotzdem 200 MB Speicher - immer noch eine kleine Nadel im Heuhaufen.