El Macbook de mi novia se estrelló al intentar restaurar desde un archivo en hibernación. La barra de progreso se detuvo en ~ 10%, después de lo cual reiniciamos la computadora para un inicio normal.
Esta imagen de memoria hibernada tenía un documento no guardado abierto en páginas, que nos gustaría recuperar. Hay un sleepimage
en /private/var/vm
, que asumo es la imagen de hibernación que nunca se restauró correctamente. Hicimos una copia de seguridad de esto para mantenerlo con vida.
Intentamos strings sleepimage | grep known_substring
pero no devolvió nada. grep -a known_substring sleepimage
tampoco hizo nada, por lo que supongo que las páginas no mantuvieron los datos de texto en la memoria como texto sin formato.
Editar: después de leer esta respuesta en grep binario traté de perl -ln0777e 'print unpack("H*",$1), "\n", pos() while /(null_padded_substring)/g' sleepimage
, nuevamente sin resultado . Lo rellené con nulos para intentar una coincidencia con el texto UTF-8. Luego probé con .*
globs entre cada personaje, aún sin dados.
Es probable que Pages no almacene texto por ninguna codificación común en la memoria. Tendría que encontrar una regla de traducción entre la cadena ASCII y la representación de datos de Pages. Estoy pensando que tal vez sea algún tipo de búfer de cadena de Objective C. A mí me parece muy extraño almacenar los datos de los personajes como algo más que una secuencia de caracteres, pero esto parece ser lo que hace Pages.
Si tiene alguna idea sobre cómo averiguar la representación en memoria del texto dentro de las páginas, puede ser muy útil para resolver este problema. ¿Tal vez pueda descargar y leer la memoria del proceso de una manera simple?
Otra solución posible es más simple: supongo que de alguna manera es posible reiniciar la computadora desde este sleepimage
, pero no puedo encontrar ninguna documentación sobre cómo proceder con eso. Algunos otros usuarios ( macrumors ) parecen haber encontrado esto, pero para todas las preguntas del foro que he encontrado , ninguno de ellos tiene respuestas.
La versión de OS X es Snow Leopard, 10.6.8.
Las sugerencias complejas relacionadas con la programación son bienvenidas. Hago C y Python.
Gracias.