हाइबरनेटेड फ़ाइल से पुनर्स्थापित करने का प्रयास करते समय मेरी प्रेमिका की मैकबुक दुर्घटनाग्रस्त हो गई। प्रगति बार ~ 10% पर बंद हो गया, जिसके बाद हमने कंप्यूटर को एक सामान्य स्टार्टअप के लिए फिर से शुरू किया।
इस हाइबरनेट की गई मेमोरी इमेज में पेज में एक सहेजा हुआ दस्तावेज़ खुला था, जिसे हम पुनर्प्राप्त करना चाहते हैं। वहाँ एक sleepimage
है /private/var/vm
, जो मुझे लगता है कि हाइबरनेट छवि है जो कभी भी सही ढंग से बहाल नहीं हुई है। हमने इसे जीवित रखने के लिए इस चीज़ का समर्थन किया।
हमने कोशिश की strings sleepimage | grep known_substring
लेकिन यह कुछ नहीं लौटा। grep -a known_substring sleepimage
मैंने भी कुछ नहीं किया, इसलिए मैं यह मान रहा हूं कि पृष्ठ ने पाठ डेटा को सादे पाठ के रूप में स्मृति में नहीं रखा है।
संपादित करें: बाइनरी grep पर इस उत्तर को पढ़ने के बाद perl -ln0777e 'print unpack("H*",$1), "\n", pos() while /(null_padded_substring)/g' sleepimage
, मैंने फिर से फलहीन होने की कोशिश की । मैंने इसे UTF-8 पाठ के लिए एक मैच का प्रयास करने के लिए नल के साथ गद्देदार किया। फिर मैंने .*
प्रत्येक पात्र के बीच ग्लब्स के साथ कोशिश की- फिर भी कोई पासा नहीं।
इसलिए पेज संभवतः मेमोरी में किसी भी सामान्य एन्कोडिंग द्वारा टेक्स्ट को स्टोर नहीं करते हैं। मुझे ASCII स्ट्रिंग और पेज डेटा प्रतिनिधित्व के बीच एक अनुवाद नियम खोजने की आवश्यकता होगी - मैं सोच रहा हूं कि शायद किसी प्रकार का उद्देश्य सी स्ट्रिंग बफर है। मेरे लिए वर्णों के अनुक्रम के अलावा किसी अन्य चीज़ के रूप में वर्ण डेटा संग्रहीत करना बहुत अजीब लगता है, लेकिन ऐसा लगता है कि पृष्ठ क्या कर रहे हैं।
यदि आपके पास पेज के अंदर पाठ के इन-मेमोरी प्रतिनिधित्व का पता लगाने का कोई तरीका है, तो यह इस समस्या को हल करने में बहुत मददगार हो सकता है। शायद मैं प्रक्रिया मेमोरी को कुछ सरल तरीके से डंप और पढ़ सकता हूं?
एक और संभावित समाधान सरल है - मैं मान रहा हूं कि कंप्यूटर को इस से रिबूट करना किसी भी तरह संभव है sleepimage
, लेकिन मुझे कोई दस्तावेज नहीं मिल सकता है कि आप इसके साथ कैसे आगे बढ़ेंगे। कुछ अन्य उपयोगकर्ताओं ( macrumors ) को इसका सामना करना पड़ा लगता है, लेकिन सभी फ़ोरम प्रश्नों के लिए, जिनमें से किसी का भी जवाब नहीं है।
ओएस एक्स संस्करण स्नो लेपर्ड है, 10.6.8।
प्रोग्रामिंग से जुड़े जटिल सुझावों का स्वागत है। मैं सी और पायथन करता हूं।
धन्यवाद।
sleepimage
। अद्वितीय टेक्स्ट की तलाश में एक और छवि के माध्यम से स्थानांतरण करना उतना ही मुश्किल होगा, क्योंकि छवि अभी भी 4GB आकार में होगी, और पेज मेमोरी ब्लॉक को उस फ़ाइल में कहीं यादृच्छिक रूप से आवंटित किया जाएगा। मुझे लगता है कि मैं राम को शून्य कर सकता हूं, फिर खुले पृष्ठ, और फिर नींद में गैर-शून्य दृश्यों की तलाश कर सकता हूं, हालांकि। लेकिन पेज 200 एमबी मेमोरी खा जाते हैं, भले ही - अभी भी एक छोटी सी सुई हैस्टैक में।