क्या लिनक्स एक सामान्य टाइम मशीन विरल बंडल डिस्क छवि निर्देशिका को माउंट कर सकता है?


30

मैं यह देखना चाह रहा हूं कि क्या लिनक्स एक नेटवर्क शेयर पर टाइम कैप्सूल पर मूल रूप से संग्रहीत फ़ाइलों को माउंट और पढ़ सकता है। इस सवाल की तरह , मैं एक ऐसी चीज की तलाश कर रहा हूं जो संलग्न करने के लिए हड्युटिल के कम से कम रीड-ओनली फ़ंक्शन की प्रतिकृति देती है और फिर एक विरल बंडल डिस्क छवियों को माउंट करती है।

SMB माउंट एएफपी और एसएमबी दोनों का उपयोग करके टाइम कैप्सूल शेयर करना आसान है , लेकिन मुझे यकीन नहीं है कि विरल डिस्क बंडल को पुनर्गठित एचएफएस + निर्देशिका के रूप में माउंट किया जा सकता है।

एक कार्य माउंट कमांड या पॉइंटर के लिए बोनस उचित पैकेज के लिए इंगित करता है जो इस डीएमजी प्रारूप को पार्स करता है।

मामले में यह स्पष्ट नहीं है - यह है कि टर्मिनल में मैक से माउंट किए जाने पर बैंड फाइलें मुझे कैसे दिखती हैं और मैं क्या उम्मीद करता हूं कि लिनक्स वास्तविक फाइल सिस्टम को माउंट करने की क्षमता के बिना देख सकता है जो कि बाइनरी बैंड फ़ाइलों की भीड़ में एन्कोडेड है।

host:iMac.sparsebundle mike$ ls -la
total 24
drwxrwxrwx@     7 mike  staff      264 Jul  5 10:01 .
drwx------      6 mike  staff      264 Mar 26 13:11 ..
-rwxrwxrwx      1 mike  staff      499 Feb 24 15:33 Info.bckup
-rwxrwxrwx      1 mike  staff      499 Feb 24 15:33 Info.plist
drwxrwxrwx  31101 mike  staff  1057390 Jun 17 20:19 bands
-rwxrwxrwx      1 mike  staff      532 Jun 24 22:06 com.apple.TimeMachine.MachineID.plist
-rwxrwxrwx      1 mike  staff        0 Feb 24 15:33 token
host:iMac.sparsebundle mike$ ls -la bands | head -10
total 1582092552
-rwxrwxrwx  1 mike  staff  8388608 Jul  5 08:33 0
-rwxrwxrwx  1 mike  staff  8388608 May 31 13:02 1
-rwxrwxrwx  1 mike  staff  8388608 Jun 24 22:16 10
-rwxrwxrwx  1 mike  staff  8388608 Mar 19 17:15 1000
-rwxrwxrwx  1 mike  staff  8388608 May 31 00:50 10000
-rwxrwxrwx  1 mike  staff  8388608 May 31 00:50 10001
-rwxrwxrwx  1 mike  staff  8388608 May 31 00:50 10002
-rwxrwxrwx  1 mike  staff  8388608 May 31 00:50 10003
-rwxrwxrwx  1 mike  staff  8388608 May 31 00:50 10004
host:iMac.sparsebundle mike$ ls -la bands | tail -10
-rwxrwxrwx  1 mike  staff  8388608 May 31 00:51 fff6
-rwxrwxrwx  1 mike  staff  8388608 May 31 00:51 fff7
-rwxrwxrwx  1 mike  staff  8388608 May 31 00:51 fff8
-rwxrwxrwx  1 mike  staff  8388608 May 31 00:51 fff9
-rwxrwxrwx  1 mike  staff  8388608 May 31 00:51 fffa
-rwxrwxrwx  1 mike  staff  8388608 May 31 00:50 fffb
-rwxrwxrwx  1 mike  staff  8388608 May 31 00:50 fffc
-rwxrwxrwx  1 mike  staff  8388608 May 31 00:50 fffd
-rwxrwxrwx  1 mike  staff  8388608 May 31 00:50 fffe
-rwxrwxrwx  1 mike  staff  8388608 May 31 00:50 ffff
host:~ mike$ ls -la bands|wc -l
   96636

