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

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

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

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

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

2. आर्काइव में डैमेज सिमुलेट करना और CRC एरर जांचना
परीक्षण की अगली प्रक्रिया को जारी रखने के लिए अपनी वर्किंग डायरेक्टरी ~/bzip2_demo में बने रहते हैं।

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

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

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

3. bzip2recover टूल चलाना और सुरक्षित ब्लॉक्स निकालना
रिकवरी प्रक्रिया निष्पादित करने के लिए लैब डायरेक्टरी ~/bzip2_demo में मौजूद रहते हैं।

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

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

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

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

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

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

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