Ubuntu में करप्ट bzip2 फ़ाइल रिकवर करें: bzip2recover गाइड

परिचय: bzip2 आर्काइव और डेटा रिकवरी

जब Ubuntu सिस्टम पर कोई कंप्रेस्ड bzip2 आर्काइव डैमेज या करप्ट हो जाता है, तो साधारण अनकंप्रेशन टूल्स काम करना बंद कर देते हैं। ऐसी आपात स्थिति में bzip2recover यूटिलिटी बेहद उपयोगी साबित होती है। इस गाइड में हम गहराई से समझेंगे कि यह टूल किस तरह काम करता है और करप्ट आर्काइव से सुरक्षित ब्लॉक्स निकालकर उपयोगी डेटा कैसे बचाया जा सकता है।

1. टेस्टिंग लैब तैयार करना और मल्टी-ब्लॉक आर्काइव बनाना

सिस्टम पर रिकवरी प्रक्रिया का परीक्षण करने के लिए रिपॉजिटरी इंडेक्स को अपडेट करते हुए bzip2 पैकेज इंस्टॉल करते हैं।

sudo apt-get update -qq && sudo apt-get install -y bzip2

परीक्षण के दौरान बनने वाली फ़ाइलों को व्यवस्थित और सुरक्षित रखने के लिए एक अलग डायरेक्टरी बनाकर उसमें स्विच करते हैं।

mkdir -p ~/bzip2_demo && cd ~/bzip2_demo

डेटा करप्शन और रिकवरी टेस्ट के लिए 2MB साइज़ का रैंडम टेक्स्ट डेटा जनरेट करके sample_data.txt नाम से सेव कर लेते हैं।

base64 /dev/urandom | head -c 2M > sample_data.txt

bzip2 टूल डेटा को अलग-अलग ब्लॉक्स में विभाजित करके कंप्रेस करता है। इस प्रयोग में कई ब्लॉक्स तैयार करने के लिए न्यूनतम ब्लॉक साइज़ (100KB) चुनेंगे, जिससे ओरिजिनल फ़ाइल भी सुरक्षित बनी रहेगी।
⚙️ [प्रमुख कमांड ऑप्शन्स]

-k : कंप्रेशन या डीकंप्रेशन पूरा होने के बाद मूल फ़ाइल को डिलीट होने से बचाता है।
-1 ~ -9 : ब्लॉक साइज़ को 100KB से लेकर 900KB तक निर्धारित करता है।
-d : कंप्रेस की गई आर्काइव फ़ाइल को डीकंप्रेस करता है।
-t : आर्काइव की इंटेग्रिटी (अखंडता) जांचकर करप्शन की पहचान करता है।
-v : कंप्रेशन अनुपात और ऑपरेशन का विस्तृत विवरण स्क्रीन पर दिखाता है।
-f : समान नाम वाली मौजूदा फ़ाइलों को बिना पूछे ओवरराइट करता है।

bzip2 -k -1 sample_data.txt

मूल टेक्स्ट फ़ाइल और हाल ही में बनी कंप्रेस्ड आर्काइव का साइज़ और स्थिति जांच लेते हैं।

ls -lh sample_data.txt*

2. आर्काइव में डैमेज सिमुलेट करना और CRC एरर जांचना

परीक्षण की अगली प्रक्रिया को जारी रखने के लिए अपनी वर्किंग डायरेक्टरी ~/bzip2_demo में बने रहते हैं।

cd ~/bzip2_demo

ओरिजिनल आर्काइव को सुरक्षित रखते हुए प्रयोग करने के लिए sample_data.txt.bz2 की एक अलग कॉपी corrupted_data.bz2 तैयार करते हैं।

cp sample_data.txt.bz2 corrupted_data.bz2

वास्तविक फ़ाइल करप्शन का माहौल बनाने के लिए dd कमांड के ज़रिए corrupted_data.bz2 के कुछ बाइट्स पर रैंडम डेटा ओवरराइट कर देते हैं।

dd if=/dev/urandom of=corrupted_data.bz2 bs=1 count=64 seek=10240 conv=notrunc status=none

डैमेज की गई फ़ाइल corrupted_data.bz2 की इंटेग्रिटी टेस्ट करते हैं ताकि ब्लॉक-वाइज़ प्रोसेसिंग स्थिति और CRC एरर की पुष्टि हो सके।

bzip2 -tvv corrupted_data.bz2 || true

3. bzip2recover टूल चलाना और सुरक्षित ब्लॉक्स निकालना

रिकवरी प्रक्रिया निष्पादित करने के लिए लैब डायरेक्टरी ~/bzip2_demo में मौजूद रहते हैं।

cd ~/bzip2_demo

bzip2recover यूटिलिटी करप्ट bzip2 फ़ाइल में मौजूद ब्लॉक हेडर्स को स्कैन करती है और सही सलामत ब्लॉक्स को अलग फ़ाइलों में एक्सट्रैक्ट करती है।
यह टूल corrupted_data.bz2 से काम करने योग्य ब्लॉक्स को अलग करके rec* नाम से नई इंडिपेंडेंट आर्काइव फ़ाइलें बना देता है।

bzip2recover corrupted_data.bz2

एक्सट्रैक्ट किए गए सभी ब्लॉक फ़ाइलों की सूची और उनके एट्रिब्यूट्स की पुष्टि करते हैं।

ls -la rec*corrupted_data.bz2

4. रिकवर किए गए ब्लॉक्स की पुष्टि और डेटा का पुनर्गठन

अलग किए गए ब्लॉक्स का सत्यापन और डेटा रीकंस्ट्रक्ट करने के लिए वर्किंग डायरेक्टरी ~/bzip2_demo में रहते हैं।

cd ~/bzip2_demo

एक लूप चलाकर हर एक एक्सट्रैक्टेड ब्लॉक फ़ाइल पर bzip2 -t रन करते हैं, जिससे यह सुनिश्चित हो जाता है कि कौन से ब्लॉक्स पूरी तरह सही हैं।
खराब ब्लॉक को छोड़कर बाकी सभी ब्लॉक्स बिना किसी एरर के मान्य घोषित हो जाते हैं।

for f in rec*corrupted_data.bz2; do bzip2 -t “$f” && echo “$f: 정상”; done

bzip2 -dc का इस्तेमाल करके प्रत्येक मान्य ब्लॉक को डीकंप्रेस करते हैं और उनके आउटपुट को क्रमबद्ध तरीके से recovered_data.txt फ़ाइल में जोड़ते जाते हैं।
इस प्रक्रिया में करप्ट ब्लॉक अपने आप छूट जाता है और बाकी का डेटा एक नई फ़ाइल में सुरक्षित रीस्टोर हो जाता है।

for f in rec*corrupted_data.bz2; do bzip2 -dc “$f” » recovered_data.txt 2>/dev/null || true; done

ls -lh कमांड चलाकर ओरिजिनल sample_data.txt और रीस्टोर की गई recovered_data.txt के फ़ाइल साइज़ का तुलनात्मक विश्लेषण करते हैं।

ls -lh sample_data.txt recovered_data.txt

इस प्रकार Ubuntu में करप्ट bzip2 फ़ाइल से डेटा को ब्लॉक-बाय-ब्लॉक सुरक्षित निकाला जा सकता है। जब भी कोई कंप्रेस्ड आर्काइव डैमेज हो जाए, तो निराश होने के बजाय bzip2recover की इस कार्यप्रणाली का इस्तेमाल करके अपने कीमती डेटा का अधिकांश हिस्सा वापस पाया जा सकता है।