आपको स्पार्सबंडल को "माउंट" करने की आवश्यकता क्यों है? लिनक्स को एक निर्देशिका के रूप में देखना चाहिए, बस cdएक बार वॉल्यूम में जहां आपके टाइम मशीन बैकअप को संग्रहीत किया जा रहा है वह लिनक्स पर मुहिम की जाती है।
इयान सी।

धन्यवाद इयान सी - मैंने यह स्पष्ट करने के लिए प्रश्न संपादित किया कि मैं क्या देख रहा हूं - कच्चा डेटा सब कुछ है, बस एक अधिक पठनीय प्रारूप में संग्रहीत नहीं है जो एक विशिष्ट बिंदु से एक विशिष्ट फ़ाइल को पढ़ने के लिए सबसे उपयोगी है।
14:00 बजे bmike

जवाबों:


32

आप इन दोनों के संयोजन का उपयोग कर सकते हैं:

मैक ओएस विरल-बंडल डिस्क छवियों को पढ़ने के लिए FUSE फाइलसिस्टम

Apple की टाइम मशीन फ्यूज केवल फाइल सिस्टम को पढ़ती है

पहला .sparsebundle प्रारूप का ध्यान रखता है, इसे एक dmg फ़ाइल के रूप में प्रस्तुत करता है, जिसे फिर सामान्य की तरह माउंट किया जा सकता है। दूसरा टाइम मशीन द्वारा उपयोग की जाने वाली निर्देशिका हार्ड-लिंक का ध्यान रखता है।


यह स्वीकृत उत्तर होना चाहिए। tmfsमेरे लिए डेबियन 7.0 पर पूरी तरह से काम किया।
गॉर्डन बेली

इसके लिए मुझे पिंग करने के लिए मैं @GordonBailey का शुक्रिया अदा करता हूं - मैंने एक और जवाब देने की अधिसूचना को याद किया।
बमीक

मैं बॉक्स से डीएमजी को माउंट नहीं कर सकता था इसलिए मुझे भी डार्लिंग-डीएमजी का उपयोग करना पड़ा जिसने इसे फ्यूस के माध्यम से माउंट किया।
प्रिक्सोलिटिक

4

यह @ TorArneVestbø द्वारा उत्तर के लिए एक विस्तार है।

एक बार जब आप https://github.com/torarnv/sparsebundlefs और https://github.com/abique/tmfs स्थापित कर लेते हैं, तो आपको निम्नलिखित स्क्रिप्ट को बैश में चलाने की आवश्यकता होती है। स्रोत और गंतव्य होने के लिए शुरुआत में दो चर अद्यतन करना सुनिश्चित करें।

SB="/path/to/your/Backup.sparsebundle"
TM_MNT="/path/to/where/to/mount"

# Make directories
mkdir -p "$TM_MNT"
SB_MNT=`mktemp --tmpdir -d sparsebundle_mnt.XXX`
SB_DMG="$SB_MNT/sparsebundle.dmg"
HFS_MNT=`mktemp --tmpdir -d hfsx_mnt.XXX`

# Mount the sparse bundle
sudo `which sparsebundlefs` "$SB" "$SB_MNT"

# Mount the HFS+ partition
OFF=`sudo parted "$SB_DMG" unit B print | tr 'B' ' ' | awk '/hfsx/ {print $2}'`
SZ=`sudo parted "$SB_DMG" unit B print | tr 'B' ' ' | awk '/hfsx/ {print $4}'`
LO=`sudo losetup -f "$SB_DMG" --offset $OFF --sizelimit $SZ --show`
sudo mount -t hfsplus -r "$LO" "$HFS_MNT"

# Mount the Time Machine filesystem
sudo `which tmfs` "$HFS_MNT" "$TM_MNT" -ouid=$(id -u $USER),gid=$(id -g $USER),allow_other

अंतिम माउंट आपके द्वारा सुलभ होगा (जब तक $TM_MNTआपके लिए सुलभ है)। अंतिम पंक्ति विफल हो सकती है यदि FUSE अन्य उपयोगकर्ता को अनुमति देने के लिए सेटअप नहीं है, तो यह आपको बताता है कि इसे कैसे ठीक किया जाए।

निम्न करने के लिए आपको निम्न करने की आवश्यकता है:

