লিনাক্সে আরএম দ্বারা সরানো ফাইলগুলি পুনরুদ্ধার করা সম্ভব?


8

উইন্ডোতে ফাইল করা ফাইল মুছে ফেলা ট্র্যাশে পাওয়া যাবে যদি আপনি শিফট টিপেন না ,

rm -fলিনাক্স দ্বারা মুছে ফেলা ফাইল সম্পর্কে কি


3
উইন্ডোজ 10 বছরেরও বেশি সময় ধরে এটিকে একটি রিসাইকেল বিন হিসাবে ডেকেছে; এবং আপনি মুছে ফেলার ধাক্কা দিলে স্পষ্টভাবে বলে যে এটি ফাইলটি সরিয়ে নিয়েছে, মুছে ফেলা হচ্ছে না। rmফাইলের সাথে সম্পর্কিত আই-নোড (লিঙ্কগুলি) লিঙ্কযুক্ত করে।
ক্রিস এস

উত্তর:


13

প্রথম জিনিসটি মনে রাখতে হবে - ফাইল সিস্টেমে আরও লেখার ক্রিয়াকলাপ বন্ধ করুন।

তারপরে আপনি এমন কিছু সরঞ্জাম চেষ্টা করতে পারেন যা ফাইল সিস্টেমটি দেখবে এবং মুছে ফেলা নোডে ডেটা সনাক্ত করার চেষ্টা করবে। ' extundelete' হ'ল সোর্সফোরেজে এমন একটি সরঞ্জাম।

এক্সটান্ডিলিট এমন একটি ইউটিলিটি যা মুছে ফেলা ফাইলগুলিকে একটি ext3 বা ext4 পার্টিশন থেকে পুনরুদ্ধার করতে পারে । Ext3 ফাইল সিস্টেম লিনাক্স ব্যবহার করার সময় সর্বাধিক সাধারণ ফাইল সিস্টেম এবং ext4 এর উত্তরসূরি। পার্টিশন থেকে মুছে ফেলা ফাইল পুনরুদ্ধারের প্রচেষ্টা করার জন্য এক্সটেন্ডিলিট পার্টিশনের জার্নালে থাকা তথ্য ব্যবহার করে। কোনও নির্দিষ্ট ফাইল মুছে ফেলা সম্ভব হবে এমন কোনও গ্যারান্টি নেই, সুতরাং সর্বদা একটি ভাল ব্যাকআপ সিস্টেম রাখার চেষ্টা করুন বা আপনার ফাইলগুলি পুনরুদ্ধার করার পরে কমপক্ষে একটি জায়গায় রাখুন!


3
আর কোনও লেখাই যথেষ্ট জোর দেওয়া যায় না। এটি অন্তর্নির্মিত নয়, তাই ফাইল-সিস্টেম ভবিষ্যতের লেখার সাথে ডেটা ওভাররাইট করার আগে "অপসারণ" পুনরুদ্ধার সফ্টওয়্যার সম্পর্কিত বিষয় is
জেরেমি এম

2

প্রথম পদক্ষেপটি হ'ল আপনার রুট ড্রাইভের জন্য ব্যবহৃত ফাইল সিস্টেমের জন্য একটি মুছে ফেলা সরঞ্জামটি চেষ্টা করা।

যেমন উল্লিখিত হয়েছে, এক্সট্রোগ্রিপ এবং এক্সটান্ডিলিট এক্স ফাইল ফাইল পরিবারের জন্য সরঞ্জাম।

পুনরুদ্ধার করার চেষ্টা করা ফাইল টাইপের উপর নির্ভর করে অন্য একটি বিকল্প হ'ল ড্রাইভে একটি ফাইল কার্ভার চালানো। এটি উপরের ইউটিলিটিগুলির চেয়ে বেশি সময় নিবে।

সর্বাগ্রে আমি এর জন্য একটি বিকল্প ব্যবহার করেছি।

