बढ़ते HFS + ड्राइव के साथ समस्याएं


12

मुझे कुछ hfsplus ड्राइव बढ़ते हुए एक समस्या है। मुझे बस उन्हें आसानी से माउंट करने की आवश्यकता है। (जर्नल को अक्षम करना एक विकल्प नहीं है) मैंने बहुत शोध किया और पता चला कि कर्नेल संस्करण 2.6.37 से 2.6.38 तक के बदलाव के कारण समस्या शुरू हुई।

इस लिंक पर एक नजर डालिए bugs.launchpad.net पर

इसलिए मैंने इसे लिनक्स कर्नेल संस्करण 2.6.37 और निम्न के साथ परीक्षण किया और इसे ठीक काम करना चाहिए।

मेरे संस्करण के ऊपर के संस्करणों में 3.2.0-54-जेनेरिक (ubuntu 12.04) शामिल है, बढ़ते hfsplus छवियों और डिस्क के साथ ठीक काम नहीं किया। इसलिए मुझे ubuntu 9 से 2.6.31-14-जेनेरिक जैसे वर्किंग संस्करण से hfsplus मॉड्यूल की आवश्यकता है।

मैं इस मामले में HFS + DD छवि के साथ इन कमांड का उपयोग करता हूं। लेकिन मैंने अन्य hfsplus भौतिक ड्राइव और अन्य छवियों के साथ ऐसा किया। वे सभी कर्नेल के साथ काम करते हैं 2.6.37 और कम लेकिन नए संस्करणों के साथ नहीं:

sudo losetup -d /dev/loop0
sudo losetup /dev/loop0 -o $((512*409640)) /folder/iMac_21.dd

sudo mount -t hfsplus /dev/loop0 /mnt/hfs
mount: wrong fs type, bad option, bad superblock on /dev/loop0,
missing codepage or helper program, or other error

dmesg | tail
[84980.380254] hfs: invalid secondary volume header

मुझे इस जानकारी को "प्रमाण" में जोड़ना है कि समस्या कर्नेल 2.6.38 के बाद है। कृपया एक नज़र इसे देखिये। यह पैरागॉन का एक NTFS und HFS + ड्राइवर है।

"What's new in Paragon NTFS & HFS+ for Linux 8.5:
Support for modern Linux Kernels (up to 2.6.38);"
paragon-software.com/home/ntfs-linux-per/features.html

समस्या को ठीक करने के लिए मैंने अभी /lib/modules/2.6.27/kernel/fs/hfsplus.koअपने वर्तमान 3.2.0-54-जेनेरिक कर्नेल की प्रतिलिपि बनाई । लेकिन वह काम नहीं आया। मुझे अपने वर्तमान 3.2.0-54-जेनेरिक कर्नेल ubuntu 12.04 linux में काम करने वाला hfsplus हिस्सा कैसे मिलेगा? या 2.6.37 की तरह मेरे कर्नेल को कैसे ठीक किया जाए?

मैंने जो सबसे अच्छा संकेत देखा वह यही था ।

जवाबों:


18

यह सवाल थोड़ा पुराना है, लेकिन मैं एक ही परिस्थितियों में एक HFS + विभाजन को माउंट करने की कोशिश करते हुए भर में आया, और समाधान पाया। मुझे यकीन नहीं है कि यह कर्नेल संस्करण से कैसे संबंधित है, मेरा 3.13 (3.13.7-1 x86_64, डेबियन) है।

संक्षिप्त जवाब

विभाजन के आकार के साथ-साथ इसकी भरपाई भी करें।

लंबा जवाब

पहले विभाजन की जानकारी, बाइट्स में प्राप्त करें; आपको प्रारंभ और आकार संख्या की आवश्यकता है। यहां पार्टेड सेशन का एक उदाहरण है (जैसा कि आप अनुमान लगा सकते हैं, मेरी हार्ड ड्राइव छवि /mnt/macbook.dd है):

