फ़ाइल रहस्यमय तरीके से खाली है। ठीक होने के विकल्प?


9

मैंने हटाई गई फ़ाइलों को पुनर्प्राप्त करने के बारे में कई पोस्ट देखे हैं, लेकिन यह स्थिति अलग है। मेरी पत्नी के पास Journal.odt नामक एक फाइल थी, जिसमें उन्होंने हमारे बच्चों के बारे में कई महत्वपूर्ण व्यक्तिगत जानकारी जैसे कि विशेष यादें रखी थीं। दूसरे दिन जब उसने ओपनऑफ़िस में इसे खोलने की कोशिश की तो इसने प्रारूप के बारे में शिकायत की। मैंने उसका हिट कैंसिल कर दिया था। जब मैं catफाइल करता हूं तो यह पूरी तरह से खाली होता है। lsफ़ाइल 0 बाइट्स है।

अगर उसने गलती से फाइल के सभी टेक्स्ट को चुना, बैकस्पेस मारा और उसे बचाया तो फाइल में ओपनऑफिस मेटा जानकारी होगी।

जब तक मैं कुछ करने के लिए सोच सकता हूं, मैंने डिस्क में किसी भी अधिक परिवर्तन को रोकने के लिए तुरंत उसके लैपटॉप को बंद कर दिया।

मैंने अतीत में कुछ जटिल चीजें की हैं जैसे ddकि डिस्क से कच्चे पाठ को पुनर्प्राप्त करने के लिए उपयोग करना लेकिन मुझे नहीं पता कि यहां क्या करना है। चूंकि ओआरटी फाइलें समतल पाठ नहीं होती हैं इसलिए मैं सिर्फ grep के माध्यम से पूरी डिस्क को पाइप नहीं कर सकता।

किसी भी सुझाव के लिए बहुत आभार होगा।

इसके अलावा, अगर किसी के पास कोई गलत जानकारी है, जो गलत हो सकती है तो मैं इसे सुनना पसंद करूंगा।

धन्यवाद


1
यदि फ़ाइल गलती से या कुछ और नष्ट हो जाती है, तो यह अलग होगा, लेकिन जब एक पाठ संपादक आदि में, तो फ़ाइल को सहेजना अक्सर "इन-प्लेस" लिखता है जो कि फोरेंसिक शक्ति की वसूली के साथ बरामद किया जा सकता है। बेहतर होता कि आप सिस्टम को तुरंत बंद नहीं करते, मैं कंट्रोल + जेड (ओपन ऑफिस में "पूर्ववत" फ़ंक्शन में बनाया गया) के एक जोड़े को शर्त को हटा देता।
टिम

@ मुझे आपकी बात दिखाई देती है, लेकिन दुर्भाग्य से फाइल को कुछ दिन पहले खाली कर दिया गया था। फ़ाइल पर अंतिम संशोधित समय कुछ दिन पहले था। मेरे विवरण में जब उसने इसे OO में खोला तो यह पहले से ही खाली था। हालांकि धन्यवाद।
jcbwlkr

2
मरे हुए घोड़े को मारने की कोशिश नहीं कर रहा है, या नीचे गिरने पर एक आदमी को लात मार रहा है, लेकिन मुझे संदेह है कि यह अनुभव आपको बैकअप समाधान में देखने को मिलेगा। एक सरल, लिनक्स संगत बैकअप एप्लिकेशन के लिए "एरेका बैकअप" पर एक नज़र डालें।
टिम

डिस्क फुल शायद? साथ की जाँच करेंdf -h
jippie

@ अगर फ़ाइल 0 बाइट्स है, तो यह एक OO दस्तावेज़ नहीं है; Ctrl+Zक्योंकि OO द्वारा फ़ाइल को सहेजा नहीं गया था, तब तक कुछ नहीं किया जाएगा। @ Jacobwalker0814 ODT फाइलें ज़िप फाइलें हैं, इसलिए टेस्टडिस्क जैसे रिकवरी टूल के पास उन्हें खोजने का एक मौका है; लेकिन इसकी कोई गारंटी नहीं है, और यदि डेटा अभी भी है, तो आपको बहुत सी अन्य ज़िप फ़ाइलों के माध्यम से उतारा जा सकता है। और भविष्य के लिए, वापस करो!
गिल्स एसओ- बुराई पर रोक लगाना '

जवाबों:


3

यदि आप ext3 फ़ाइल सिस्टम का उपयोग कर रहे हैं तो कार्लो वुड के HOWTO का अनुसरण करें