চূড়ান্ত বিকল্পটি, যদি আপনি ফাইলের মধ্যে একটি নির্দিষ্ট স্ট্রিং সম্পর্কে জানেন তবে হেক্স সম্পাদকের মধ্যে ড্রাইভটি খুলতে হবে এবং সেই স্ট্রিংটি অনুসন্ধান করা হবে।

আপনার সেটআপের উপর নির্ভর করে আপনার উইন্ডো ম্যানেজার একটি পুনর্ব্যবহারযোগ্য বিন / ট্র্যাশ ক্যান সরবরাহ করতে পারে।

দিনের শেষে, ভাল ব্যাকআপ সিস্টেম সেটআপ করার কোনও বিকল্প নেই। আপনি এটির স্পর্শ না করেই এটির কাজ করে এমন একটি সন্ধান করুন এবং সেট আপ করুন। আপনি নিজেকে দীর্ঘ সময় ধরে অনেক সময়, সমস্যা এবং ব্যথা সাশ্রয় করবেন।



0

Undelete_ext3 শেষ হয়ে গেছে বলে মনে হচ্ছে, এখানে একটি নম্র বাশ স্ক্রিপ্ট রয়েছে, যা আমাকে এমন কিছু ফাইল পুনরুদ্ধার করতে সহায়তা করেছিল যা অতিরিক্ত পরিমাণে বা ডিবাগ ব্যবহার করে অকার্যকর ছিল । সমাধান ভাগ করে নেওয়া হয়েছে।

আপনি দেখার জন্য ব্লকের একটি তালিকা পূর্বনির্ধারিত করতে পারেন, পূর্বনির্ধারিত দেখুন। এটি প্রতি লাইনে একটি ব্লক নম্বর নেয় takes যদি আপনি পূর্বনির্ধারিত না করেন তবে সমস্ত ব্লক অনুসন্ধান করা হবে, ডিফল্ট।

  • প্রতিটি ব্লকের জন্য প্রথম বাইটগুলি জিজেপ সামগ্রীর জন্য অনুসন্ধান করা হয়।
  • যদি সফল হয় তবে প্রশ্নটিতে থাকা ব্লকটি তার আর্কাইভকে চিহ্নিত করে 257 বাইটে ""સ્ટার" স্ট্রিংয়ের আরও তদন্ত করতে গুনজিপ করবে।
  • শেষ অবধি, কোনও ফাইলের প্যাটার্নের সাথে মিলে যাওয়া ডেটা বের করা হয় (টারের ওয়াইল্ডকার্ড বিকল্প ব্যবহার করে প্রত্যয়-পথের শৈলী) এবং একটি নির্দিষ্ট স্ট্রিংয়ের জন্য গ্রেপ করা হয়। এর জন্য FILE_IN_TAR এবং FIT_CONTENT ভেরিয়েবলগুলি দেখুন ।
  • যদি পাওয়া যায় তবে ফাইলটি সংরক্ষণ করুন।

আপনার সম্ভবত অন্যরকম ব্যবহারের কেস থাকবে, এটি আপনাকে নিজের ফিল্টারিংয়ের উপর ভিত্তি করে একটি ফ্রেম দিতে পারে। অন্যান্য ফাইল টাইপগুলি সন্ধান করার জন্য আপনার অবশ্যই স্পষ্টভাবে মানগুলি টুইট করতে হবে।

নমুনা প্রার্থনা: ./ext-undelete-tar-gz.sh devimage found_files/

#!/bin/bash

# Brute force (linear) search specific tar files with
# certain contents on ext2 / ext3 / ext4 devices or files
#
# .. this is a last resort if extundelete and/or debugfs
#    did not find what you were looking for and limited
#    in that recoverable data must not have been stored
#    in fragments, i.e. non-sequentially

[[ -n "$2" ]] || {
    echo "usage: $0 [ device | imagefile ] "\
    "[ destdir_for_recovered_data ] "\
    "[ max_blocks_to_search (optional) ]" 
    exit 1
}

IMG=$1
DEST=$2
TMP=/dev/shm/cand.tmp
PRESEED=/dev/shm/cand.list