$ /sbin/parted /mnt/macbook.dd
WARNING: You are not superuser.  Watch out for permissions.
GNU Parted 2.3
Using /mnt/macbook.dd
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) unit
Unit?  [compact]? b
(parted) p
Model:  (file)
Disk /mnt/macbook.dd: 160041885696B
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start       End            Size           File system  Name                  Flags
 1      20480B      209735679B     209715200B     fat32        EFI system partition  boot
 2      209735680B  159907647487B  159697911808B  hfs+         Customer

यदि मैं केवल ऑफसेट (प्रारंभ) प्रदान करके विभाजन को माउंट करने की कोशिश करता हूं, तो मुझे आपके समान त्रुटि मिलती है:

# mount -v -t hfsplus -o ro,loop,offset=209735680 /mnt/macbook.dd /media/mac
mount: enabling autoclear loopdev flag
mount: going to use the loop device /dev/loop0
mount: wrong fs type, bad option, bad superblock on /dev/loop0,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so
# dmesg | tail -n2
[117791.463123] hfsplus: invalid secondary volume header
[117791.463132] hfsplus: unable to find HFS+ superblock

वैसे, आपको लॉसेटअप का उपयोग करने की आवश्यकता नहीं है, माउंट आपके लिए स्वचालित रूप से करता है। अब अगर मैं विभाजन का आकार (sizelimit) जोड़ता हूं, तो यह पूरी तरह से काम करता है:

# mount -v -t hfsplus -o ro,loop,offset=209735680,sizelimit=159697911808 /mnt/macbook.dd /media/mac
mount: enabling autoclear loopdev flag
mount: going to use the loop device /dev/loop0
/mnt/macbook.dd on /media/mac type hfsplus (ro,offset=209735680,sizelimit=159697911808)

4
आपका समाधान मेरे लिए "अमान्य द्वितीयक वॉल्यूम हेडर" संदेश का ध्यान रखता है, लेकिन "HFS +
सुपरब्लॉक

1
भले ही मैं दोनों ऑफसेट और sizelimit निर्दिष्ट दोनों dmesg में त्रुटि हो रही है
पत्नी

स्पष्ट नहीं है कि ऑफसेट क्या होना चाहिए - मेरे लिए, Numberमेरे डिवाइस की संख्या 1 है, offset=1और offset=0दोनों असफल हैं
माइकलचिरिको 7

16

किसी और के लिए इस प्रश्न पर ठोकर खाते हुए, उसी त्रुटि संदेश की तलाश में, ध्यान दें कि इस त्रुटि का एक और संभावित कारण है।

जबकि mcy द्वारा प्रदान किया गया उत्तर काम करना चाहिए यदि विभाजन वास्तव में एक HFS + विभाजन है, OSX Yosemite के साथ शुरू होने वाला मैक के लिए डिफ़ॉल्ट विभाजन प्रकार "कोर स्टोरेज" है, जिसका उपयोग तार्किक वॉल्यूम को संभालने के लिए किया जाता है। इसका मतलब यह है कि आप वास्तव में जो माउंट करना चाहते हैं वह "कोर स्टोरेज" विभाजन के अंदर एक लॉजिकल वॉल्यूम (HFS + filesytem का उपयोग करके) है।

यह देखने के लिए कि क्या आपका विभाजन "Apple Core Storage" प्रकार का है जिसका आप उपयोग कर सकते हैं gdisk: AF05"Apple Core Storage" af00के लिए कोड है , जबकि "Apple HFS / HFS +" के लिए कोड है।

यदि आपकी डिस्क "Apple कोर स्टोरेज" का उपयोग करती है, तो आप इसे माउंट करने के लिए इस उत्तर में दिए गए गाइड का उपयोग कर सकते हैं ।


1
धन्यवाद! यह ठीक वही मुद्दा था जिसका मैं सामना कर रहा था। लिंक्ड समाधान अच्छी तरह से काम करता है।
माइकल एंब्रोज
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.