64kb ब्लॉक आकार के साथ XFS से फ़ाइलें प्राप्त करना


9

मैं अपने 2 में से एक से पूरी तरह से काम कर रहे, गैर-भ्रष्ट, गैर-एन्क्रिप्टेड एनएएस ड्राइव की फ़ाइलों को पुनर्प्राप्त करने के लिए एक मिशन पर रहा हूं जो कि RAID 1 में हुआ करता था। एनएएस पैट्रियट जेवलिन एस 4 था, जो (जैसा कि मैंने अपने शोध से पाया है ) प्रोमिस फास्टट्रैक फर्जी रेड कंट्रोलर का उपयोग करता है।

इस पर जानकारी बहुत ही कम है, इसलिए यहां के गोगलर्स के लिए इस NAS के बारे में कुछ तथ्य हैं:

  • RAID नियंत्रक: वादा फास्टट्रैक (नकली)
  • वॉल्यूम सिस्टम: LVM2
  • फ़ाइलसिस्टम: 64kb ब्लॉक आकार के साथ XFS (65536 बाइट्स)
  • आर्क: 800 मेगाहर्ट्ज एएमसीसी पावरपीसी प्रोसेसर, 256 एमबी रैम (मैथ्यू के अनुसंधान के लिए धन्यवाद)

ऐसा करते समय मेरे पास केवल विंडोज 10 और मैकओएस कंप्यूटर था, और मुझे एलवीएम 2 वॉल्यूम में एक्सएफएस को बढ़ाने में सक्षम कोई सॉफ्टवेयर नहीं मिला (1 अपवाद के साथ, नीचे इस पर अधिक)। मुझे अपनी पुरानी नेटबुक एसर एस्पायर वन को बाहर निकालना था, और उस पर पिल्ला लाइनक्स स्थापित करना था (विशेष रूप से lxpup स्वाद)।

पिल्ला लाइनक्स पर मैं नामक एक उपकरण का उपयोग करके इस फाइल सिस्टम को माउंट करने में कामयाब रहा dmraid। इस टूल में pdc वॉल्यूम बढ़ने का एक तरीका है, जो Promise FastTrack के लिए इसकी आईडी है। एक बार जब मैं इसे बढ़ाते हुए कुछ हुप्स के माध्यम से कूदने में कामयाब रहा, तो मैंने वास्तविक एक्सएफएस फाइलसिस्टम तक पहुंच प्राप्त की, और मेरे निराशा के लिए, यह 64kb ब्लॉक आकार का हो गया।

यह वह जगह है जहां मैंने "रीड एक्सएफ़एस 64 केबी ब्लॉक आकार" जैसी चीजों को गुगना शुरू कर दिया। केवल कुछ जवाब जो कहते हैं: "लिनक्स 4kb से बड़े आकार को नहीं पढ़ सकता है, जब तक कि आप कर्नेल को पैच नहीं करते हैं"। मुझे पता नहीं है कि कर्नेल को कैसे पैच किया जाए, और मैं चकित हूं कि इसे अनुमति देने के लिए किसी भी तरह का अनुकरण नहीं है।

मैंने उन ऐप्स में से 1 अपवाद का उल्लेख किया है जो विन / मैक पर इस विभाजन को नहीं पढ़ सकते हैं। वह अपवाद ufsexplorer था। यह $ 100 का ऐप है, यह मुझे फाइलों को मूल रूप से दिखाने में सक्षम था। मैंने कुछ फाइलों की नकल करते हुए साबित किया कि यह काम करता है, लेकिन परीक्षण संस्करण केवल छोटी फाइलों की नकल करने की अनुमति देता है।

मैं यह मानने से इंकार करता हूं कि किसी भी स्तर की जटिलता से मुक्त मुक्त स्रोत उपकरण नहीं है जो मुझे 64kb xfs पढ़ने में मदद न कर सके।

मेरा सवाल है: क्या किसी को भी इस तरह के किसी भी उपकरण का पता है? एक या एक से अधिक टूल, या कर्नेल पैचिंग, या कुछ और (फ्री) का उपयोग करके डेटा कैसे प्राप्त किया जाए, इस पर कोई विशेष निर्देश बहुत सराहना करते हैं।

एक और बात: मैं अत्यधिक इन ड्राइव्स की स्थानीय छवियां नहीं बनाना चाहूंगा (जब तक कि यह एकमात्र तरीका नहीं है)। आखिरकार, यह 2TB डेटा है, मेरे पास इतना स्थान नहीं हो सकता है।

PS अगर एक ज्ञात लाइनक्स है जिसे मैं अपने एसर पर स्थापित कर सकता हूं जो 64kb xfs पढ़ सकता है, तो यह एक व्यवहार्य समाधान भी है।

अपडेट 1 : मैंने अभी https://www.cgsecurity.org/wiki/TestDisk के बारे में सीखा । एक शॉट के लायक हो सकता है। एक बार जब मैं इसे आज़माने के लिए वापस रिपोर्ट करूँगा।

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


मैं दो समाधान देखता हूं, अपने स्वयं के कस्टम कर्नेल का निर्माण करता हूं या अपने एक्सएफएस विभाजन के साथ एक छवि बनाता हूं
अलेक्जेंडर

@AlexanderT हाय, जवाब देने के लिए धन्यवाद। कस्टम कर्नेल के बारे में कोई लिंक? इसके अलावा, वहाँ शायद एक तरह से मेरे मैक ड्राइव में ड्राइव क्लोन करने के लिए है जबकि फाइल सिस्टम पर मक्खी परिवर्तित? और स्पष्ट होने के लिए: मेरे पास एसएटीए -> यूएसबी कनवर्टर के माध्यम से एनएएस ड्राइव हुक है, इसलिए मैं इसे बिना किसी छवि के सीधे विंडोज़ या मैक में प्लग कर सकता हूं।
मैक्स

