मैं ओएस एक्स पर एक्स 4 फाइल सिस्टम कैसे माउंट कर सकता हूं?


131

मैक ओएस एक्स पर ext4 फाइल सिस्टम से पढ़ने और लिखने के लिए एक सुरक्षित, स्थिर अनुप्रयोग है ?

यदि नहीं, तो Mac OS X पर ext4 फाइल सिस्टम की सामग्री तक पहुंचने का सबसे अच्छा तरीका क्या है?


यदि आप ओएस एक्स के किस संस्करण को चला रहे हैं, यह निर्दिष्ट करने से अधिक उपयोगी होगा। ओएस संशोधन के आधार पर उपलब्ध समाधानों के साथ संगतता समस्याएं हैं।
8

जवाबों:


60

उत्तर वाणिज्यिक सॉफ्टवेयर में निवेश करने की आपकी इच्छा पर निर्भर करता है:

आप एक वाणिज्यिक उत्पाद पर कुछ पैसा खर्च करने पर आपत्ति नहीं है , पैरागॉन के मैक के लिए extFS आप पढ़ सकते हैं और ext2 / ext3 / ext4 फाइल सिस्टम के लिए उपयोग लिखने दे देंगे। वर्तमान संस्करण 10.10 से ऊपर तक OS X / macOS के सभी संस्करणों का समर्थन करता है।

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


2
निश्चित रूप से एक मुफ्त nonvm समाधान है?
पचेरियर

osboxes.org , virtualboxes.org के नए संस्करण प्रदान करता है।
टिम

36

केन के उत्तर पर निर्माण: मैंने fuse4x और fuse-ext2 का सफलतापूर्वक उपयोग किया, और मैं ext4use पर fuse-ext2 की सलाह देता हूं।

ext4fuse मेरे लिए एक परेशानी थी, क्योंकि इसके लिए मैनुअल संकलन की आवश्यकता होती है और इसमें fuse4x विकल्पों के लिए कोई समर्थन नहीं है जो मुझे एक्सेस कंट्रोल सेट करने की अनुमति देगा। fuse-ext2 डाउनलोड करने योग्य पैकेज प्रदान करता है, और 0.0.7 संस्करण ने ठीक काम किया। मैंने बिना किसी समस्या के कुछ बड़े आईएसओ की नकल की।


फ्यूज- ext2 माउंट चीजों को लिखने योग्य या केवल आसानी से पढ़ सकते हैं?
knocte

25

एक भी पूरी तरह से काढ़ा कमांड लाइन पैकेज प्रबंधक के माध्यम से OSXFUSE स्थापित कर सकते हैं :

brew install homebrew/fuse/ext4fuse

ध्यान दें कि इंस्टॉलेशन बताता है कि इसके अलावा कुछ कमांड को 'sudo' के रूप में चलाने की आवश्यकता है।


Yosemite के साथ बेहतर पर एक नजर है इस । और फिर यकीन है कि निर्देशिका कार्य करके अपना उपयोगकर्ता द्वारा पढ़े जाने योग्य बनाने के इस । इसे काम करने के लिए मुझे इस तरह पहिया समूह का उपयोग करना पड़ा:

sudo dscl . append /Groups/wheel GroupMembership $(whoami)

18

होमब्रे के हाल के परिवर्तनों के साथ, यह उतना ही सरल होना चाहिए:

brew cask install osxfuse
brew install ext4fuse

आपको रिबूट करना पड़ सकता है।

ext4fuse केवल-पढ़ने के लिए है, दुर्भाग्य से। और आपको एक सामान्य उपयोगकर्ता के रूप में काम करने के लिए एक ध्वज का उपयोग करने की आवश्यकता हो सकती है ।

इस प्रश्न को देखने वाले अन्य लोगों की दिलचस्पी लिबगस्टफेफ्स में हो सकती है । मुझे OS X पोर्ट के बारे में पता नहीं है, लेकिन यह देखते हुए कि VirtualBox के पास एक एपीआई है, यह सवाल से बाहर नहीं है।

मुझे आश्चर्य है कि क्यों किसी ने लिनक्स कर्नेल फाइलसिस्टम कोड को यूजरस्पेस / फ्यूज में चलाने की अनुमति देने के लिए संगतता परत नहीं लिखी है। या कोई है?


10

