Le Macbook de ma copine a planté alors qu'il tentait de restaurer un fichier en hibernation. La barre de progression s'est arrêtée à ~10%, après quoi nous avons redémarré l'ordinateur pour un démarrage normal.
Cette image mémoire en hibernation avait un document non sauvegardé ouvert dans Pages, que nous aimerions récupérer. Il y a un sleepimage
sur /private/var/vm
qui je suppose est l'image d'hibernation qui n'a jamais été correctement restaurée. On a sauvegardé ce truc pour le garder en vie.
Nous avons essayé de strings sleepimage | grep known_substring
mais cela n'a rien donné. grep -a known_substring sleepimage
n'a rien fait non plus, donc je suppose que Pages n'a pas gardé les données en mémoire en tant que texte brut.
Edit : Après avoir lu cette réponse sur Grep binaire J'ai essayé de perl -ln0777e 'print unpack("H*",$1), "\n", pos() while /(null_padded_substring)/g' sleepimage
encore une fois sans résultat. Je l'ai complété par des nuls afin de tenter une correspondance avec le texte UTF-8. J'ai ensuite essayé avec .*
entre chaque caractère -- toujours pas de dé.
Donc, Pages ne stocke probablement pas le texte par un encodage commun en mémoire. Il faudrait trouver une règle de traduction entre la chaîne ASCII et la représentation des données de Pages -- je pense peut-être à une sorte de tampon de chaîne Objective C. Il me semble très étrange de stocker des données de caractères autrement que sous la forme d'une séquence de caractères, mais c'est ce que semble faire Pages.
Si vous avez une idée sur la façon de comprendre la représentation en mémoire du texte dans Pages, cela pourrait être très utile pour résoudre ce problème. Peut-être que je peux vider et lire la mémoire du processus d'une manière simple ?
Une autre solution possible est plus simple. Je suppose qu'il est possible de redémarrer l'ordinateur à partir de cette page. sleepimage
mais je ne trouve pas de documentation sur la manière de procéder. D'autres utilisateurs ( macrumors ) semblent avoir rencontré ce problème, mais pour toutes les questions du forum que j'ai trouvées, aucune n'a de réponse.
La version d'OS X est Snow Leopard, 10.6.8.
Les suggestions complexes impliquant la programmation sont les bienvenues. Je fais du C et du Python.
Merci.