GZMAGIC=$(echo -e "\x1f\x8b\x08")
TARMAGIC=$(echo -e "ustar")

# max bytes to read into $TMP when a .tar.gz has been found
LEN=$((160*1024))

# pick $TMP for recovery based on matched strings..
FILE_IN_TAR="debian/rules" # ..in the tar index (suffix-search)
FIT_CONTENT="link-doc="    # ..within FILE_IN_TAR matches

# determine FS parameters
BLOCKS=$(tune2fs -l $IMG | grep -Po "(?<=^Block count:).*" | xargs)
    BS=$(tune2fs -l $IMG | grep -Po "(?<=^Block size:).*"  | xargs)
LEN=$((LEN/BS))

function _dd     { dd     $@ 2>/dev/null ; }
function _gunzip { gunzip $@ 2>/dev/null ; }
function _tar    { tar    $@ 2>/dev/null ; }

function inspect_block {
    bnum=$1

    if _dd if="$IMG" skip=$bnum bs=$BS count=1 | tee "$TMP" \
    | _dd bs=1 count=3 \
    | grep -qF "$GZMAGIC" 
    then
        if _gunzip -c "$TMP" \
        | _dd bs=1 count=5 skip=257 \
    | grep -qF "$TARMAGIC"
        then
            _dd if="$IMG" skip=$((bnum+1)) bs=$BS count=$((LEN-1)) >> "$TMP"
            echo -n found $bnum.tar.gz

            if _tar xzf "$TMP" -O --wildcards *"$FILE_IN_TAR" \
            | grep -qF "$FIT_CONTENT"
            then
                echo " ..picked, stripping trailing garbage:"
                exec 3>&1
                gunzip -c "$TMP" 2>&3 | gzip > $DEST/$bnum.tar.gz
                exec 3>&-
            else
                echo
            fi
        fi
    fi

    echo -ne "$((bnum+1)) / $BLOCKS done.\r" >&2
}


if [[ -f "$PRESEED" ]]
then
    while read bnum
    do inspect_block $bnum
    done <"$PRESEED"
else
    for (( bnum = 0 ; bnum < ${3:-$BLOCKS} ; bnum++ ))
    do inspect_block $bnum
    done
fi | gzip >"$PRESEED.log.gz"

echo
  • ত্রুটিযুক্ত মুছে ফেলা ASAP বিবেচনা করার পরে প্রশ্নে ফাইল সিস্টেম ব্যবহার বন্ধ করুন।
  • এই স্ক্রিপ্টটি সম্ভবত বড় ফাইলগুলিতে ব্যর্থ হবে, এটি ফাইল সিস্টেমের উচ্চ স্তরের স্ট্রাক্টগুলি পার্স করে না।
  • মূলত, আধুনিক ফাইল সিস্টেমগুলি আনলিঙ্কড ডেটাগুলি দৃ rob়তার সাথে পুনরুদ্ধার করার জন্য ডিজাইন করা হয়নি, সুতরাং হারিয়ে যাওয়া ডেটা পুনরুদ্ধারের কোনও গ্যারান্টি নেই।
  • ফাইল সিস্টেমের একটি ব্যাকআপ ইমেজ পরিচালনা করুন।

যদি ফাইলটি 12 টি ব্লকের চেয়ে বড় হয়, তবে আমি মনে করি এটি সম্ভবত ডেটা ব্লকগুলির মধ্যে ইন্ডিয়ারেশন ব্লকগুলি খুঁজে পাবেন। সেক্ষেত্রে কেবল ধারাবাহিকভাবে পড়লে আবর্জনা আউটপুট তৈরি হবে। তবে আপনি যদি ইন্ডিরিশন ব্লকগুলি সন্ধান করতে সক্ষম হন তবে আপনি বাকী ফাইলটি পুনরুদ্ধার করতে পারবেন (যদি না এটি অবশ্যই ওভাররাইট না করা থাকে)।
ক্যাস্পারড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.