यदि आप सोच रहे हैं कि फ़्यूज़ और एक्सट्यूफ़्यूज़ (उदाहरण के लिए मैकपॉर्ट्स का उपयोग करते समय स्थापित किया गया है port install ext2fuse) का उपयोग करके कमांड लाइन एक ext4 विभाजन को माउंट करने के लिए क्या है - तो सबसे पहले आपको यह पता लगाने की ज़रूरत है कि लिनक्स विभाजन कहाँ है:

diskutil list

यह सभी डिस्क के लिए सभी विभाजनों को सूचीबद्ध करेगा और उनमें से आपको TYPE कॉलम के तहत सूचीबद्ध प्रासंगिक लोगों को लिनक्स के रूप में देखना चाहिए। इस तरह से डिवएक्स और पार्टीशन नंबर Y को मिलाएं / dev / diskXsY - उदा:

mount -t fuse-ext2 /dev/disk1s2 ~/my_mount_point

यह लॉग फ़ाइल में लिखने में सक्षम नहीं होने के बारे में शिकायत कर सकता है लेकिन फिर भी यह आपके होम माउंट पॉइंट में विभाजन को माउंट करना चाहिए। लेकिन अगर आप विभाजन को सिस्टम निर्देशिका में माउंट करना चाहते हैं तो आपको इसे रूट के रूप में चलाने की आवश्यकता है:

sudo mount -t fuse-ext2 /dev/disk1s2 /sys_mount_point

अगर वह काम नहीं करता है:

sudo ext2fuse /dev/disk1s2 /sys_mount_point

अद्यतन : हाल ही में मैंने पाया है कि फ़्यूज़- ext2 में कुछ नए ext4 फीचर्स की समस्या है, इसलिए इसके बजाय ext4fuse ( port install ext4fuseया brew install ext4fuse) का उपयोग करना बेहतर है । सीधे ext4fuse कमांड का उपयोग करें:

ext4fuse /dev/disk1s2 ~/mount_point

जैसा कि आमतौर पर टिप्पणियों में टिमोथी द्वारा उल्लेख किया गया है, sudoयदि आपको आमतौर पर उपयोग करने की आवश्यकता होती है, तो आप अपने घर की निर्देशिका के बाहर बढ़ रहे हैं या डिस्क (/ देव / डिस्कएक्स) केवल रूट द्वारा सुलभ है:

sudo ext4fuse /dev/disk1s2 /sys_mount_point

यह ध्यान दिया जाना चाहिए कि आप केवल उस माउंटेड फाइल सिस्टम को रूट / सुडो के रूप में एक्सेस कर सकते हैं। जैसे

sudo ls /sys_mount_point

और फाइलसिस्टम को अनमाउंट करने के लिए आप बस सामान्य umountकमांड का उपयोग करें (यदि विभाजन को माउंट करने के लिए सूडो के साथ किया जाता है):

umount ~/mount_point

यदि आपको अपने होम डायरेक्टरी के बाहर माउंट करना है तो आपको केवल ड्राइव को रूट के रूप में एक्सेस करना होगा। आप कर सकते हैं cd ~, mkdir mnt, ext4fuse /dev/diskXsY mnt, ls -la mntsudo / जड़ के बिना।
तीमुथियुस

आरोह: क्रियान्वित करें / निष्पादित करें / फ़ाइल सिस्टम / फ़ाइल- custom2.fs/Contents/Resources/mount_fuse-ext2 ...: ऐसी कोई फ़ाइल या निर्देशिका
वोल्फगैंग फ़ाहल

9

बस रिकॉर्ड के लिए, मैंने लिनक्स में ext4 विभाजन को लिखने के लिए अपने मैकबुक प्रो पर पैरागॉन एक्सटीएफएस चालक (परीक्षण संस्करण) का परीक्षण किया है। मैंने पाया कि ड्राइवर बहुत अस्थिर था, और इसने फाइलसिस्टम के लिए भ्रष्टाचार पैदा किया जो fsckन तो लिनक्स में और न ही डिस्क उपयोगिता में मरम्मत करने में सक्षम था।

मेरा विचार /homeइस प्रतिद्वंद्वी ड्राइवर का उपयोग करके मैक ओएस एक्स से मेरे विभाजन तक पहुंचना था , लेकिन मैं इस सेटअप को करने का सुझाव नहीं देता। अब तक, मेरे पास /homeलिनक्स में मेरा विभाजन है hfsplus, जिसमें कोई जर्नलिंग नहीं है, और फिर मैं अपनी फाइलों को मैक ओएस एक्स से एक्सेस कर सकता हूं। बेशक, समय-समय पर मुझे अपने एफएस में कुछ समस्याएं आती हैं, लेकिन बहुत बार-बार नहीं होती है। हालाँकि, मैं इस सेटअप का सुझाव नहीं देता (या तो कम से कम आपके पास अपने दैनिक कार्य के लिए बैकअप बैकअप है)।

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