कुछ शब्दों में,

  • Ext3grep $ IMAGE --ls --inode 2 का उपयोग करें | grep your_file को खोजने के लिए फ़ाइल u की तलाश कर रहे हैं (जहाँ $ IMAGE उर विभाजन है उदाहरण के लिए / dev / sda3)
  • उस फ़ाइल सिस्टम ब्लॉक को ढूंढें जिसमें अनलॉकेटेड स्पेस की पत्रिका है।
  • सभी जर्नल डिस्क्रिप्टर ब्लॉक देखें जो पहले पाए गए थे।
  • डीडी के साथ ब्लॉक कॉपी करें।
  • अनुगामी शून्य को हटाने के लिए फ़ाइल को संपादित करें।
  • फ़ाइल को बिल्ली जहाँ भी आप चाहते हैं

स्रोत से:

"अध्याय मैनुअल रिकवरी उदाहरण

निम्नलिखित उदाहरण में हम मैन्युअल रूप से एक छोटी फ़ाइल पुनर्प्राप्त करेंगे। अंतरिक्ष को बचाने और उदाहरण को अधिक पठनीय बनाने के लिए केवल आंशिक आउटपुट दिया जाता है।

Ext3grep $ IMAGE --ls --inode का उपयोग करके हम उस फ़ाइल का नाम पाते हैं जिसे हम पुनर्प्राप्त करना चाहते हैं:

$ ext3grep $ IMAGE --ls --inode 2 | grep कार्लो 3 एंड डी 195457 D 1202352103 Thu 7 फरवरी 03:41:43 2008 drwxr-xr-x कार्लो

$ ext3grep $ IMAGE --ls --inode 195457 | grep 'बिन $' | हेड -n 1 34 35 d 309540 D 1202352104 Thu 7 फरवरी 03:41:44 2008 drwxr-xr-x bin

$ ext3grep $ IMAGE --ls - 309540 | grep start_azureus 9 10 r 309631 D 1202351093 Thu Feb 7 03:24:53 2008 rrwxr-xr-x start_azureus

जाहिर है, इनोड 309631 मिटा दिया गया है और हमारे पास इस फाइल के लिए कोई ब्लॉक संख्या नहीं है:

$ ext3grep $ IMAGE --print --inode 309631 [...] इनोड असंबद्ध समूह है: 19 जनरेशन Id: 2771183319 uid / gid: 1000/1000 मोड: rrwxr-xr-x आकार: 0 संख्याओं की संख्या: 0 क्षेत्र: 0 क्षेत्र: 0 (-> 0 अप्रत्यक्ष ब्लॉक)।

इनोड टाइम्स: एक्सेस: 1202350961 = थू फ़रवरी 7 03:22:41 2008 फ़ाइल संशोधित: 1202351093 = थू फ़रवरी 7 03:24:53 2008 इनोड संशोधित: 1202351093 = थू फ़रवरी 7 03:22:53 2008 विचलन समय: 1202351093 = थू फ़रवरी 7 03:24:53 2008

प्रत्यक्ष ब्लॉक:

इसलिए, हम जर्नल में इसकी एक पुरानी प्रति देखने का प्रयास करेंगे। सबसे पहले, हम फाइल सिस्टम ब्लॉक को खोजते हैं जिसमें यह इनोड है:

$ ext3grep $ IMAGE --in-to-block 309631 | grep इनकोड 309631 रहता है, ऑफसेट 0xf00 पर ब्लॉक 622598 में रहता है।

तब हम सभी पत्रकारों को संदर्भित करते हैं कि खंड 622598 को संदर्भित करते हैं:

$ ext3grep $ IMAGE --journal --block 622598 [...] जर्नल डिस्क्रिप्टर रेफरेंसिंग ब्लॉक 622598: 4381294 26582 4381311 28693 4381313 28809 438133 28814 4381321 29308 4381348 30384 30388 30388148388388388388383186383188 4382137 6672 4382138 7536 4382139 7984 4382140 8931

इसका मतलब यह है कि अनुक्रम संख्या 4381294 के साथ लेनदेन में ब्लॉक 26582 में ब्लॉक 622598 की एक प्रति है, और इसी तरह। सबसे बड़ी अनुक्रम संख्या, तल पर, डिस्क पर लिखा गया अंतिम डेटा होना चाहिए और इस प्रकार 8931 वर्तमान ब्लॉक 622598 के समान होना चाहिए। अंतिम गैर-हटाए गए प्रतिलिपि को खोजने के लिए, सबसे नीचे शुरू करना चाहिए और काम करना चाहिए ऊपर की ओर।

