विंडोज लिनक्स सबसिस्टम पर नेटवर्क माउंटेड ड्राइव का उपयोग कैसे करें?


62

मेरे पास एक सांबा ड्राइव है जो मेरे स्थानीय विंडोज़ कंप्यूटर पर मुहिम की जाती है।

मेरे पास WLS ("विंडोज 10 बैश") में "/ mnt / c" ड्राइव है, लेकिन कोई "/ mnt / z" नहीं है।

क्या किसी तरह इसे एक्सेस करने का कोई तरीका है? क्या मैं इसे WLS में रीमाउंट कर सकता हूं?


3
Microsoft डेवलपर फ़ीडबैक wpdev.uservoice.com/forums/…
नेल्सन

जवाबों:


23

[अद्यतन - जाहिरा तौर पर यह सुविधा १६१ --६ के निर्माण में उपलब्ध है । मैंने अभी तक इसकी कोशिश नहीं की है।]

नहीं, हालाँकि कुछ ऐसी तरकीब हो सकती है जिसकी मैंने खोज नहीं की है। लिनक्स के लिए विंडोज सबसिस्टम नेटवर्क ड्राइव को माउंट नहीं करता है। एक Microsoft कर्मचारी यहाँ कहता है (एक टिप्पणी में):

हम इस समय केवल "माउंट" फिक्स्ड ड्राइव करते हैं। इस समय USB / रिमूवेबल / नेटवर्क ड्राइव को हैंडल नहीं किया जाता है। यह क्षमता हमारे बैकलॉग पर है, लेकिन यह जल्द ही कभी भी कार्ड पर नहीं है।

इसलिए अपनी सांस को रोककर न रखें।

मैंने एक प्रतीकात्मक लिंक का उपयोग करके इसके चारों ओर काम करने का प्रयास किया, जैसे:

c:> mklink /d c:\some\directory \\some_server\some_share

लिंक "सामान्य" विंडोज (cmd.exe, PowerShell, फ़ाइल एक्सप्लोरर, आदि) में ठीक काम करता है, लेकिन WSL के लिए अदृश्य है:

$ ls -ld /mnt/c/some/directory
/mnt/c/some/directory not found

मेरे अपने उपयोग के लिए, यह सीमा एक शो-स्टॉपर है। मेरे पास नेटवर्क ड्राइव पर चीजें हैं जो मैं स्थानांतरित करने के लिए तैयार नहीं हूं। विकल्प हैं; मैं Cygwin का उपयोग कर रहा हूं।


सहमत, यह मेरे लिए भी एक शोस्टॉपर है - मैंने इसके लिए सिर्फ msys2 स्थापित किया है।
इला 782


mklink के लिए आपकी दलीलों का क्रम गलत है - यह होना चाहिए linkname target, नहींtarget linkname
मास्टरएक्सिलो

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

109

से लिंक bleater तैनात

बढ़ते DrvFs

DrvFs का उपयोग करके विंडोज ड्राइव को माउंट करने के लिए, आप नियमित लिनक्स माउंट कमांड का उपयोग कर सकते हैं। उदाहरण के लिए, हटाने योग्य ड्राइव को माउंट करने के लिए D: as / mnt / d निर्देशिका, निम्न कमांड चलाएँ:

$ sudo mkdir /mnt/d
$ sudo mount -t drvfs D: /mnt/d

अब, आप अपने D: ड्राइव के तहत / mnt / d की फाइल एक्सेस कर सकेंगे। जब आप ड्राइव को अनमाउंट करना चाहते हैं, उदाहरण के लिए ताकि आप इसे सुरक्षित रूप से हटा सकें, तो निम्न कमांड चलाएं:

$ sudo umount /mnt/d

बढ़ते नेटवर्क स्थान

जब आप किसी नेटवर्क स्थान को माउंट करना चाहते हैं, तो आप निश्चित रूप से विंडोज में मैप्ड नेटवर्क ड्राइव बना सकते हैं और ऊपर बताए अनुसार माउंट कर सकते हैं। हालाँकि, यूएनसी पथ का उपयोग करके उन्हें सीधे माउंट करना भी संभव है:

$ sudo mkdir /mnt/share
$ sudo mount -t drvfs '\\server\share' /mnt/share

UNC पथ के चारों ओर एकल उद्धरण नोट करें; बैकस्लैश से बचने की आवश्यकता को रोकने के लिए ये आवश्यक हैं। यदि आप एकल उद्धरणों के साथ UNC पथ को नहीं घेरते हैं, तो आपको उन्हें (जैसे \\\\server\\share) दोगुना करके बैकस्लैश से बचना होगा ।