अपडेट: मई 2015 तक, मैंने अपने / होम को ext4 में स्वरूपित कर लिया है, और मैं OS X के लिए FUSE के साथ संयोजन में fuse-ext2 का उपयोग करके फाइलसिस्टम माउंट करता हूं। मैं पढ़ने और लिखने के लिए ext4 विभाजन तक पहुंच सकता हूं। यह पहले से ऊपर वर्णित एक से अधिक ठोस सेटअप है।


मैं यहाँ अंतिम प्रविष्टि की पुष्टि कर सकता हूँ जहाँ Paragon ExtFS ड्राइवर आपके लिनक्स ड्राइव पर कुछ खराब कर सकता है। मेरे लिए, जो OSX और Linux को डुबो रहा है, मेरे / डिवाइस पर पैरागॉन ने भ्रष्टाचार पैदा किया। यह हल करना आसान था, लेकिन हालांकि यह एक स्थिर समाधान नहीं है ...

पैरागॉन एक्सटीएफएस चालक के साथ और खराब अनुभव। लगातार कर्नेल पैनिक के कारण सिस्टम रिबूट होता है, फाइल सिस्टम का भ्रष्टाचार (सौभाग्य से लिनक्स बॉक्स पर काम किया)। एक ही परिणाम के साथ दो अलग-अलग बाहरी ड्राइव पर कोशिश की।

9

आप Vagrant का उपयोग करके अपने OS X पर लिनक्स VM को जल्दी से बूट कर सकते हैं । आपको VMBox जैसे वर्चुअलबॉक्स और वैग्रांट को साइट के माध्यम से .dmg फ़ाइल या ब्रू कस्क का उपयोग करके इंस्टॉल करना होगा ।

आपके द्वारा vagrantकमांड इंस्टॉल करने के बाद, इसे किसी भी चयनित फ़ोल्डर में चलाएं:

vagrant init ubuntu/trusty64; vagrant up --provider virtualbox

यह Vagrantfileकॉन्फ़िगर फ़ाइल और .vagrantफ़ोल्डर उत्पन्न करेगा ।

और आपके पास कुछ ही मिनटों में लिनक्स बॉक्स बूट हो जाएगा ( एटलस हैशिकॉर्प रिपॉजिटरी से डाउनलोड किया गया )।

फिर कमांड के माध्यम से बॉक्स से कनेक्ट करें : vagrant sshऔर लिनक्स के अंदर अपने डिवाइस को माउंट करने का प्रयास करें

डिफ़ॉल्ट रूप से आपका वर्तमान फ़ोल्डर /vagrantVM में फ़ोल्डर के साथ सिंक किया जाएगा । अधिक उन्नत विकल्पों के लिए, आप Vagrantfileआवश्यक कॉन्फ़िगरेशन के साथ संशोधित कर सकते हैं ।

इसलिए यदि आप अपने फाइल सिस्टम को /vagrantफ़ोल्डर में माउंट करते हैं , तो यह स्वचालित रूप से आपके मैकओएस पर वापस सिंक हो जाएगा।


वैकल्पिक रूप से आपको बस एक VirtualBox स्थापित करने की आवश्यकता है , GUI ऐप चलाएं, ऊपर बताए अनुसार प्राप्त करने के लिए लिनक्स उदाहरण Ubuntu के एक न्यूनतम संस्करण को स्थापित करें और बूट करें ।


गैर-देशी समाधान के ऊपर आदर्श नहीं हैं, लेकिन अस्थिर कर्नेल एक्सटेंशन स्थापित करने के बजाय कम से कम आपका मैकओएस अधिक स्थिर होगा जो सिस्टम क्रैश का कारण बन सकता है।


साथ भाग गया vagrant init ubuntu/xenial64; vagrant up --provider virtualboxके रूप में ubuntu/vivid64अब उपलब्ध नहीं है।
फ्रेड्रिक एरलैंडसन

ubuntu/trusty64इसके बजाय उपयोग करने का प्रयास करें ।
केनोरब

8

