दूरस्थ फ़ोल्डर को माउंट करने का सबसे अच्छा तरीका


40

मेरे पास दो रास्पबेरीपी हैं जो डेबियन व्हीज़ी चल रहे हैं और मैं कंप्यूटर ए से कंप्यूटर बी पर एक फ़ोल्डर माउंट करना चाहूंगा।

ऐसा करने का सबसे अच्छा (सबसे कुशल के रूप में) तरीका क्या है?

मैं इसे एसएमबी के माध्यम से कर सकता हूं, लेकिन यह विंडोज़ के लिए है, मुझे लगता है कि लिनक्स को साझा करने का एक बेहतर तरीका होना चाहिए।


जवाबों:


31

आप बहुत सी चीजों का उपयोग कर सकते हैं, जिनमें से, लोकप्रिय विकल्प हैं:

  • एनएफएस
  • सांबा / CIFS
  • sshfs

सहजता से, मुझे लगता है कि उन्हें इस क्रम में रखना होगा (शीर्ष: सबसे आसान)

sshfs

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

सांबा

यह आपको दूरस्थ फ़ोल्डर तक पहुंचने के लिए विंडोज और यूनिक्स मशीनों का उपयोग करने की अनुमति देगा। अगर यह आपके लिए कोई बड़ी बात नहीं है, तो शायद आपको इससे कोई फायदा नहीं होगा। हालांकि, यह आसान पर apropriate मूल्यों init (बस इनपुट पर यह स्वारोहित करने के लिए /etc/fstab, सहित username=<your-samba-username>,password=<your-samba-password>विकल्प कॉलम में।

एनएफएस

यह आपको केवल आईपी के माध्यम से प्रमाणित करेगा (कोई उपयोगकर्ता नाम नहीं = तेज, केवल आपके गैर-शत्रुतापूर्ण लैन के अंदर का उपयोग ) या केर्बरोस टिकट के माध्यम से (केवल दो रास्पबेरी के लिए बहुत दर्दनाक; लेकिन कॉर्पोरेट वातावरण में उपयोगी)।

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

इसके अलावा, सेटअप करने के लिए इतना दर्दनाक नहीं है कि आप अपने नेटवर्क पर भरोसा करें। आप में आटोमाउंट समर्थन /etc/fstabभी, और आप संवेदनशील डेटा (जैसे उपयोगकर्ता नाम या पासवर्ड के रूप में) डाल करने के लिए की जरूरत नहीं है, और यदि आप अपने उपयोगकर्ता नाम syncrhronized है (एक ही /etc/passwdऔर /etc/groupआप हमेशा की तरह POSIX अनुमतियाँ टूलसेट उपयोग कर सकते हैं फ़ाइलें) ( chown, chgrpऔर chmod)।


मैं ज्यादातर मेरी फिल्में और अन्य मीडिया (यानी के साथ एक डिस्क के साथ एक एनएफएस सर्वर के रूप में मेरी पाई का उपयोग नहीं सिस्टम की गंभीर सामान, नहीं '/ घर /' या इसी तरह कुछ भी)। एनएफएस मुझे पहली बार स्थानीय ड्राइव पर कॉपी किए बिना एक फिल्म देखने की अनुमति देता है, लेकिन एनएफएस डिस्क पर फाइलें लिखते समय मैं rsync का उपयोग करना पसंद करता हूं। इसलिए मैंने अपने NFS डिस्क को आसानी से माउंट किया है, और SSH (rsync के साथ) पर सामान लिख रहा हूं। यह मुझे गलती से एक एनएफएस माउंटेड डिस्क (जो बहुत अक्षम है) में rsyncing से रोकता है।
zrajm 23

@zrajm कैसे आप अपने डिस्क को pi पर माउंट करते हैं?
फुतुओतड़

arisu:/mnt/ytra /mnt/ytra nfs soft,ro,intr 0 2
zrajm

सांबा कुछ यूनिक्स अनुप्रयोगों को भ्रमित कर सकता है, विशेष रूप से अनुमति के आसपास या क्या stat()रिटर्न, उदाहरण के लिए चीजें जो उस nlinkगणना पर भरोसा करती हैं जिसके बारे में सीआईएफएस की कोई धारणा नहीं है। SSHFS मैं बहुत प्रभावित नहीं हुआ, क्योंकि यह शक्तिशाली उच्च पर फाइलरवर पर संदर्भ स्विच चलाता है, और इन-हाउस कार्यक्रमों द्वारा आवश्यक आवश्यक लॉकिंग का समर्थन नहीं करता है। तो, एनएफएस ...
21

38

SSHFS अद्भुत है। यह FUSE के साथ स्थानीय निर्देशिका में दूरस्थ निर्देशिका को माउंट कर सकता है । नीचे दिए गए आदेश यह #इंगित करने के लिए उपयोग करते हैं कि एक कमांड को निष्पादित किया गया था root, जबकि $एक नियमित उपयोगकर्ता के रूप में निष्पादन को इंगित करता है। क्योंकि FUSE सॉफ़्टवेयर की आवश्यकता होती है, पहले यह सुनिश्चित करें कि यह उपलब्ध है और चल रहा है।

में से एक lsmodऔर grep आदेश, नीचे, अगर सॉफ्टवेयर लोड और उपयोग के लिए तैयार है प्रकट कर सकते हैं। या तो आदेश से एक परिणाम इंगित करता है कि fuseउपलब्ध है।

# lsmod | grep fuse
$ grep -i fuse /lib/modules/$(uname -r)/modules.builtin

यदि कमांड से कोई परिणाम नहीं है, तो कर्नेल मॉड्यूल को रिबूट का उपयोग किए बिना लोड करने modprobeऔर फिर से जांचने का प्रयास करें।

# modprobe fuse
# lsmod fuse

यदि मॉड्यूल लोड करना विफल हो जाता है, तो सॉफ़्टवेयर को स्थापित करें apt-get

# apt-get install fuse

स्थापना के बाद फिर से जांचें।

# modprobe fuse
# lsmod fuse

जारी रखने से पहले FUSE को स्थापित और चलाना चाहिए।


की अनुमति की जाँच करें /dev/fuse। अनुमतियों को आपके नियमित उपयोगकर्ता खाते को पढ़ने और लिखने की पहुंच प्रदान करनी चाहिए। यदि आपने यह निर्धारित कर लिया है कि आपका नियमित उपयोगकर्ता खाता पहले ही पढ़ चुका है और अनुमति दे चुका है तो इस भाग को छोड़ दें /dev/fuse

# ls -l /dev/fuse

आउटपुट निम्न में से कुछ की तरह हो सकता है।

crw-rw-rw- 1 root root (all users can read/write)
crw------- 1 root fuse (only root can read/write)
crw-rw---- 1 root fuse (root and members of fuse group can read/write)

2013 में, मेरे डेबियन ने अनुमति, मालिक , समूह के मालिक के /dev/fuseसाथ बनाया । मुझे फ़्यूज़ समूह को उपकरण का उपयोग करने और अपने नियमित उपयोगकर्ता खाते को समूह में जोड़ने की आवश्यकता है, जैसा कि नीचे दिखाया गया है।0600rootfuse

# usermod -aG fuse $your_regular_user_account
# chmod 0660 /dev/fuse

यदि नए समूह की सदस्यता की आवश्यकता थी, तो समूह का सदस्य बनने के लिए लॉग इन और फिर से करें।


अगला, sshदोनों पक्षों पर निम्नानुसार स्थापित करें।

# apt-get install ssh

इस उत्तर डेबियन के लिए लिखा गया था, लेकिन उबंटू 18.x पर कम से कम, openssh-client, fuse, और कुछ अन्य संकुल उबंटू का एक हिस्सा हैं sshfsपैकेज। sshfsसॉफ्टवेयर ग्राहक के पक्ष की आवश्यकता है, लेकिन यह दोनों पक्षों पर स्थापित किया जा सकता अगर वांछित। पैकेज निर्भरता में से एक है fuse, लेकिन इंस्टॉलर सॉफ्टवेयर पर स्किप हो जाता है जो पहले ही इंस्टॉल हो चुका है।

# Ubuntu 18.x: 
# apt-get install sshfs

डिवाइस का उपयोग करने की अनुमति के साथ fuseऔर sshउपलब्ध, /dev/fuseदूरस्थ फ़ाइल सिस्टम के लिए एक माउंट बिंदु बनाएं; और, उस दूरस्थ फ़ाइल सिस्टम को स्थानीय रूप से निम्नानुसार माउंट करें।

# mkdir /mnt/$directory_name
# chown $your_user:$group /mnt/$directory_name/
$ sshfs $remote_username@$remote_server_name: /mnt/$directory_name/

घर के अलावा एक निर्देशिका को माउंट करने के लिए, इसे कोलन के बाद निर्दिष्ट करें।

$ sshfs $remote_username@$remote_server_name:/remote/directory /mnt/$directory_name

अनमाउंट करने के लिए, का उपयोग करें fusermount

fusermount -u /mnt/$directory_name

यदि आपके पास एक विंडोज़ मशीन है, तो वह भी SSHFS का उपयोग जीत-sshfs के साथ कर सकती है । यह सॉफ़्टवेयर SSHFS के साथ "ड्राइव को मैप करेगा", ताकि आपके पास एक विंडोज ड्राइव लेटर हो जिसमें रिमोट डायरेक्टरी हो।


1
आप अतिरिक्त विकल्पों का उपयोग करके SSHFS के प्रदर्शन की गति में काफी सुधार कर सकते हैं। एनएफएस के साथ अधिक जानकारी और गति की तुलना के लिए इस लेख को देखें: admin-magazine.com/HPC/Articles/Sharing-Data-with-SSHFS
mixenzo

अरे - मैंने आपके निर्देशों (समायोजन yum install fuse-sshfs.x86_64) का उपयोग करने की कोशिश की, लेकिन जब मैंने ऐसा किया modprobe fuseतो मेरे लिए फ्यूज समूह नहीं बनाया। इसलिए जब मैंने किया usermod -a -G fuse [your-user], मुझे मिल गया usermod: group 'fuse' does not exist। क्या आप सहायता कर सकते हैं? अग्रिम धन्यवाद
उभयचर

lsmod | grep fuseपरिणाम वापस करता है और मेरे पास है /dev/fuse, मीटर जो रूट के स्वामित्व में है। तो आप कह रहे हैं कि मैं समूह के बिना ठीक हूं?
उभयलिंगी

हां, मुझे मिलता हैcrw-rw-rw-. 1 root root 10, 229 Nov 21 15:32 /dev/fuse
उभयलिंगी

# Apt-get install फ़्यूज़-बर्तनों के sshfs के बाद मुझे "पैकेज फ़्यूज़-बर्तनों का पता लगाने में असमर्थ" मिलता है। कोई विचार क्यों? (उबंटू १ (.०४.०१)
क्वाथ

7

लिनक्स में, आप एनएफएस के लिए चुनेंगे (इसके बारे में आर्चविकी पर लेख देखें जो आपके वितरण के लिए लागू जानकारी हो सकती है)। इसमें और अधिक उन्नत सुविधाएँ हैं तो सांबा। यदि आपको लॉक (यानी समवर्ती एरेस) फ़ाइलों को लॉक करने की आवश्यकता है, तो आपको लॉकवेल के रूप में देखना चाहिए क्योंकि एनएफ़एस स्टेटलेस है। हालाँकि यह smb की तुलना में कॉन्फ़िगर करना कठिन है। मेरा सुझाव है कि सांबा और nfs दोनों को देखने की कोशिश करें कि कौन आपकी आवश्यकताओं के अनुरूप है


1

मैंने अतीत में एसएफटीपी नेट ड्राइव और एक्सपेंड्राइव दोनों का उपयोग किया है और मैं आपको बिना किसी प्रश्न के sshfs आउटपरफॉर्म बता सकता हूं ।

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