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