एक्स्टंडेलेट के साथ ext4 पर एक बस हटाई गई फ़ाइल को हटाना रद्द करें


54

वहाँ एक सरल विकल्प है extundeleteकि मैं कैसे एक फ़ाइल को हटाना रद्द करने की कोशिश कर सकता हूं जिसे /var/tmp/test.isoमैंने अभी-अभी डिलीट किया है?

(यह इतना महत्वपूर्ण नहीं है कि मैं रीड-ओनली या इस तरह की चीजों को रिमूव करना शुरू कर दूंगा। मैं केवल उस फाइल को फिर से डाउनलोड कर सकता हूं)

मैं एक साधारण कमांड व्हिट की तलाश में हूं जिसे मैं कोशिश कर सकता हूं अगर मैं इसे तेजी से ठीक करूं।

मुझे पता है, ड्राइव को रीड-ओनली में रिमूव करना संभव है : (देखें कि मैं केवल खाली डिस्क पर केवल फ़ाइल को कैसे हटा सकता हूं? )

लेकिन क्या यह अभी भी माउंट किए गए डिस्क पर किसी तरह संभव है ?


किसी भी उपयोगिता के साथ सामान्य प्रश्न: unix.stackexchange.com/questions/2677/…
Ciro Santilli 中心:::

वह अन्य प्रश्न बहुत व्यापक है। यहाँ मैं बिना अधिक प्रयास (और सफलता के लिए कम मौका) के बिना एक तेज़ असुरक्षित समाधान की तलाश में हूँ
रुबों

मेरा मतलब नकल से नहीं था, लेकिन आप इसे इस सवाल से जोड़ना चाह सकते हैं कि यह प्रश्न पर्याप्त क्यों नहीं था।
सिरो सेंटिल्ली 新疆 i i i ''

जवाबों:


36

एक्स्टंडेलेट पर उपयोग गाइड को देखते हुए ऐसा लगता है जैसे आप कुछ तरीकों से फ़ाइलों को हटाने से सीमित कर रहे हैं।

सभी को बहाल करना

extundelete एक अनमाउंट विभाजन से एक अलग (घुड़सवार) विभाजन के लिए फ़ाइलों को हटाना रद्द करने के लिए डिज़ाइन किया गया है। extundelete "RECOVERED_FILES" नामक वर्तमान निर्देशिका की एक उपनिर्देशिका को मिलने वाली किसी भी फाइल को पुनर्स्थापित करेगा। कार्यक्रम को चलाने के लिए, आपके लिए उपलब्ध विभिन्न विकल्पों को देखने के लिए "extundelete --help" टाइप करें।

विभाजन से सभी हटाई गई फ़ाइलों को पुनर्स्थापित करने के लिए विशिष्ट उपयोग इस तरह दिखता है:

    $ extundelete /dev/sda4 --restore-all

एक ही फ़ाइल को पुनर्स्थापित करना

इस विधि के अलावा कमांड लाइन के उपयोग पर प्रकाश डाला गया है:

--restore-file path/to/deleted/file
    Attemps to restore the file which was deleted at the given filename, 
    called as "--restore-file dirname/filename".

इसलिए आपको यह पूरा करने में सक्षम होना चाहिए कि आप क्या कर रहे हैं:

$ extundelete --restore-file /var/tmp/test.iso /dev/sda4

नोट: दोनों मामलों में आपको /dev/sda4इस कमांड को करने के लिए डिवाइस को जानना आवश्यक है । आपको फाइल सिस्टम को आसानी से रिमूव करना होगा। यह उपयोग करने की शर्तों में से एक है extundeleteऔर इसके आसपास कोई रास्ता नहीं है।


2
हां, लेकिन यह सब केवल तभी काम करता है, जब मैं ड्राइव को केवल पढ़ने के लिए निकालता हूं
rubo77

1
@ rubo77 - सही है, उस के आसपास कोई रास्ता नहीं है।
slm

2
यह वास्तव में मेरे लिए एक ext4 फाइलसिस्टम के लिए काम करता है बिना इसे पढ़े केवल रिमाउंट करने के लिए। यदि आप इसे r / o के रिमाउंट किए बिना करने का प्रयास करते हैं, तो आपको एक चेतावनी मिलती है, जो आपको केवल यह बताती है कि ऐसा करने पर आपकी सफलता की संभावना कम है। यदि फ़ाइल को पुनर्प्राप्त करना वास्तव में सुपर महत्वपूर्ण है, तो ऐसा लगता है कि आपको ऐसा करना चाहिए।
बेन क्रॉवेल

जैसे @BenCrowell मैंने रीमाउंट के बिना उपयोग किया है, लेकिन प्रोग्राम मुझे डेटा भ्रष्टाचार के बारे में बताता है अगर मैं hdd का उपयोग जारी रखता हूं ... तो हाल ही में मिटा दिया गया था, इसलिए मैं सिर्फ एंटर
दबाऊं

16

विशिष्ट उपयोग परिदृश्य जब undeleting सभी फाइलों से हटा सभी फाइलों को बहाल करने की आवश्यकता भी शामिल है /dev/sdX1लगभग पिछले एक घंटे के दौरान:

mount -o remount,ro /dev/sdX1
extundelete --restore-all --after $(date -d "-2 hours" +%s) /dev/sdX1
find RECOVERED_FILES/

यदि पुनर्प्राप्त फ़ाइलों से संतुष्ट हैं:

mount -o remount,rw /dev/sdX1

आरोह: आपको फाइल सिस्टम का प्रकार निर्दिष्ट करना होगा

रीमाउंट उम्मीद करता है कि माउंट पॉइंट तर्क के रूप में न हो
यू डोन्ट वरी चाइल्ड

@ DoYouWorryChild mount -oया तो dir या डिवाइस लेता है, जैसेman mount
sanmai

तारीख से 2 घंटे घटाए जाने के बजाय आप कर सकते हैं $(date -d "-2 hours" +%s)और आउटपुट का lsblk -pपता लगाने के लिए उपयोगी हो सकता है कि एलयूकेएस ने एलवीएम कैश्ड EXT4 वॉल्यूम को एन्क्रिप्ट किया है। ;)
लाइववायरबीटी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.