मेरे पास एक एक्स 4 स्वरूपित यूएसबी ड्राइव था जिसे मैंने ओक्सएक्सफ्यूज़ स्थापित करने के बाद माउंट करने में सक्षम था । इससे पढ़ना बहुत अच्छा काम करता है, लेकिन मुझे यकीन नहीं है कि लेखन सुरक्षित है।

इसके अलावा, OS X की फाइलसिस्टम ( HFS + ) से फाइल को ext4 तक ले जाने के लिए, आप सबसे पहले उन छिपी हुई .DS_Store फाइलों को निकालना चाहते हैं, जो OS X फाइलसिस्टम को चुपके से बताती हैं क्योंकि वे कभी-कभी खराब इनोड का कारण बनती हैं ।

find /my/data/to/move -name '*.DS_Store' -type f -delete

यह एक fsck कमांड के बाद उन्हें ठीक करने से बेहतर है ।


7

(उच्च) सिएरा के लिए अद्यतन उत्तर

सिएरा और हाई सिएरा के लिए ext4fuse केवल पढ़ने के लिए अच्छी तरह से काम करने लगता है और इसलिए इसे शायद पसंदीदा विकल्प माना जा सकता है। हालांकि अन्य उत्तर पहले से ही कुछ उपयोग उदाहरण देते हैं, मैं इसे कुछ महत्वपूर्ण विवरणों के साथ एक बार फिर से दोहराऊंगा:

के साथ ext4fuse स्थापित करें :

brew install ext4fuse

आप एक सामान्य उपयोगकर्ता के रूप में माउंट कर सकते हैं, लेकिन उस स्थिति में आप केवल विश्व-पठनीय फ़ाइलों तक ही पहुंच पाएंगे, इसीलिए पूर्ण एक्सेस के लिए आपको उपयोग करने की आवश्यकता है sudo, जैसे:

sudo ext4fuse -o allow_other /dev/disk2s1

यहाँ एक बैश स्क्रिप्ट है जो आंशिक रूप से प्रक्रिया को स्वचालित करती है। लॉन्च होने के बाद जब आप प्रदर्शित डिवाइस पहचानकर्ताओं में से किसी एक को दर्ज करने के लिए प्रेरित होंगे, तो यह स्वचालित रूप से आरोह बिंदु बना देगा disk2s1:

diskutil list
read -p "Please type the EXT4 device identifier: " disk_id
MOUNT_POINT=~/mnt/$disk_id
mkdir -p ${MOUNT_POINT}
sudo ext4fuse -o allow_other /dev/$disk_id ${MOUNT_POINT}
echo "***TO UNMOUNT USE***: 'diskutil umount ${MOUNT_POINT}'"
open ${MOUNT_POINT}

अनमाउंट करने के लिए आप उदाहरण के लिए उपयोग कर सकते हैं diskutil umount /dev/disk2s1- यदि आपको एक संदेश मिलता है कि अनमाउंटिंग विफल हो गई है, तो आप के साथ अनमाउंटिंग के लिए मजबूर कर सकते हैं diskutil umount force /dev/disk2s1, हालांकि यह उन ऐप्स को बंद करने के लिए क्लीनर होगा जो डिस्क पर फ़ाइलों का उपयोग कर रहे हैं और बिना में अनमाउंट किए हुए पुन: प्रयास करें force

यदि आपके पास स्वामित्व वाली फ़ाइलें हैं _lpoperator(जाहिरा तौर पर वे तब बनाई जाती हैं, जब आप संरक्षित समूह विकल्प के साथ rsync का उपयोग करते हैं), तो निम्न कमांड आपको उन फ़ाइलों तक पहुंचने की अनुमति देगा:

/usr/sbin/dseditgroup -o edit -a everyone -t group _lpoperator

योसेमाइट और पुराने के लिए मूल उत्तर (पदावनत)

OSX: OSXFUSE और FUSE-EXT2 पर EXT2 / 3/4 समर्थन को सक्षम करने के लिए दो पैकेजों की आवश्यकता है ।

Homebrew OSXFUSE और फ्यूज-EXT2 के लिए फार्मूले काम नहीं किया या तो लीक से हटकर या Yosemite पर मेरे लिए।

