मैक ओएस एक्स पर ext4 फाइल सिस्टम से पढ़ने और लिखने के लिए एक सुरक्षित, स्थिर अनुप्रयोग है ?
यदि नहीं, तो Mac OS X पर ext4 फाइल सिस्टम की सामग्री तक पहुंचने का सबसे अच्छा तरीका क्या है?
मैक ओएस एक्स पर ext4 फाइल सिस्टम से पढ़ने और लिखने के लिए एक सुरक्षित, स्थिर अनुप्रयोग है ?
यदि नहीं, तो Mac OS X पर ext4 फाइल सिस्टम की सामग्री तक पहुंचने का सबसे अच्छा तरीका क्या है?
जवाबों:
उत्तर वाणिज्यिक सॉफ्टवेयर में निवेश करने की आपकी इच्छा पर निर्भर करता है:
आप एक वाणिज्यिक उत्पाद पर कुछ पैसा खर्च करने पर आपत्ति नहीं है , पैरागॉन के मैक के लिए extFS आप पढ़ सकते हैं और ext2 / ext3 / ext4 फाइल सिस्टम के लिए उपयोग लिखने दे देंगे। वर्तमान संस्करण 10.10 से ऊपर तक OS X / macOS के सभी संस्करणों का समर्थन करता है।
यदि आप एक नि: शुल्क समाधान की तलाश कर रहे हैं , तो आप एक लिनक्स वर्चुअल मशीन को सेटअप कर सकते हैं , वहां अपना वॉल्यूम माउंट कर सकते हैं और इसे सांबा या (एस) एफटीपी के माध्यम से साझा कर सकते हैं । इस पोस्ट में कैसे इस का उपयोग कर प्राप्त करने के लिए कुछ विवरण है VirtualBox के , एक नि: शुल्क आभासी मशीन आवेदन। ध्यान दें कि यह वास्तव में एक हल्का समाधान नहीं है, भले ही एक प्रीबिल्ट वर्चुअलबॉक्स वीएम का उपयोग करके आप स्क्रैच से लिनक्स डिस्ट्रो को स्थापित करना और कॉन्फ़िगर करना बंद कर देंगे।
केन के उत्तर पर निर्माण: मैंने fuse4x और fuse-ext2 का सफलतापूर्वक उपयोग किया, और मैं ext4use पर fuse-ext2 की सलाह देता हूं।
ext4fuse मेरे लिए एक परेशानी थी, क्योंकि इसके लिए मैनुअल संकलन की आवश्यकता होती है और इसमें fuse4x विकल्पों के लिए कोई समर्थन नहीं है जो मुझे एक्सेस कंट्रोल सेट करने की अनुमति देगा। fuse-ext2 डाउनलोड करने योग्य पैकेज प्रदान करता है, और 0.0.7 संस्करण ने ठीक काम किया। मैंने बिना किसी समस्या के कुछ बड़े आईएसओ की नकल की।
एक भी पूरी तरह से काढ़ा कमांड लाइन पैकेज प्रबंधक के माध्यम से OSXFUSE स्थापित कर सकते हैं :
brew install homebrew/fuse/ext4fuse
ध्यान दें कि इंस्टॉलेशन बताता है कि इसके अलावा कुछ कमांड को 'sudo' के रूप में चलाने की आवश्यकता है।
Yosemite के साथ बेहतर पर एक नजर है इस । और फिर यकीन है कि निर्देशिका कार्य करके अपना उपयोगकर्ता द्वारा पढ़े जाने योग्य बनाने के इस । इसे काम करने के लिए मुझे इस तरह पहिया समूह का उपयोग करना पड़ा:
sudo dscl . append /Groups/wheel GroupMembership $(whoami)
होमब्रे के हाल के परिवर्तनों के साथ, यह उतना ही सरल होना चाहिए:
brew cask install osxfuse
brew install ext4fuse
आपको रिबूट करना पड़ सकता है।
ext4fuse केवल-पढ़ने के लिए है, दुर्भाग्य से। और आपको एक सामान्य उपयोगकर्ता के रूप में काम करने के लिए एक ध्वज का उपयोग करने की आवश्यकता हो सकती है ।
इस प्रश्न को देखने वाले अन्य लोगों की दिलचस्पी लिबगस्टफेफ्स में हो सकती है । मुझे OS X पोर्ट के बारे में पता नहीं है, लेकिन यह देखते हुए कि VirtualBox के पास एक एपीआई है, यह सवाल से बाहर नहीं है।
मुझे आश्चर्य है कि क्यों किसी ने लिनक्स कर्नेल फाइलसिस्टम कोड को यूजरस्पेस / फ्यूज में चलाने की अनुमति देने के लिए संगतता परत नहीं लिखी है। या कोई है?
यदि आप सोच रहे हैं कि फ़्यूज़ और एक्सट्यूफ़्यूज़ (उदाहरण के लिए मैकपॉर्ट्स का उपयोग करते समय स्थापित किया गया है 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 mnt
sudo / जड़ के बिना।
बस रिकॉर्ड के लिए, मैंने लिनक्स में ext4 विभाजन को लिखने के लिए अपने मैकबुक प्रो पर पैरागॉन एक्सटीएफएस चालक (परीक्षण संस्करण) का परीक्षण किया है। मैंने पाया कि ड्राइवर बहुत अस्थिर था, और इसने फाइलसिस्टम के लिए भ्रष्टाचार पैदा किया जो fsck
न तो लिनक्स में और न ही डिस्क उपयोगिता में मरम्मत करने में सक्षम था।
मेरा विचार /home
इस प्रतिद्वंद्वी ड्राइवर का उपयोग करके मैक ओएस एक्स से मेरे विभाजन तक पहुंचना था , लेकिन मैं इस सेटअप को करने का सुझाव नहीं देता। अब तक, मेरे पास /home
लिनक्स में मेरा विभाजन है hfsplus
, जिसमें कोई जर्नलिंग नहीं है, और फिर मैं अपनी फाइलों को मैक ओएस एक्स से एक्सेस कर सकता हूं। बेशक, समय-समय पर मुझे अपने एफएस में कुछ समस्याएं आती हैं, लेकिन बहुत बार-बार नहीं होती है। हालाँकि, मैं इस सेटअप का सुझाव नहीं देता (या तो कम से कम आपके पास अपने दैनिक कार्य के लिए बैकअप बैकअप है)।
अंत में, मेरा मानना है कि बाहरी हार्ड डिस्क के लिए उपयोग करने के लिए शायद पैरागॉन अधिक उपयुक्त है, लेकिन वैसे भी यह सॉफ्टवेयर होने के लिए बहुत विश्वसनीय नहीं है जो लाइसेंस महंगा है।
अपडेट: मई 2015 तक, मैंने अपने / होम को ext4 में स्वरूपित कर लिया है, और मैं OS X के लिए FUSE के साथ संयोजन में fuse-ext2 का उपयोग करके फाइलसिस्टम माउंट करता हूं। मैं पढ़ने और लिखने के लिए ext4 विभाजन तक पहुंच सकता हूं। यह पहले से ऊपर वर्णित एक से अधिक ठोस सेटअप है।
आप Vagrant का उपयोग करके अपने OS X पर लिनक्स VM को जल्दी से बूट कर सकते हैं । आपको VMBox जैसे वर्चुअलबॉक्स और वैग्रांट को साइट के माध्यम से .dmg फ़ाइल या ब्रू कस्क का उपयोग करके इंस्टॉल करना होगा ।
आपके द्वारा vagrant
कमांड इंस्टॉल करने के बाद, इसे किसी भी चयनित फ़ोल्डर में चलाएं:
vagrant init ubuntu/trusty64; vagrant up --provider virtualbox
यह Vagrantfile
कॉन्फ़िगर फ़ाइल और .vagrant
फ़ोल्डर उत्पन्न करेगा ।
और आपके पास कुछ ही मिनटों में लिनक्स बॉक्स बूट हो जाएगा ( एटलस हैशिकॉर्प रिपॉजिटरी से डाउनलोड किया गया )।
फिर कमांड के माध्यम से बॉक्स से कनेक्ट करें : vagrant ssh
और लिनक्स के अंदर अपने डिवाइस को माउंट करने का प्रयास करें ।
डिफ़ॉल्ट रूप से आपका वर्तमान फ़ोल्डर /vagrant
VM में फ़ोल्डर के साथ सिंक किया जाएगा । अधिक उन्नत विकल्पों के लिए, आप Vagrantfile
आवश्यक कॉन्फ़िगरेशन के साथ संशोधित कर सकते हैं ।
इसलिए यदि आप अपने फाइल सिस्टम को /vagrant
फ़ोल्डर में माउंट करते हैं , तो यह स्वचालित रूप से आपके मैकओएस पर वापस सिंक हो जाएगा।
वैकल्पिक रूप से आपको बस एक VirtualBox स्थापित करने की आवश्यकता है , GUI ऐप चलाएं, ऊपर बताए अनुसार प्राप्त करने के लिए लिनक्स उदाहरण Ubuntu के एक न्यूनतम संस्करण को स्थापित करें और बूट करें ।
गैर-देशी समाधान के ऊपर आदर्श नहीं हैं, लेकिन अस्थिर कर्नेल एक्सटेंशन स्थापित करने के बजाय कम से कम आपका मैकओएस अधिक स्थिर होगा जो सिस्टम क्रैश का कारण बन सकता है।
vagrant init ubuntu/xenial64; vagrant up --provider virtualbox
के रूप में ubuntu/vivid64
अब उपलब्ध नहीं है।
ubuntu/trusty64
इसके बजाय उपयोग करने का प्रयास करें ।
मेरे पास एक एक्स 4 स्वरूपित यूएसबी ड्राइव था जिसे मैंने ओक्सएक्सफ्यूज़ स्थापित करने के बाद माउंट करने में सक्षम था । इससे पढ़ना बहुत अच्छा काम करता है, लेकिन मुझे यकीन नहीं है कि लेखन सुरक्षित है।
इसके अलावा, OS X की फाइलसिस्टम ( HFS + ) से फाइल को ext4 तक ले जाने के लिए, आप सबसे पहले उन छिपी हुई .DS_Store फाइलों को निकालना चाहते हैं, जो OS X फाइलसिस्टम को चुपके से बताती हैं क्योंकि वे कभी-कभी खराब इनोड का कारण बनती हैं ।
find /my/data/to/move -name '*.DS_Store' -type f -delete
यह एक fsck कमांड के बाद उन्हें ठीक करने से बेहतर है ।
सिएरा और हाई सिएरा के लिए 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 पर मेरे लिए।
निम्नलिखित में क्या काम था:
एक बार जब आप दोनों OSXFUSE और FUSE-EXT2 स्थापित हो जाते हैं, तो आप अन्य उत्तरों में उल्लिखित ext2 / ext3 / ext4 विभाजन माउंट कर सकते हैं:
EXT विभाजन के लिए उपकरण का नाम खोजें जिसे आप माउंट करना चाहते हैं (उदाहरण disk0s2
के लिए नीचे, (UPDATE) बाद में MacOS संस्करण ext3 / ext4 विभाजन Microsoft बेसिक डेटा और लिनक्स नहीं ) लेबल किया जा सकता है :
# diskutil list | grep Linux
1: Linux_Swap 8.2 GB disk0s1
2: Linux 119.9 GB disk0s2
किसी मौजूदा माउंट बिंदु पर विभाजन को माउंट करें:
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
) विफल रहता है क्योंकि होमब्रेव डिफ़ॉल्ट सेटिंग्स के साथ पैकेज स्थापित करता है, जिसका अर्थ है कि मैकफस संगतता संगतता शामिल नहीं है। osxfuse
MacFUSE संगतता को सक्षम करने के लिए मुख्य संस्करण को शायद कुछ विशेष इंस्टॉलेशन पैरामीटर की आवश्यकता होती है, इसलिए जब तक यह होमब्रे में तय नहीं हो जाता है तब तक मैनुअल DMG विधि का उपयोग किया जाना चाहिए।
इस विधि ने मेरे लिए मावेरिक्स, योसेमाइट, एलकैपिटैन और सिएरा पर काम किया।
कुछ अतिरिक्त टाइपिंग को सहेजने के लिए, मैं एक छोटी स्क्रिप्ट का उपयोग करता हूं जो विभाजन नाम लेता है जैसे कि 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
।
FUSE-EXT2 could not mount /dev/disk2s2 at /Volumes/ext4 because the following problem occurred:
(लेकिन कोई समस्या का वर्णन या संदर्भ नहीं है)। मैंने Compayer Layer addon स्थापित किया है। मैं macOS सिएरा पर हूँ इसलिए Github gzp500 संस्करण की कोशिश की।