लापता भागों के साथ मल्टीपार्ट आरएआर कैसे निकालें?


12

मेरे पास एक मल्टीपार्ट .rarआर्काइव .tar.gzहै, जिसके अंदर एक ही फाइल है (यह मत पूछिए, कि यह कैसे बनाया गया था)। मुझे कुछ हिस्से याद आ रहे हैं, लेकिन पहला भाग मेरे पास है। मैं .tar.gzजितना संभव हो उतना निकालना चाहूंगा । मैं उसे कैसे कर सकता हूँ?

अगर मैं unrar x -kb file.part1.rarइसे चलाता हूं तो हमेशा से शुरुआत करता .tar.gzहै part1और त्रुटि के साथ वहां रुक जाता है। मैं किसी भी उपकरण की कोशिश करने के लिए खुश हूं (अनरर करने की जरूरत नहीं है)।


1
जाहिर है, आपको पूरी चीज़ की ज़रूरत है, इसके अन्यथा काम नहीं करने वाला है
बीमार

1
खैर, वह कहता है कि वह "जितना संभव हो सके" चाहता है। हालाँकि, यह अत्यधिक संभावना है कि जो कुछ भी वह निकालेगा वह उपयोग करने योग्य नहीं होगा, जब तक कि यह एक सरल फ़ाइल प्रारूप (बिटमैप?) नहीं है।
WindowsEscapist

यदि कोई अन्य संग्रह है जिसके अंदर कई फाइलें हैं, तो वह कुछ फाइलों को पुनर्प्राप्त करने में सक्षम हो सकती है। जितना संभव हो सके WinRar अर्क बनाने के लिए चाल है।
दाविदबूमन

2
मुझे समझ नहीं आता कि लोग प्रश्नों को क्यों वोट देते हैं, सिर्फ इसलिए कि वे नहीं समझते हैं।
दाविदबूमन

तो क्या आपने कोई उपाय खोजा, और हमारे साथ साझा करें?
davidbaumann 20

जवाबों:


2

मेरे पास खिड़कियों पर एक समान चीज थी , जब मेरे पास 10.5 में से 1,5,6,9,10 भाग थे, तो मैं 2,3,4,7,8 भागों को याद कर रहा था।

  1. आपके पास मौजूद भागों को निकालने के लिए 7zip का उपयोग करें, और तदनुसार उनका नाम बदलें। यानी: pt1 pt5 pt6, आदि।

  2. गायब भागों को भरने के लिए शून्य (शून्य) फ़ाइल उत्पन्न करें, आपके द्वारा किए गए प्रत्येक भाग के बाइट्स में सटीक आकार का उपयोग करके और निकाले गए (अर्थात pt1 का आकार जो कि pt5 और pt6 के आकार के समान है ...):

    fsutil फ़ाइल क्रिएटिन्यू [path_to_file] [size_in_bytes]

    मेरे मामले में मैंने इस्तेमाल किया:

    fsutil फ़ाइल createnew C: \ TMP \ रिक्त 1022701562

  3. फ़ाइलों को संक्षिप्त करें (बाइनरी फ़ाइलों के लिए / b का उपयोग करके)

    copy / b file1 + file2 + file3 targetfile

    मेरे मामले में:

    कॉपी / b pt1 + खाली + खाली + खाली + pt5 + pt6 + खाली + खाली + pt9 + pt10 output_file

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


मैं निर्देशों को बहुत अच्छी तरह से नहीं समझता। आप 7zip से 'अपने पास मौजूद पुर्जे' कैसे निकालते हैं? 7z %fileसभी पार्ट फ़ाइलों को लोड करने का प्रयास करता है और यदि उनमें से एक पहले से ही गायब है, तो एक त्रुटि देता है। टॉरेंट का क्या करना है पूरी बात? क्या मैं अलग-अलग मूल संपीड़ित फ़ाइलों को Deluge का उपयोग करके द्विआधारी बाइनरी से निकाल सकता हूं?
cduguet

5

यह शायद अब प्रासंगिक नहीं है, लेकिन मुझे बस एक ही समस्या थी और एक सरल समाधान मिला जिसने मेरे लिए काम किया और सोचा कि इसे साझा करना अच्छा होगा।

मेरे पास 6 भागों में एक RAR संग्रह संरक्षित पासवर्ड था, लेकिन part4 गायब था। मैंने WinRAR के "मरम्मत" फ़ंक्शन का उपयोग करने की कोशिश की, लेकिन यह कहा कि यह पुनर्प्राप्ति रिकॉर्ड नहीं ढूंढ सका। मैंने ऊपर दिए गए तरीकों की कोशिश की, लेकिन वे काम नहीं करते थे और निकासी हमेशा बंद हो जाती थी जहां लापता भाग शुरू हो गया था।