डब्लूएसएल के पास यह निर्दिष्ट करने का कोई तरीका नहीं है कि नेटवर्क शेयर से जुड़ने के लिए किन क्रेडेंशियल्स का उपयोग करना है। यदि आपको सर्वर से कनेक्ट करने के लिए विभिन्न क्रेडेंशियल्स का उपयोग करने की आवश्यकता है, तो उन्हें विंडोज में निर्दिष्ट करें, फ़ाइल क्रेडेंशियल में शेयर को नेविगेट करके, विंडोज क्रेडेंशियल प्रबंधक या नेट उपयोग कमांड का उपयोग करके। नेट उपयोग कमांड को इंटरॉप के माध्यम से WSL (net.exe उपयोग का उपयोग करके) से अंदर किया जा सकता है। इस आदेश का उपयोग कैसे करें के बारे में अधिक जानकारी के लिए net.exe मदद का उपयोग करें।


2
पूरी तरह से मेरे "विंडोज़ 10 के लिए बैश" के लिए काम किया! आपको बहुत - बहुत धन्यवाद!
यिंग झांग

6
सही उत्तर को इसे बदल दिया जाना चाहिए क्योंकि यह सीधे प्रश्न का उत्तर देता है।
तोमक

DrvFs प्राप्त करने के लिए आपको "विंडोज इनसाइडर बिल्ड" की आवश्यकता है। -1 (वास्तव में वोटिंग से कम नहीं)
फ्रैक्टलस्पेस

5
मेरे पास विंडोज़ इनसाइडर बिल्ड नहीं है और यह मेरे लिए काम कर रहा है
बजे

2
यह शेयर को मापता है, लेकिन सब कुछ रूट के स्वामित्व में है, और कुछ फाइलें अपठनीय हैं (यहां तक ​​कि sudo के साथ, और भले ही WSL के अंदर की अनुमति 777 हो)। मैं विंडोज़ फ़ाइल एक्सप्लोरर से फ़ाइलों को पढ़ सकता हूं। कोई भी माउंट विकल्प ( -o) जोड़ने से मुझे "गलत fs प्रकार, खराब विकल्प, खराब सुपरब्लॉक" त्रुटि मिलती है।
जे के

2

देख https://github.com/Microsoft/WSL/issues/2999#issuecomment-455835951

यहाँ WSL में काम कर रहे `sshfs` पर आधारित WSL में GFS को माउंट करने या एक विकल्प खोजने का एक तरीका है । ट्रिक https://www.nsoftware.com/sftp/netdrive/ का उपयोग करके Windows से GFS को ssh करने और इसे रूपांतरित करने के लिए है। एक फ़ाइल सिस्टम के लिए जिसे WSL के अंतर्गत रखा जा सकता है।

  1. Win10 Win10 सेटिंग्स के तहत OpenSSH सर्वर स्थापित करें -> ऐप्स -> वैकल्पिक सुविधाओं का प्रबंधन करें -> सुविधा जोड़ें - यदि आवश्यक हो तो OpenSSH सर्वर पुनरारंभ करें -> OpenSSH -> गुण -> स्टार्टअप प्रकार -> स्वचालित (विलंबित)

  2. SFTPNetDrive स्थापित करें और चलाएं, छिपे हुए आइकन में आइकन पर राइट क्लिक करें -> मुख्य विंडो (या शायद पहले से ही खुला) -> प्रोफ़ाइल -> नया प्रोफ़ाइल (सर्वर: लोकलहोस्ट, उपयोगकर्ता: * pwd: * ड्राइव पत्र: F (या कोई अन्य) उन्नत: > (प्रोटोकॉल -> अनचेक संपीड़न; निर्दिष्ट फ़ोल्डर: G: \))

  3. बैश में (wsl): sudo mkdir / mnt / f; सुडो माउंट -t ड्रवफ़्स एफ: / एमएनटी / एफ

मुझे यकीन नहीं है कि यह कितना स्थिर है, लेकिन मैं WSL में फाइलें खोलने में सक्षम था।


-2

विंडोज में बैश का उपयोग करने के दो तरीके हैं (कम से कम):

  1. WLS के साथ आने वाला बैश (विंडोज स्टोर या अन्य स्रोतों से विंडोज 10 पर लिनक्स स्थापित करते समय)
  2. विंडोज पर गिट-बैश

Git-Bash के पास नेटवर्क फ़ोल्डरों तक पहुंच है (git-bash स्थापित करें) नेटवर्क फ़ोल्डर पर जाएं> राइट-क्लिक करें> "Git Bash Here"> pwdपथ को देखने के लिए चलाएँ )।

यदि आप के लिए है बैश की WLS संस्करण का उपयोग, तो आप Git-बैश WLS बैश से इस प्रकार कॉल कर सकते हैं:

WLS_Bash_Shell:$ /mnt/c/Program\ Files/Git/bin/bash.exe ScriptThatUsesNetworkFolders.sh
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.