यदि आप इस तरह के ब्लॉक को प्रिंट करने की कोशिश करते हैं, तो ext3grep यह पहचानता है कि यह एक इनकोड टेबल से ब्लॉक है और इसमें सभी 32 इनोइड्स की सामग्री को प्रिंट करेगा। हम केवल ३० ९ ६३१ को देखना चाहते हैं; इसलिए हम एक स्मार्ट grep का उपयोग करते हैं:

$ ext3grep $ IMAGE - छाप - 8931 | grep -15 'इनोड 309631' -------------- इनोड 309631 ----------------------- जनरेशन आईडी: 2771183319 uid / gid: 1000/1000 मोड: rrwxr-xr-x आकार: 0 अंकों की संख्या: 0 सेक्टर: 0 (-> 0 अप्रत्यक्ष ब्लॉक)।

इनोड टाइम्स: एक्सेस: 1202350961 = थू फ़रवरी 7 03:22:41 2008 फ़ाइल संशोधित: 1202351093 = थू फ़रवरी 7 03:24:53 2008 इनोड संशोधित: 1202351093 = थू फ़रवरी 7 03:22:53 2008 विचलन समय: 1202351093 = थू फ़रवरी 7 03:24:53 2008

प्रत्यक्ष ब्लॉक:

यह वास्तव में वैसा ही है जैसा हमने ब्लॉक 622598 में देखा था। आगे हम छोटे अनुक्रम संख्या देखते हैं जब तक कि हम एक 0 विलोपन समय के साथ एक नहीं पाते। पहला जो हम पाते हैं (नीचे ऊपर) ब्लॉक 6073 है:

$ ext3grep $ IMAGE - छाप - 6073 | grep -15 'इनोड 309631' -------------- इनोड 309631 ----------------------- जनरेशन आईडी: 2771183319 uid / gid: 1000/1000 मोड: rrwxr-xr-x आकार: 40 अंकों की लिंक: 1 सेक्टर: 8 (-> 0 अप्रत्यक्ष ब्लॉक)।

इनोड टाइम्स: एक्सेस किया गया: १२०२३५० ९ ६१ = थू 22 फरवरी 41:२२:४१ २०० Mod फाइल संशोधित: ११ = ९ ६ Th६u६ ९ २ = थू १३ १५:०४:५२ २०० In इनोद संशोधित

डायरेक्ट ब्लॉक: 645627

ऊपर स्वचालित है और कमांड लाइन विकल्प - शॉ-जर्नल-इनोड्स के साथ बहुत तेजी से किया जा सकता है। यह विकल्प उस ब्लॉक को खोजेगा जो इनोड के अंतर्गत आता है, फिर उस ब्लॉक की सभी प्रतियों को जर्नल में पाता है, और बाद में इनमें से प्रत्येक ब्लॉक से केवल अनुरोधित इनकोड प्रिंट करता है (जिनमें से प्रत्येक में 32 इनोड होते हैं, जैसा कि आप जानते हैं), डुप्लिकेट को समाप्त करना :

$ ext3grep $ IMAGE --show-journal-inodes 309631 समूह की संख्या: 75 न्यूनतम / अधिकतम जर्नल ब्लॉक: 1115/35026 जर्नल डिस्क्रिप्टर लोड हो रहा है ... जर्नल लेन-देन 4381435 के आसपास लपेटता है, कुछ डेटा ब्लॉक इस लेनदेन के खो सकते हैं। पत्रिका में विवरणकों की संख्या: 30258; न्यूनतम / अधिकतम अनुक्रम संख्या: 4379495/4382264 पत्रिका में इनोड 309631 की प्रतियां:

-------------- आयोड ३० ९ ६३१ ----------------------- जनरेशन आईडी: २88११19३३१ ९ यूआईडी / gid: १००० / १००० मोड: rrwxr-xr-x आकार: 0 अंकों की संख्या: 0 सेक्टर: 0 (-> 0 अप्रत्यक्ष ब्लॉक)।

इनोड टाइम्स: एक्सेस: 1202350961 = थू फ़रवरी 7 03:22:41 2008 फ़ाइल संशोधित: 1202351093 = थू फ़रवरी 7 03:24:53 2008 इनोड संशोधित: 1202351093 = थू फ़रवरी 7 03:22:53 2008 विचलन समय: 1202351093 = थू फ़रवरी 7 03:24:53 2008

प्रत्यक्ष ब्लॉक:

