एनएफएस माउंट बिंदु पर घुड़सवार होने पर कैसे (सफाई से) sshfs को विघटित किया जाता है?


15

मेरे सहकर्मी के पास एक डेस्कटॉप कंप्यूटर है जो /homeहमारे फ़ाइल सर्वर पर साझा किया गया है। मैंने एक पर्ल स्क्रिप्ट विकसित की है, sshfsजो एक अन्य SSH होस्ट पर एक निश्चित डायरेक्टरी को प्रस्तुत करता है जो मेरे लैपटॉप पर ठीक काम करता है।

उनके कंप्यूटर पर स्क्रिप्ट sshfsअंत में विघटित होने में विफल रहती है और माउंटपॉइंट अशुद्ध छोड़ देती है। मुझे रिबूटिंग के अलावा माउंटपॉइंट को पुनर्प्राप्त करने का कोई तरीका नहीं मिला। कुछ परीक्षण के बाद मैंने पाया कि हमारे सेटअप के बीच का अंतर यह है कि उसका /homeएनएफएस पर है। इसमें वह /tmpनिर्दोष रूप से काम करता है।

माउंट के बाद, स्क्रिप्ट ऑपरेशन के दौरान सब कुछ ठीक है। लेकिन जब sshfsप्रक्रिया को मारते हैं तो इसे तब तक सूचीबद्ध किया <defunc>जाता है psजब तक कि मूल प्रक्रिया (पर्ल स्क्रिप्ट) बाहर नहीं निकल जाती। sshfsशेल पर एक कच्चा कमांड चलाते समय समस्या अभी भी होती है।

ls -dlमाउंटपॉइंट के लिए एक आउटपुट इस तरह दिखता है (जैसा कि याद किया जाता है - मेरे पास हाथ से शेल आउटपुट की कोई वास्तविक प्रतिलिपि नहीं है):

? 1 ? ? 4096 Feb  9 15:37 file_archive/

(अधिकांश जानकारी के लिए केवल प्रश्न चिह्न, कम से कम सभी अनुमति विवरण)

Sshfs माउंट अभी भी सूचीबद्ध है mountलेकिन एक अनमाउंट ऑपरेशन त्रुटि अनुमति के साथ विफल हो जाता है जब भी ऐसा करने से इनकार किया जाता है root

मैंने Google की खोज की, लेकिन नेटवर्क फ़ाइल सिस्टम चलाने के लिए केवल sshfs और NFS के बीच बहुत तुलनाएँ पाईं। मैं एनएफएस निर्देशिका में सुरक्षित रूप से माउंट / अनशाउंट कैसे कर सकता हूं?

जवाबों:


38

आपको निष्पादन द्वारा sshfs शेयर को अनमाउंट करने में सक्षम होना चाहिए:

 fusermount -u /path/to/sshfs/share

मैंने यह कोशिश की लेकिन अनुमति नहीं मिली । umountजब एक गैर-रूट उपयोगकर्ता के रूप में चलाया जाता है तो निश्चित रूप से एक सामान्य को विफल होना चाहिए।
डेनियल बॉहेर

सबसे अधिक संभावना है कि आप (किसी भी विधि के साथ) को अनमाउंट नहीं कर सकते हैं क्योंकि उसका घर डीआईआर एनएफएस से माउंट है जहां यह root_squashविकल्प के साथ निर्यात किया जाता है। इस प्रकार, रूट का अपने घर में कोई अधिकार नहीं है। आप बंद कर सकते हैं, root_squashलेकिन यह शायद कहीं और माउंट करने के लिए सुरक्षित है।
JFlo

2
मैं हर भूल जाते हैं, कि umountया fusermount -uकाम नहीं करता है, निर्देशिका प्रयुक्त कहीं है जब। तो cdउपयोग करने fusermount -uया उपयोग करने से पहले निर्देशिका से बाहरlsof /my/local/mountpoint
eli

16

बस pkill का उपयोग करके प्रक्रिया को मारें और फिर आरोहित फ़ोल्डर पथ को माउंट करें।

 pkill -kill -f "sshfs" && umount /path/to/sshfs/share

कभी-कभी मुझे umount के बजाय "sudo umount -f" या "sudo umount -l" करना पड़ता है।
fchen

0
sudo diskutil umount force ~/mount/

ऐसा लगता है कि यह आदेश OS X में काम करता है।


6
क्या आप यह समझाने के लिए अपने जवाब का विस्तार कर सकते हैं कि यह कोड क्या करता है और यह समस्या का समाधान कैसे करता है? अस्पष्टीकृत कोड को हतोत्साहित किया जाता है , क्योंकि यह समाधान नहीं सिखाता है। धन्यवाद। समीक्षा कतार से
fixer1234

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