Macbook mojej dziewczyny zawiesił się podczas próby przywrócenia ze hibernowanego pliku. Pasek postępu zatrzymał się na poziomie ~ 10%, po czym ponownie uruchomiliśmy komputer w celu normalnego uruchomienia.
Ten hibernowany obraz pamięci miał niezapisany dokument otwarty w Pages, który chcielibyśmy odzyskać. Jest taki, sleepimage
w /private/var/vm
którym, jak zakładam, jest obraz hibernacji, który nigdy nie został poprawnie przywrócony. Stworzyliśmy kopię zapasową tego elementu, aby utrzymać go przy życiu.
Próbowaliśmy, strings sleepimage | grep known_substring
ale nic nie zwróciło. grep -a known_substring sleepimage
też nic nie zrobił, więc zakładam, że Pages nie zachował danych tekstowych w pamięci jako zwykłego tekstu.
Edycja: Po przeczytaniu tej odpowiedzi na temat binarnego grepa spróbowałem perl -ln0777e 'print unpack("H*",$1), "\n", pos() while /(null_padded_substring)/g' sleepimage
, znów będąc bezowocnym. Wypełniłem go zerami, aby spróbować dopasować tekst UTF-8. Potem spróbowałem z .*
kulami między każdą postacią - wciąż nie ma kości.
Tak więc Pages prawdopodobnie nie przechowują tekstu w zwykłym kodowaniu w pamięci. Musiałbym znaleźć regułę tłumaczenia między ciągiem ASCII a reprezentacją danych Pages - myślę, że może jakiś bufor ciągu Objective C. Wydaje mi się, że przechowywanie danych o postaciach jako sekwencji innych niż sekwencja znaków wydaje się dziwne, ale wydaje się, że to właśnie robi Pages.
Jeśli masz jakiś pomysł, jak znaleźć reprezentację tekstu w pamięci Pages, może być bardzo pomocny w rozwiązaniu tego problemu. Może mogę zrzucić i odczytać pamięć procesu w prosty sposób?
Inne możliwe rozwiązanie jest prostsze - zakładam, że w jakiś sposób można zrestartować komputer sleepimage
, ale nie mogę znaleźć żadnej dokumentacji dotyczącej tego, jak byś to zrobił. Wygląda na to, że niektórzy użytkownicy ( makrumory ) zetknęli się z tym problemem , ale na wszystkie pytania z forum, które znalazłem, żaden z nich nie odpowiedział.
Wersja OS X to Snow Leopard, 10.6.8.
Mile widziane są złożone sugestie dotyczące programowania. Robię C i Python.
Dziękuję Ci.
sleepimage
. Przeszukanie innego obrazu w poszukiwaniu unikalnego tekstu byłoby równie trudne, ponieważ obraz miałby nadal rozmiar 4 GB, a blok pamięci Strony zostałby przydzielony gdzieś losowo w tym pliku. Przypuszczam, że mógłbym wyzerować pamięć RAM, potem otworzyć strony, a potem poszukać sekwencji niezerowych na obrazie uśpienia. Ale Pages zużywa 200 MB pamięci niezależnie - wciąż mała igła w stogu siana.