अंत में, मैंने WinRAR को सोच के भागों 5 और 6 में मूर्ख बनाने का फैसला किया जहां एक अलग संग्रह और उन्हें "आर्काइव.पार्ट 1.रार" और "संग्रह.पार्ट 2.रार" नाम दिया। मैंने तब WinRAR को नया भाग 1 निकालने के लिए कहा और भले ही मुझे एक त्रुटि संदेश मिला, जिसमें कहा गया था कि यह उस फ़ाइल को नहीं निकाल सकता है जो नए भाग 1 की शुरुआत में समाप्त हुई (क्योंकि यह लापता भाग 4 से कुछ डेटा गायब था), यह मूल 5 और 6 से अन्य सभी फ़ाइलों को निकालने में कामयाब रहा।

मुझे उम्मीद है कि इससे भविष्य में अन्य लोगों को भी यही समस्या होगी।


1

मुझे लगता है 100Mb भागों, भाग 3 गायब है। तुम कोशिश कर सकते हो

cat blubb.part01.rar blubb.part02.rar blubb.part04.rar > blubb.rar

मैं भी कोशिश करूँगा, जो बेहतर काम कर सकता है और WinRar को लगता है कि, फ़ाइल दूषित है:

dd if=/dev/zero of=blubb.part03.rar bs=1M count=100
cat blubb.part01.rar blubb.part02.rar blubb.part03.rar blubb.part04.rar > blubb.rar

अच्छे विचारों, उन्हें बाहर की कोशिश की। 1. यदि सभी मौजूदा भागों को समाप्‍त कर दिया गया है, तो ठीक उसी जगह अनरर फेल (CRC त्रुटि) होती है। 2. यदि मैं बाद के हिस्से को लापता नाम के समान नाम की प्रतिलिपि बनाता हूं, तो यह उसी स्थान पर विफल हो जाता है, लेकिन फिर संदेशों को प्रिंट करता है जो यह कहते हैं कि यह बाद के भागों को संसाधित कर रहा है (शायद दूसरी फ़ाइल की शुरुआत के लिए) 3। अगर मैं dd के साथ एक ऑल-जीरो फ़ाइल बनाता हूं, तो यह "खराब संग्रह" के साथ विफल हो जाता है
एलेक्स I

और, अगर मैं एक सभी शून्य फ़ाइल और कॉन्टेनेट बनाता हूं, तो यह "Cannot find volume" के साथ एक ही स्थान पर विफल रहता है
एलेक्स I

बस सोच cat blubb.rar | unrar > file.tgz:।
davidbaumann

हो सकता है कि आप विंडोज के लिए
विनर

1

चरण 1: उदाहरण के लिए, फ़ाइलों का नाम बदलें:

file.part1.rar -> fileA.rar
file.part2.rar -> fileB.rar
file.part3.rar -> fileC.rar
etc..

चरण 2: प्रत्येक फ़ाइल को निकालने के लिए 7-ज़िप का उपयोग करें ।

फायदा!

(कुछ परिस्थितियों में, नाम बदलना अनावश्यक है और आप 7-ज़िप को आपके लिए सभी फ़ाइलों को निकालने दे सकते हैं।)


3
यह उन फ़ाइलों की मदद करने वाला नहीं है, जो एक से अधिक भाग की फ़ाइल हैं।
रोहित गुप्ता

क्या आपने 7-ज़िप का उपयोग करके एक-एक नाम बदला हुआ फ़ाइल निकालने की कोशिश की है?
साइकोइ

1

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


0

7-ज़िप एक मल्टी-पार्ट रार से फ़ाइल का हिस्सा निकालेगा, और फिर आप उन्हें dd के साथ एक साथ वापस सिलाई कर सकते हैं। उदाहरण के लिए, यदि आपके पास पहला और अंतिम रार-भाग है:

7z x p1.rar
mv dir p1  # rename out of the way
7z x plast.rar
unrar l p1.rar
   # note the file size of the entire file
ls -l dir/file  # note the size of the last part
dd if=dir/file of=p1/file  conv=notrunc  bs=1 seek=$((full_size - lastpart_size))

यदि ऑफ़सेट की आपको आवश्यकता नहीं है, तो एक ब्लॉक आकार का उपयोग करें जो एक से बड़ा है। ddकेवल seekआउटपुट ब्लॉक आकार के गुणक में ही हो सकता है । ddवास्तव में उस ब्लॉक आकार के साथ कॉल readऔर writeसिस्टम कॉल करता है , इसलिए bs=1वास्तव में बेकार है।

एक बड़ा ibs(इनपुट ब्लॉक आकार) आधे CPU समय की बचत करेगा, क्योंकि (आउटपुट ब्लॉक आकार) seekकी इकाइयों में है obs। या हो सकता है कि कुछ अन्य उपकरण हैं जो एक मनमाना बाइट स्थिति की तलाश कर सकते हैं और फिर सामान्य आकार I / Os कर सकते हैं। या यदि आप यह स्क्रिप्टिंग कर रहे थे, तो आप bs=132k-align तक dd कर सकते थे , तब हो सकता हैtail -c +$misalignment lastpart/file | dd ... of=p1/file conv=notrunc bs=32k seek=$(( (full_size - lastpart_size + misalignment) / (32 * 1024) ))

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.