sudo umount "$TM_MNT"
sudo rmdir "$TM_MNT"
sudo umount "$HFS_MNT"
sudo rmdir "$HFS_MNT"
sudo losetup -d "$LO"
sudo umount "$SB_MNT"
sudo rmdir "$SB_MNT"

यह एक फेडोरा 28 प्रणाली पर परीक्षण किया गया था और अच्छी तरह से काम कर रहा है।


3

Apple की टाइम मशीन फ्यूज केवल फाइल सिस्टम को पढ़ती है

https://github.com/abique/tmfs


4
इस उत्तर का उद्देश्य क्या है? यह कुछ भी करता है? क्या हम यह अनुमान लगा सकते हैं कि यह प्रश्न का उत्तर भी देता है? आप को अनपैक करने के क्या यह भी का उद्देश्य है और आवश्यकता होगी कि यह कैसे समस्या का समाधान होता
यादृच्छिक

3

उपरोक्त पोस्ट, अलेक्जेंड्रे बाईक से, एक लिनक्स ((यूनिक्स)) प्रोग्राम प्रदान करता है जो मैक-स्वरूपित एचएफएस + डिस्क या डिस्क विभाजन पर संग्रहीत टाइम मशीन स्पार्सबंडल को खोल देगा, जिससे लिनक्स सर्वर पर फ़ाइलों को पढ़ने की अनुमति मिलती है।

इसे स्थापित करना बेहोश करने वाले के लिए नहीं है। यह C ++ में लिखा गया है और इसके लिए cmakeकुछ न्यूनतम संस्करणों के साथ 3 C ++ लाइब्रेरीज़ - , FUSE और बूस्ट की आवश्यकता होती है (जो कि मेरे Ubuntu Server 10.04 के लिए डिफ़ॉल्ट रूप से नवीनतम संस्करण नहीं हो सकते हैं।) इसके लिए जी ++ कंपाइलर और उपरोक्त लाइब्रेरी को खोजने और इंस्टॉल करने की भी आवश्यकता है।

मैं उबंटू सर्वर 10.04 का उपयोग करता हूं और बहुत अधिक प्रोग्रामर नहीं हूं। हालांकि, काम और समय के एक उचित बिट के बाद, मैंने सभी आवश्यक पुस्तकालयों को स्थापित करने, tmfs पैकेज को संकलित करने और लिंक करने और इसका उपयोग करने का प्रबंधन किया। यह काम करता है, जिससे TimeMachine Time Capsule बढ़ते हैं। फिर भी, यह आवश्यक है कि जिस डिस्क पर स्पार्सबंडल छवि लिखी गई है वह HFS + डिस्क या विभाजन हो। यह काम नहीं करेगा अगर छवि एक लिनक्स सर्वर पर NTFS या ext2 / ext3 / ext4 फाइल सिस्टम पर लिखी गई है।

Apple के OS X 10.7 (लायन) के रूप में, टाइम मशीन (स्पार्सबंडल) की छवियां अब विंडोज (smb / Samba) लिनक्स शेयर पर माउंट होने पर काम नहीं करेंगी, और लिनक्स का उपयोग करने के लिए Linux / Unix Netatalk ( afpdप्लस avahi-daemon) सेवाएं चलाना आवश्यक है। एक टाइम मशीन सर्वर।

मैंने दूसरे समाधान की तलाश में बहुत कुछ किया है। मुझे संदेह है कि एक Linux / Unix C ++ प्रोग्रामर मेरे से बेहतर कर सकता है, ext4 या ntfs फाइल सिस्टम के उपयोग की अनुमति देने के लिए अलेक्जेंडर बाइके के काम का विस्तार कर रहा है। मैं यह पता लगाने की कोशिश कर रहा हूं कि यह कैसे करना है, लेकिन अभी एक लंबा रास्ता तय करना है।

मुझे लगता है कि यह आवश्यक होगा कि मैं फ्यूज (यूजर-स्पेस फाइल सिस्टम) को बेहतर तरीके से समझ सकूं और boost::filesystemआगे बढ़ने के लिए सिस्टम डेवलपमेंट हेल्पर्स को।


AFAICS, वर्तमान में HFS + के लिए कोई आवश्यकता नहीं है या तो tmfs के लिए मौजूद है। विवरण में एचएफएस का उल्लेख है, लेकिन वर्णित चरण वैसे भी काम करेंगे।
ब्लिसोरब्लाड

