O Macbook da minha namorada travou ao tentar restaurar a partir de um arquivo hibernado. A barra de progresso parou em ~ 10%, após o que reiniciamos o computador para uma inicialização normal.
Essa imagem de memória hibernada tinha um documento não salvo aberto no Pages, que gostaríamos de recuperar. Há um sleepimage
in /private/var/vm
, que eu assumo é a imagem de hibernação que nunca foi restaurada corretamente. Apoiámos essa coisa para mantê-la viva.
Tentamos, strings sleepimage | grep known_substring
mas não retornou nada. grep -a known_substring sleepimage
também não fez nada, portanto, estou assumindo que o Pages não manteve os dados de texto na memória como texto sem formatação.
Edit: Depois de ler esta resposta no grep binário eu tentei perl -ln0777e 'print unpack("H*",$1), "\n", pos() while /(null_padded_substring)/g' sleepimage
, novamente sendo infrutífero. Eu preenchi com nulos para tentar uma correspondência para o texto UTF-8. Então tentei com .*
globs entre cada personagem - ainda sem dados.
Portanto, o Pages provavelmente não armazena texto por nenhuma codificação comum na memória. Eu precisaria encontrar uma regra de tradução entre a string ASCII e a representação de dados do Pages - estou pensando em algum tipo de buffer de string do Objective C. Para mim, parece muito estranho armazenar dados de caracteres como qualquer outra coisa que não uma sequência de caracteres, mas isso parece ser o que o Pages está fazendo.
Se você tem alguma idéia de como descobrir a representação na memória do texto dentro do Pages, pode ser muito útil para resolver esse problema. Talvez eu possa despejar e ler a memória do processo de alguma maneira simples?
Outra solução possível é mais simples - presumo que seja possível reiniciar o computador a partir disso sleepimage
, mas não consigo encontrar nenhuma documentação sobre como você procederia com isso. Alguns outros usuários ( macrumores ) parecem ter encontrado isso, mas para todas as perguntas do fórum que encontrei, nenhum deles tem respostas.
A versão do OS X é o Snow Leopard, 10.6.8.
Sugestões complexas envolvendo programação são bem-vindas. Eu faço C e Python.
Obrigado.
sleepimage
. Peneirar outra imagem em busca de texto exclusivo seria igualmente difícil, pois a imagem ainda teria tamanho de 4 GB e o bloco de memória Pages seria alocado em algum lugar aleatório nesse arquivo. Suponho que eu poderia zerar a RAM, abrir páginas e procurar sequências diferentes de zero na imagem do sono. Mas o Pages consome 200 MB de memória, independentemente - ainda é uma pequena agulha no palheiro.