आर्क लिनक्स पर बढ़ते HFS + विभाजन


22

मुझे आर्क लिनक्स पर एक hfs + विभाजन बढ़ते हुए कुछ समस्याएं हो रही हैं।

जब मैं चलता sudo mount -t hfsplus /dev/sda2 /mnt/macहूं तो मुझे यह त्रुटि मिलती है:

mount: wrong fs type, bad option, bad superblock on /dev/sda2,
   missing codepage or helper program, or other error

   In some cases useful info is found in syslog - try
   dmesg | tail or so.

रनिंग dmesg | tailदेता है:

[ 6645.183965] cfg80211: Calling CRDA to update world regulatory domain
[ 6648.331525] cfg80211: Calling CRDA to update world regulatory domain
[ 6651.479107] cfg80211: Calling CRDA to update world regulatory domain
[ 6654.626663] cfg80211: Calling CRDA to update world regulatory domain
[ 6657.774207] cfg80211: Calling CRDA to update world regulatory domain
[ 6660.889864] cfg80211: Calling CRDA to update world regulatory domain
[ 6664.007521] cfg80211: Exceeded CRDA call max attempts. Not calling CRDA
[ 6857.870580] perf interrupt took too long (2503 > 2495), lowering kernel.perf_event_max_sample_rate to 50100
[11199.621246] hfsplus: invalid secondary volume header
[11199.621251] hfsplus: unable to find HFS+ superblock

क्या इस विभाजन को माउंट करने का कोई तरीका है?

संपादित करें :

उपयोग करने sudo mount -t hfsplus -o ro,loop,offset=409640,sizelimit=879631488 /dev/sda2 /mnt/macसे छुटकारा मिलता hfsplus: invalid secondary volume headerहैdmesg | tail

जवाबों:


36

यह संभावना है कि HFS वॉल्यूम बढ़ नहीं रहा है क्योंकि HFS विभाजन एक CoreStorage वॉल्यूम (OS X 10.10 के बाद से डिफ़ॉल्ट) में लिपटा है। आप यह सत्यापित कर सकते हैं कि क्या यह आउटपुट के साथ है fdisk -l: fdisk आउटपुट

HFS + डिवाइस में दो वॉल्यूम हेडर, एक 1024 और डिवाइस के अंत से माध्यमिक 1024 का उपयोग करता है । विभाजन के अनुसार, जब विभाजन को बढ़ते हुए द्वितीयक हेडर के विभाजन के अंत से ठीक 1024 बाइट्स होने की उम्मीद की जाती है, लेकिन CoreStorage के साथ HFS वॉल्यूम को लपेटता है जो अब ऐसा नहीं है, इसलिए यह गर्भपात करता है। आप मैन्युअल रूप से HFS वॉल्यूम का आकार निर्दिष्ट करने और इसे ठीक -o sizelimit=Nकरने के mountलिए पास कर सकते हैं , लेकिन किसी को इसके लिए जादुई मूल्य कैसे मिलता है N?

