Macbook моей девушки упал при попытке восстановить файл из спящего режима. Индикатор выполнения остановился на уровне ~ 10%, после чего мы перезагрузили компьютер для нормального запуска.
На этом спящем образе памяти был открыт несохраненный документ в Pages, который мы хотели бы восстановить. Существует sleepimage
в /private/var/vm
, который я предполагаю , это спящий режим изображения , который никогда не был корректно восстановлен. Мы поддержали эту вещь, чтобы сохранить ее.
Мы пытались, strings sleepimage | grep known_substring
но ничего не вернулось. grep -a known_substring sleepimage
также ничего не делал, поэтому я предполагаю, что Pages не сохраняли текстовые данные в памяти как обычный текст.
Изменить: После прочтения этого ответа на бинарный grep я попытался perl -ln0777e 'print unpack("H*",$1), "\n", pos() while /(null_padded_substring)/g' sleepimage
, снова будучи бесплодным. Я дополнил его нулями, чтобы попытаться найти совпадение с текстом UTF-8. Затем я попробовал .*
шарики между каждым персонажем - до сих пор не играли в кости.
Таким образом, Pages, вероятно, не хранит текст в виде какой-либо обычной кодировки в памяти. Мне нужно было бы найти правило перевода между строкой ASCII и представлением данных Pages - я думаю, может быть, какой-то строковый буфер Objective C. Мне кажется очень странным хранить символьные данные как что-либо еще, кроме последовательности символов, но, похоже, именно это и делает Pages.
Если у вас есть какие-либо идеи о том, как определить представление текста в памяти в Pages, это может быть очень полезно для решения этой проблемы. Может быть, я могу сбросить и прочитать память процесса некоторым простым способом?
Другое возможное решение более простое - я предполагаю, что каким-то образом можно перезагрузить компьютер sleepimage
, но я не могу найти какую-либо документацию относительно того, как вы поступите с этим. Некоторые другие пользователи ( macrumors ), кажется, столкнулись с этим, но на все вопросы форума, которые я нашел, ни у одного из них нет ответов.
Версия OS X - Snow Leopard, 10.6.8.
Сложные предложения, касающиеся программирования, приветствуются. Я делаю C и Python.
Спасибо.
sleepimage
. Пролистывать другое изображение в поисках уникального текста было бы так же сложно, так как размер изображения все равно составлял бы 4 ГБ, а блок памяти Страницы размещался бы где-то случайно в этом файле. Я полагаю, что мог бы обнулить ОЗУ, затем открыть страницы и затем искать ненулевые последовательности в образе сна. Но Pages съедает 200 МБ памяти независимо - все еще маленькая иголка в стоге сена.