कोशिश करें और देखें कि क्या xfsdump मदद करता है।
मार्टिअन

> यह 64kb ब्लॉक साइज का निकला। आप इस निष्कर्ष पर कैसे पहुंचे, इस बारे में विस्तार से बताएं
१।

1
समझा। ठीक है, जो चीज मैं आपके जूते में रखने जा रहा हूं, वह इसी मेल लिस्ट में लिखी जा रही है: xfs.org/index.php/XFS_email_list_and_archives
poige

जवाबों:


8

मैंने आपकी समस्या पर थोड़ा शोध किया है। आसान नहीं है लेकिन संभव लगता है।

कोड ब्रेकिंग का क्षेत्र यह है (अच्छी तरह से, नई गुठली में): fs/xfs/libxfs/xfs_sb.c

271         /*
272          * Until this is fixed only page-sized or smaller data blocks work.
273          */
274         if (unlikely(sbp->sb_blocksize > PAGE_SIZE)) {
275                 xfs_warn(mp,
276                 "File system with blocksize %d bytes. "
277                 "Only pagesize (%ld) or less will currently work.",
278                                 sbp->sb_blocksize, PAGE_SIZE);
279                 return -ENOSYS;
280         }

यह मूल रूप से आवश्यक है कि XFS ब्लॉक का आकार कम से कम सिस्टम पेज के आकार के बराबर हो।

इसका मतलब दो चीजें हैं।

  1. यह एक बग का वर्कअराउंड है जिसके बारे में पहले नहीं जाना गया था।
  2. मूल रूप से सिस्टम पृष्ठ का आकार 64k था।

मैंने जाकर एक बहुत पुरानी कर्नेल (EL4) की जाँच की और ऊपर जो प्रतिबंध था, वह अब भी है। इसका अर्थ यह है कि आप अपनी वास्तुकला (x86) पर जो करना चाहते हैं वह करने के लिए मौलिक रूप से संभव नहीं है।

यह देखते हुए कि आपने NAS का नाम प्रदान किया, मैंने कुछ गोलगप्पे किए और यह खोज की: http://www.techwarelabs.com/patriot-javelin-s4-network-attached-storage/2/

जिसका अर्थ है कि यह PPC CPU का उपयोग करता है।

जेवलिन का हार्डवेयर अतिरिक्त भूमिकाओं को संभालने में सक्षम से अधिक है। यह अनिवार्य रूप से 800 मेगाहर्ट्ज एएमसीसी पावरपीसी प्रोसेसर और 256 एमबी रैम के साथ एक एम्बेडेड लिनक्स सिस्टम है।

वास्तव में, PowerPC गुठली पर 64k पृष्ठों या 4k पृष्ठों का उपयोग करने के लिए बनाया जा सकता है। यह समझाता है कि ब्लॉक 64k क्यों है और यह भी कि आप अपनी मशीन पर फाइलसिस्टम को क्यों नहीं चला सकते, जहां यह पहले अपने NAS पर काम करता था।

यदि आप फाइलसिस्टम को खोलने की कोशिश करना चाहते हैं - मुझे लगता है कि आपका सबसे अच्छा विकल्प PPC64LE (मुझे लगता है कि सीपीयू की वास्तविक वास्तुकला है) का उपयोग करके हाइपरविजर में एक वर्चुअल मशीन इंस्टेंस चलाना है, फेडोरा 64k पृष्ठों के साथ अपने PPC64LE का निर्माण करता है।

https://alt.fedoraproject.org/alt/

आप ऐसा करने के लिए qemu का उपयोग कर सकते हैं। ऐसा लगता है कि आप इस बारे में कुछ निर्देश (परीक्षण नहीं) दिए गए हैं कि आप इसे कैसे करेंगे।

https://rwmj.wordpress.com/tag/ppc64le/

वहां से, सीधे VM में डिस्क (ओं) को उजागर करें और ड्राइव तक पहुंचने के लिए अपना सामान्य dmraid / lvm / माउंट करें।


क्यूमू दृष्टिकोण पर ध्यान देने के लिए मेरे पास जैसे ही समय होगा मैं रिपोर्ट करूंगा। बहुत उम्मीद है, आप इस मैथ्यू में डाल समय की सराहना करते हैं।
मैक्स चेर्निक

वर्तमान में मैं चकित हूं दौड़ने की कोशिश कर रहा हूं virt-builder fedora-25 --arch ppc64le -o fedora-25-ppc64le.img। मैं पिल्ला लाइनक्स पर हूं और "सुपरमाइन: इस सिस्टम या डिस्ट्रो द्वारा उपयोग किए जाने वाले पैकेज मैनेजर का पता नहीं लगा सका।"
मैक्स चेर्निक

ऐसा करने के लिए एक फेडोरा डिस्ट्रो का उपयोग करें।
मैथ्यू इफ

मुझे अभी तक इस प्रयास को पूरा करने का मौका नहीं मिला है, लेकिन मैं आपको इनाम दे रहा हूं। मुझे आशा है कि मैं अभी भी इसका अनुसरण कर सकता हूं क्योंकि मैं इसकी ओर काम कर रहा हूं।
मैक्स चिरनायक

@ ठाकुनिन मैं दोनों प्रारूप में सक्षम था और एक ppc64le आर्किटेक्चर में 64kb xfs फाइल सिस्टम को माउंट करता था जैसा कि मैंने सुझाव दिया था कि आप इस सप्ताह के शुरू में ऐसा करेंगे इसलिए मुझे पता है कि यह काम करेगा।
मैथ्यू इफ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.