-------------- आयोड ३० ९ ६३१ ----------------------- जनरेशन आईडी: २88११19३३१ ९ यूआईडी / gid: १००० / १००० मोड: rrwxr-xr-x आकार: 40 अंकों की लिंक: 1 सेक्टर: 8 (-> 0 अप्रत्यक्ष ब्लॉक)।

इनोड टाइम्स: एक्सेस किया गया: १२०२३५० ९ ६१ = थू 22 फरवरी 41:२२:४१ २०० Mod फाइल संशोधित: ११ = ९ ६ Th६u६ ९ २ = थू १३ १५:०४:५२ २०० In इनोद संशोधित

डायरेक्ट ब्लॉक: 645627

फ़ाइल वास्तव में छोटी है: केवल एक ब्लॉक। हम इस ब्लॉक को पहले दिखाए गए अनुसार dd के साथ कॉपी करते हैं:

$ dd if = $ IMAGE bs = 4096 count = 1 Skip = 645627 of = block.645627 1 + 0 रिकॉर्ड 1 + 0 में रिकॉर्ड 4096 बाइट्स (4.1 kB) कॉपी किया गया, 0.0166104 सेकंड, 24,000 kB / s

और फिर अनुगामी शून्य को हटाने के लिए फ़ाइल को संपादित करें, या पहले 40 बाइट्स (फ़ाइल के दिए गए आकार) की प्रतिलिपि बनाएँ:

$ dd अगर = block.645627 bs = 1 गिनती = 40 का = start_azureus 40 + 0 रिकॉर्ड में 40 + 0 रिकॉर्ड 40 बाइट्स (40 B) की नकल की, 0.000105397 सेकंड, 380 kB / s

$ बिल्ली start_azureus cd / usr / src / azureus / azureus ./azureus &

बरामद! "


मैं उस पर गौर करना चाहूंगा, लेकिन यह लिंक मृत प्रतीत होता है।
jcbwlkr

3
मेरे लिए मृत नहीं लगता है।
श्री लिस्टर

हां, मैं इसे एक्सेस कर सकता हूं।
java_xof

यह अब ठीक काम कर रहा है। यह निश्चित रूप से पहले नहीं था। कौन जाने? धन्यवाद, जावा। मैं इसे देखूंगा।
jcbwlkr

कोई बात नहीं, आशा है कि यह मदद यू, कोई अपराध नहीं है, लेकिन मैं बातचीत की पत्नी के बारे में कुछ जानता हूं <-> कंप्यूटर;)
java_xof

2

टेस्टडिस्क और फोटोरेक आज़माएं , लेकिन जिस तरह से मैं आपके लेखन को समझता हूं, वह शायद नियमित बैकअप के मूल्य को सीखने का कठिन तरीका है। हार्डडिस्क को आगे भी बदलने से रोकने के लिए आप सीडी से बूट करना चाह सकते हैं। मुझे व्यक्तिगत रूप से इसके लिए सिस्टम रेस्क्यू डिस्क पसंद है , लेकिन यह काफी हद तक कमांड लाइन आधारित है।


1

डिजिटल फोरेंसिक के लिए एक विशेष लिनक्स वितरण का उपयोग करें। यह फ़ाइल और हार्ड डिस्क रिकवरी के लिए बहुत सारे उपकरण हैं।


धन्यवाद। मैं उस डिस्ट्रो को देखूंगा और देखूंगा कि उसमें कुछ है या नहीं। क्या आपके पास इस समस्या से निपटने के लिए विशिष्ट साधनों या तरीकों पर कोई प्रतिक्रिया है? यहाँ समस्या यह है कि फ़ाइल को हटाया नहीं गया था, जो कि कई उपकरणों को संबोधित करती है; यह सिर्फ खो गया है यह सामग्री है।
jcbwlkr

1
ओपन ऑफिस कभी-कभी एक छिपी हुई फ़ाइल बनाता है जिसमें पिछले सहेजे गए दस्तावेज़ होते हैं। यदि आप भाग्यशाली हैं तो आप "extundelete" या "testdisk" cgsecurity.org/wiki/TestDisk
PsyStyle

~ / .Openoffice.org / 3 / user / backup / या ~ / .libreoffice.org / 3 / user / backup / में देखें, मैंने इन निर्देशिकाओं को खाली करने के लिए एक स्क्रिप्ट लिखी थी ताकि जिन संवेदनशील चीजों को मैंने हटाया था, वे अभी भी नहीं थीं।
जो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.