testdiskउपयोगिता विभाजन के लिए स्कैन कर सकते हैं, जहां HFS विभाजन वास्तव में समाप्त हो जाती है पर इशारा। सावधान रहें - टेस्टडिस्क में गलत विकल्पों का चयन आपकी विभाजन तालिका को नुकसान पहुंचा सकता है!

  1. टेस्टडिस्क लॉन्च करें testdisk /dev/sdX, और फिर OKड्राइव का चयन करने के लिए
  2. IntelMBR के लिए या EFI GPTGPT स्वरूपित ड्राइव के लिए चयन करें
  3. दबाएँ Analyseऔर फिरQuick Search
  4. कुछ क्षणों के बाद इसे इसे मिले विभाजन को मुद्रित करना चाहिए: वृषण परिणाम

    fdisk -lपूर्व में बताए गए 623463232 सेक्टरों के वास्तविक विभाजन आकार की तुलना में संकेतित विभाजन लगभग (लेकिन थोड़ा छोटा) दिखता है ।

    क्योंकि TestDisk आउटपुट सेक्टर्स का उपयोग करता है, इसलिए हमें बाइट्स में HFS वॉल्यूम का आकार प्राप्त करने के लिए ड्राइव के लॉजिकल सेक्टर साइज़ (आमतौर पर 512 या 4096 बाइट्स) से गुणा करना होगा। यही कारण है कि मूल्य है के लिए Nहम के लिए इस्तेमाल करेंगे -o sizelimit=Nजब HFS मात्रा बढ़ते।

    यदि आप अपने ड्राइव के तार्किक क्षेत्र के आकार को नहीं जानते हैं, तो नीचे दिखाए गए लाइन पर रिपोर्ट किए गए दूसरे पहले नंबर के आउटपुट की जांच fdisk -lकरें:अपने डिस्क के तार्किक क्षेत्र के आकार का पता लगाना

  5. qप्रोग्राम से बाहर निकलने के लिए कई बार दबाएं

  6. डिस्क को माउंट करें: mount /dev/sdXn -t hfsplus -o ro,sizelimit=N

3
उपयोगकर्ता edmonde से : यह नुस्खा मेरे लिए बहुत अच्छा काम करता है, लेकिन मुझे कुल सेक्टर आकार की गणना करने के लिए भौतिक क्षेत्र के आकार के विपरीत तार्किक क्षेत्र आकार (दो संख्याओं में से पहला, 512 बनाम 4096 में) का उपयोग करके इसे मोड़ना पड़ा। मुझे यकीन नहीं है कि क्यों, लेकिन यह महान काम किया।
फिक्सर 1234

इससे मेरी समस्या ठीक हो गई। अन्य संसाधनों ने एक offsetपैरामीटर का उपयोग करने का सुझाव दिया , जो इसके साथ संयुक्त होने पर काम नहीं करता था, लेकिन केवल sizelimit बाइट्स (बाइट्स * सेक्टर) की संख्या के लिए सेट का उपयोग करते हुए , एक आकर्षण की तरह काम किया, यहां तक ​​कि गैर-कोरस्टोरेज विभाजन के लिए भी
cdeszaq

यह मेरे लिए काम नहीं करता है। मुझे मिलता है mount failed: Unknown error -1और कुछ भी नहीं है dmesghfsplusनिश्चित रूप से भरी हुई है।
दान

+1 तार्किक क्षेत्र आकार का उपयोग करके तय किया गया
जेक

1
यह समाधान OSX पर एक अद्यतन के बाद मेरे लिए ठीक काम कर रहा था जिसने इस काम को रोक दिया। क्या किसी और का भी यही मसला था? कोई सुझाव?
विक

2

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

आपको एक डिस्क को बूट करने की आवश्यकता होगी जो कि मन में नहीं है, अधिमानतः इंटरनेट रिकवरी (यदि उपलब्ध हो, रीबूट पर कमांड-विकल्प-आर)। टर्मिनल खोलें और एक करें:

diskutil cs list

आउटपुट को आपके CoreStorage वॉल्यूम और सभी को दिखाना चाहिए, उनमें से एक इसकी रिवर्टेबल स्थिति है। यदि यह हाँ इंगित करता है तो आप आगे बढ़ने के लिए अच्छे आकार में होंगे। आगे आप दौड़ेंगे:

diskutil cs revert /dev/ diskXsY

(जहां X डिस्क संख्या है और Y विभाजन संख्या है)।

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

यदि यह एन्क्रिप्ट किया गया था तो प्रक्रिया में थोड़ा समय लगेगा, लेकिन "डिस्कुटिल सीएस लिस्ट" आपको प्रतिशत के रूप में प्रगति दिखाएगा।

मेरे पास गैर-कोरस्टोरेज HFS + ड्राइव और विभाजन को आर्क पर खुद से चलाने में कोई समस्या नहीं है। मैंने अंततः डेटा को स्थानांतरित कर दिया, रिपर्टिशन को ext4 के रूप में और डेटा को उनके पास वापस ले गया।

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