2

दुर्भाग्य से लिनक्स से एक स्पार्सबंडल में चीजों को खोजने का मार्ग सीधा नहीं है। यह किया जा सकता है, लेकिन इसमें कुछ इनोड जानकारी की व्याख्या करने की आवश्यकता होती है, जो कि Apple को स्पार्सबंडल में वास्तविक फ़ाइल खोजने के लिए हार्डलिंक में एम्बेड करता है। यह मैकवर्ल्ड संकेत बताता है कि आप कैसे पता लगा सकते हैं कि एक हार्डलिंक में एक हार्डलिंक वास्तविक फ़ाइल के संदर्भ में कहां इंगित करता है ताकि आप इसे लिनक्स सिस्टम से एक्सेस कर सकें। यह एक टाइम मशीन डिस्क से संबंधित है जो एक सिंगल मशीन के लिए एक स्थानीय डिस्क के रूप में जुड़ी हुई है।

आपके मामले <mount point>/Backups.backupdbमें सबसे अधिक संभावना है <machinename>

मुझे यकीन नहीं है कि <mount point>/.HFS+ Private Directory Dataकई मशीनों द्वारा टाइम मशीन बैकअप के लिए उपयोग किए जा रहे साझा डिस्क के लिए एक ही स्थान पर मौजूद है। आपको इसे ls -laखोजने के लिए डिस्क और स्पार्सबंडल्स का थोड़ा निरीक्षण करना होगा ।

लेकिन अन्यथा उन मैकवर्ल्ड निर्देशों से आपको लिनक्स से टाइम मशीन बंडल पर फ़ाइलों को पुनः प्राप्त करने में मदद मिलेगी।

आरोह बिंदु के बारे में एक अद्यतन।

मैंने आपके अद्यतन प्रश्न के आधार पर कुछ प्रयोग किए। ऐसा लगता है कि माउंट पॉइंट को *.sparsebundleडायरेक्टरी होना चाहिए न कि ड्राइव। अगर मैं OS X में ड्राइव को माउंट करता हूं और /Volumes/Remote Backups/mymachine.sparsebundleमैं जाता हूं bandsतो आप जैसी डायरेक्टरी देखते हैं और यह बेकार है।

लेकिन अगर मैं ऐसा माउंट mymachine.sparsebundleकरता हूं तो मैं जा सकता हूं /Volumes/Time Machine Backups(जब मैं इसे डबल क्लिक करता हूं तो फाइंडर में यह स्वचालित रूप से माउंट हो जाता है mymachine.sparsebundle) मैं अपेक्षित Backups.backupdbनिर्देशिका और उस तारीख के तहत आने वाली निर्देशिकाओं को उम्मीद के मुताबिक देखता हूं ।


उत्तर के लिए धन्यवाद, लेकिन मैं आपके समान फ़ाइल संरचना नहीं देख रहा हूं। मुझे तब से Backups.backupdb नहीं मिला, जो बैंड फ़ाइलों के अंदर एन्कोडेड है। चूँकि उस निर्देशिका को कच्चे रूप में मानने में इतना समय लगता है, इसलिए मैं ls | tee /tmp/bandsआउटपुट पर कब्जा करने के लिए दौड़ा । मेरे पास 96636 बाइनरी फाइलें हैं, उनमें से अधिकांश आकार में 8388608 हैं। मैक की डिस्क उपयोगिता द्वारा फाइल सिस्टम में बदल देने और फिर से साझा किए जाने के बाद मुझे बैकअप संरचना के आसपास कोई समस्या नहीं है। मैं बस यह नहीं समझ सकता कि फ़ाइल सिस्टम को फिर से साझा करने के लिए ओएस एक्स सिस्टम के बिना लिनक्स पर बैंड को कैसे संसाधित किया जाए।
14:00 बजे 14

@ बाइक: *.sparsebundleरिमोट ड्राइव के बजाय लिनक्स पर hfsplus फाइल सिस्टम के रूप में फाइल को माउंट करने का प्रयास करें । अगर आप अपने मैक पर .ssesebundle को खोलते हैं और /Volumes/Time Machine Backupsओएस एक्स पर एक वॉल्यूम के साथ समाप्त होता है, तो अधिक विवरण के साथ अपडेट किए गए उत्तर के समान है।
इयान सी।

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