निम्नलिखित में क्या काम था:

  1. मैन्युअल रूप से http://osxfuse.github.io/ से OSXFUSE DMG डाउनलोड और इंस्टॉल करें । महत्वपूर्ण : जब आप PKG इंस्टॉलर को लॉन्च करते हैं, तो सुनिश्चित करें कि आपने विज़ार्ड में MacFUSE संगतता लेयर का चयन किया है (यह डिफ़ॉल्ट रूप से सक्षम नहीं है) - इसके बिना मुझे माउंट करने का प्रयास करते समय एक त्रुटि मिल रही थी।
  2. मैन्युअल रूप से FUSE-EXT2 को http://sourceforge.net/projects/fuse-ext2/ से या सिएरा / एल कैपिटान से https://github.com/gpz500/fuse-ext2/releases से डाउनलोड करें और PKG इंस्टॉलर चलाएं।

एक बार जब आप दोनों OSXFUSE और FUSE-EXT2 स्थापित हो जाते हैं, तो आप अन्य उत्तरों में उल्लिखित ext2 / ext3 / ext4 विभाजन माउंट कर सकते हैं:

  1. EXT विभाजन के लिए उपकरण का नाम खोजें जिसे आप माउंट करना चाहते हैं (उदाहरण disk0s2के लिए नीचे, (UPDATE) बाद में MacOS संस्करण ext3 / ext4 विभाजन Microsoft बेसिक डेटा और लिनक्स नहीं ) लेबल किया जा सकता है :

    # diskutil list | grep Linux 1: Linux_Swap 8.2 GB disk0s1 2: Linux 119.9 GB disk0s2

  2. किसी मौजूदा माउंट बिंदु पर विभाजन को माउंट करें:

    sudo mkdir -p /Volumes/ext4 sudo mount -t fuse-ext2 /dev/disk0s2 /Volumes/ext4

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

नोट: मेरा संदेह यह है कि होमब्रेव फॉर्मूला काम नहीं करता था क्योंकि होमब्रेव मैकफ्यूस कम्पेटिबिलिटी लेयर केosxfuse बिना इंस्टॉल होता है ।

osxfuseहोमब्रे में दो पैकेज हैं :

# brew search osxfuse
>>> osxfuse
>>> Caskroom/cask/osxfuse

दोनों संस्करण EXT विभाजन को माउंट करने में विफल हैं। सबसे अधिक संभावना है, डीएमजी संस्करण ( Caskroom/cask/osxfuse) विफल रहता है क्योंकि होमब्रेव डिफ़ॉल्ट सेटिंग्स के साथ पैकेज स्थापित करता है, जिसका अर्थ है कि मैकफस संगतता संगतता शामिल नहीं है। osxfuseMacFUSE संगतता को सक्षम करने के लिए मुख्य संस्करण को शायद कुछ विशेष इंस्टॉलेशन पैरामीटर की आवश्यकता होती है, इसलिए जब तक यह होमब्रे में तय नहीं हो जाता है तब तक मैनुअल DMG विधि का उपयोग किया जाना चाहिए।

इस विधि ने मेरे लिए मावेरिक्स, योसेमाइट, एलकैपिटैन और सिएरा पर काम किया।

EXT2 / 3/4 पुराने OSX संस्करणों के लिए स्क्रिप्ट माउंट (पदावनत)

कुछ अतिरिक्त टाइपिंग को सहेजने के लिए, मैं एक छोटी स्क्रिप्ट का उपयोग करता हूं जो विभाजन नाम लेता है जैसे कि disk0s2और इसे नीचे रखता है /Volumes/disk0s2, यदि आवश्यक हो तो फ़ोल्डर बनाना:

### mount_ext4.sh
sudo mkdir -p "/Volumes/$1"
sudo mount -t fuse-ext2 "/dev/$1" "/Volumes/$1"
open "/Volumes/$1"

स्क्रिप्ट को उस विभाजन नाम से पुकारा जाता है जिसे आप diskutil listजैसे देखते हैं , जैसे mount_ext4.sh disk2s3


1
इसकी कोशिश की गई लेकिन दुर्भाग्य से त्रुटि हो गई FUSE-EXT2 could not mount /dev/disk2s2 at /Volumes/ext4 because the following problem occurred:(लेकिन कोई समस्या का वर्णन या संदर्भ नहीं है)। मैंने Compayer Layer addon स्थापित किया है। मैं macOS सिएरा पर हूँ इसलिए Github gzp500 संस्करण की कोशिश की।
विंटरफ्लाग्स

6

MacPorts में e2fsprogs भी उपलब्ध है। मैंने अभी तक खुद इसका परीक्षण नहीं किया है लेकिन आशाजनक लगता है।

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