लिनक्स और इसके विपरीत विंडोज सबसिस्टम में उबंटू फाइल सिस्टम रूट डायरेक्टरी कहां है?


389

मैंने विंडोज 10 पर (सेटिंग्स में सुविधा को सक्षम करने के बाद) उबंटू सबसिस्टम स्थापित किया है, लेकिन उबंटू फाइल सिस्टम रूट डायरेक्टरी ड्राइव में कहां स्थित है?


24
कृपया ध्यान दें हम (डब्लूएसएल टीम) आपको नियमित रूप से लिनक्स डिस्ट्रो डेटा फ़ोल्डर में स्पेलंक न करने की सलाह देते हैं )। यदि आप करते हैं, डेटा हानि और / या भ्रष्टाचार बहुत संभावना है कि हम इस इंटरोप परिदृश्य को बेहतर बनाने के लिए काम कर रहे हैं और हमारे ब्लॉग पर किसी भी प्रगति की घोषणा करेंगे: blogs.msdn.microsoft.com/commandline
रिच टर्नर

@RichTurner मैंने पाया है कि एक बहुत ही विशिष्ट (और कष्टप्रद) कारण है - कॉर्पोरेट नीतियों को गलत अनुमतियों के साथ .ssh फ़ोल्डर को बार-बार चिह्नित करने का मतलब है कॉर्पोरेट संरचना के लिए "ऑफ लिमिट" के रूप में संरचना को चिह्नित करना। लेकिन आम तौर पर - मैं आपसे सहमत हूँ।
डैनी स्टैपल

हालांकि यह अधिक हाल के अपडेट के साथ बॉक्स पर दिखता है - यह अब नहीं होता है।
डैनी स्टैपल

2
@DannyStaple यदि आपको विंडोज़ से अपने लिनक्स डिस्ट्रो में फ़ाइलों / फ़ोल्डरों पर अनुमतियों को बदलने की आवश्यकता है, तो उपयोग करें wsl.exe, जैसे wsl chmod 600 ~/.ssh/id*- इन फ़ाइलों में विंडोज़ फाइल सिस्टम के माध्यम से फ़ाइलों की प्रतिलिपि बनाएं।
रिच टर्नर

@ रीचर: आप लोग क्यों नहीं लिनक्स लिनक्स मेटाडेटा पसंद करते हैं जैसे आप पहले से ही एनटीएफएस मेटाडाटा को कैसे सुरंग करते हैं?
मेहरदाद

जवाबों:


421

Windows स्टोर से स्थापित Ubuntu के लिए:

प्रत्येक वितरण जो आप स्टोर के माध्यम से स्थापित करते हैं, वह उस एप्लिकेशन के एपडेटा निर्देशिका में स्थापित होता है। उदाहरण के लिए: C:\Users\<username>\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState - बेन्हिलिस

लिनक्स के लिए विंडोज सबसिस्टम के पहले पुनरावृत्तियों में, उबंटू फाइल सिस्टम था %localappdata%\Lxss(जैसे, C:\Users\Username\AppData\Local\Lxss- यूजरनेम को अपने यूजरनेम के साथ विंडोज के साथ बदलें )। फ़ाइल सिस्टम समर्थन पर WSL ब्लॉग पोस्ट देखें :

WSL द्वारा उपयोग की जाने वाली प्राथमिक फ़ाइल सिस्टम VolFs है। इसका उपयोग लिनक्स सिस्टम फ़ाइलों को संग्रहीत करने के लिए किया जाता है, साथ ही साथ आपके लिनक्स होम डायरेक्टरी की सामग्री। इस तरह, VolFs लिनक्स VFS द्वारा प्रदान की जाने वाली अधिकांश सुविधाओं का समर्थन करता है, जिसमें Linux अनुमतियाँ, प्रतीकात्मक लिंक, FIFOs, सॉकेट और डिवाइस फाइलें शामिल हैं।

VolFs का उपयोग VFS रूट डायरेक्टरी को माउंट करने के लिए किया जाता है, %LocalAppData%\lxss\rootfsबैकिंग स्टोरेज के रूप में उपयोग किया जाता है। इसके अलावा, कुछ अतिरिक्त VolFs माउंट अंक मौजूद हैं, सबसे विशेष रूप से /rootऔर /homeजो का उपयोग कर रखा जाता है %LocalAppData%\lxss\rootऔर %LocalAppData%\lxss\homeक्रमशः। इन अलग-अलग आरोहियों का कारण यह है कि जब आप WSL की स्थापना रद्द करते हैं, तो होम निर्देशिकाओं को डिफ़ॉल्ट रूप से हटाया नहीं जाता है, इसलिए वहां संग्रहीत किसी भी व्यक्तिगत फ़ाइलों को संरक्षित किया जाएगा।

सावधान

विंडोज ऐप्स और टूल्स का उपयोग करके लिनक्स सबसिस्टम के भीतर किसी भी फाइल को बनाना / संशोधित करना उबंटू सबसिस्टम में डेटा भ्रष्टाचार और डेटा हानि का कारण बन सकता है! ( सावधानी के इन शब्दों को सुझाने के लिए रिच टर्नर का धन्यवाद !) यह बिल्कुल समर्थित नहीं हैउसी ब्लॉग पोस्ट से:

विंडोज के साथ अंतर

हालाँकि, ऊपर बताई गई निर्देशिकाओं में विंडोज पर नियमित फाइल में VolFs फाइल को स्टोर किया जाता है, विंडोज के साथ इंटरऑपरेबिलिटी का समर्थन नहीं किया जाता है। अगर विंडोज से इन डायरेक्ट्रीज़ में से एक में कोई नई फ़ाइल जोड़ी जाती है, तो इसमें VolFs द्वारा आवश्यक EAs का अभाव होता है, इसलिए VolFs को यह नहीं पता होता है कि फ़ाइल के साथ क्या करना है और बस इसे अनदेखा करता है। मौजूदा फ़ाइल को सहेजते समय, फिर से WSL में अनुपयोगी बनाने से कई संपादक ईएएस छीन लेंगे।


आपका Windows फ़ाइल सिस्टम /mnt/cबैश शेल वातावरण में स्थित है।

यहां छवि विवरण दर्ज करें

स्रोत: डस्टिन किर्कलैंड का ब्लॉग , हाउटोगेक


14
Lxss मेरे फाइल सिस्टम पर छिपा हुआ था ... एक सिर पर एक या दो मिनट के लिए खरोंच का कारण बना। अब मैंने एक शॉर्टकट बनाया है, लेकिन मैं अभी भी इसे अनहाइड नहीं कर सकता।
ओगडे

3
@Oaday आप इसे गुण विंडो का उपयोग करते हुए अनहाइड नहीं कर सकते क्योंकि यह एक सिस्टम निर्देशिका के रूप में चिह्नित है। आप इसे अनहाइड कर सकते हैं, attrib -s -h lxssजो इसे एक सिस्टम डायरेक्टरी के रूप में भी चिन्हित करेगा।
डेवलपर

3
ऐसा लगता है कि सिस्टम या तो बदल गया है या सिस्टम के बीच अलग है क्योंकि मेरा स्थान अलग स्थान पर है। मैंने अपने स्थान के साथ नीचे पोस्ट किया है।
निकोलस

8
@souravc क्या आप अपने उत्तर के शीर्ष पर एक महत्वपूर्ण नोट जोड़ सकते हैं, Windows ऐप्स और टूल का उपयोग करके LXSS के भीतर किसी भी फाइल को बनाने / संशोधित करने के खिलाफ दृढ़ता से अनुशंसा करते हैं: यदि आप करते हैं तो डेटा भ्रष्टाचार और हानि बहुत संभव है!
रिच टर्नर

5
कृपया ऊपर उल्लिखित पोस्ट पढ़ें: blogs.msdn.microsoft.com/commandline/2016/11/17/… । डब्लूएसएल फाइल सिस्टम को डब्ल्यूएसएल से एक्सेस करना सुरक्षित है, यही कारण है कि हम आपके ड्राइव को नीचे माउंट करते हैं /mnt/<drive>/, लेकिन विंडोज से लिनक्स फाइल सिस्टम तक पहुंचने के लिए सुरक्षित (अभी तक) सुरक्षित नहीं है, यही कारण है कि हम डिस्ट्रो फाइल सिस्टम के लिए आसान पहुंच प्रदान नहीं करते हैं।
रिच टर्नर

51

ऐसा लगता है कि बैश को मूल रूप से पेश किए जाने के बाद से बदल गया है, और विंडोज स्टोर से वितरण पर लागू नहीं होता है, या शायद यह सभी प्रणालियों के लिए संगत नहीं है क्योंकि मेरा घर निर्देशिका किसी अन्य स्थान पर स्थित है:

%localappdata%\lxss\home\{username}

या:

C:\Users\{user}\AppData\Local\lxss\{username}

{user}आपका Windows उपयोगकर्ता नाम कहां है और {username}इंस्टॉल के दौरान आपका UNIX उपयोगकर्ता नाम है।

तो रूट डायरेक्टरी होगी:

%localappdata%\lxss

ध्यान दें कि रूट डायरेक्टरी निर्देशिका से विंडोज एक्सप्लोरर में दिखाई नहीं दे सकती है %localappdata%। आपको इसे एक्सप्लोरर के 'एड्रेस बार' में टाइप करके किसी भी तरह से एक्सेस करने में सक्षम होना चाहिए।


मेरी मशीन नहीं मिल सकती है: "C: \ Users \ {user} \ AppData \ Local \ Lxss \ {username}" या "% localappdata% \ Lxss \ home \ {username" "लेकिन" C: \ Users \ {उपयोगकर्ता } \ AppData \ Local \ lxss \ {username} "काम करता है। IE "Lxss" नहीं "Lxss" का उपयोग करें
जो कोडवेल यूजर 601770

मेरे सिस्टम में रूटफुट उपनिर्देशिका है, लेकिन रूटफोर्स / होम खाली है जबकि / मेरे पास मेरा उपयोगकर्ता खाता और फाइलें हैं। यह सबसे सुरक्षित प्रतीत होता है कि बस%% स्थानीयतापद% \ lxss पर जाएं और फिर वहां से यह पता लगाने के लिए कि आपके पास कौन सा लेआउट है, साथ ही साथ उस पते पर सीधे ब्राउज़ करने से छिपकली निर्देशिका छिपी होने के साथ मुद्दों से बचा जाता है।
jla 16

1
@ जोकोडवेल्सर 601770 विषम है। विंडोज फाइलसिस्टम सामान्य रूप से असंवेदनशील होते हैं। मैं% localappdata% \ Lxss या% localappdata% \ lxss दर्ज कर सकता हूँ और दोनों% HOMEPATH% \ AppData \ Local \ lxss
jla

8
ध्यान दें कि यह फ़ोल्डर (lxss) मेरी विंडो एक्सप्लोरर में AppData \ Local में फ़ोल्डरों की लिस्टिंग में दिखाई नहीं दिया, यहां तक ​​कि छिपे हुए फ़ोल्डर सक्षम होने के साथ। मैं मैन्युअल रूप से फ़ाइलों को प्राप्त करने के लिए एक्सप्लोरर बार में फ़ोल्डर lxss को जोड़ने के लिए यहाँ था जैसे कि फ़ोल्डर "url" को वहाँ संपादित करें
कॉलिन डी

वैकल्पिक रूप से, आप डेस्कटॉप पर जा सकते हैं, "New-> शॉर्टकट" पर राइट-क्लिक करें और C: \ Users \ yourname \ AppData \ Local \ lxss \ home \ yourname
Colin D

13

यदि आप MS मार्केट से लिनक्स स्थापित करते हैं:

उन्होंने इसके तहत डिस्ट्रोस रखा:

$ cat /proc/registry/HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Lxss/\{861c29b4-ebe2-49a5-8a22-7e53a27934a0\}/BasePath
C:\Users\user\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState

डिफ़ॉल्ट डिस्ट्रो द्वारा परिभाषित:

bash# cat /proc/registry/HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Lxss/DefaultDistribution
{861c29b4-ebe2-49a5-8a22-7e53a27934a0}

लिनक्स रूट गहरा है:

c:/Users/user/AppData/Local/Packages/46932SUSE.openSUSELeap42.2_022rs5jcyhyac/LocalState/rootfs

पुनश्च। रजिस्ट्री कुंजियों का पता लगाने के लिए मैंने Cygwin का उपयोग किया।

यदि समान लक्ष्य के लिए PowerShell का उपयोग किया जाता है, तो आदेश होंगे:

# obtain the value of the ID of the default Linux distribution (and store it in a variable to avoid escaping characters issues):
$DEFAULT_LXSS_ID = (Get-ItemPropertyValue -Path REGISTRY::HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss\ -name DefaultDistribution)

# which will have a value like:
echo  $DEFAULT_LXSS_ID
{bde539d6-0c87-4e12-9599-1dcd623fbf07}

# display the directory containing the rootfs Windows directory (mapped to the / Linux directory)
Get-ItemPropertyValue -Path REGISTRY::HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss\$DEFAULT_LXSS_ID -name BasePath | Format-List -property "BasePath"
%LocalAppData%\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState

पी पी एस। https://blogs.msdn.microsoft.com/commandline/2016/11/17/do-not-change-linux-files-using-windows-apps-and-tools/


5

केवल एक चीज जो मेरे लिए काम करती थी %localappdata%\lxss\home\{username}, वह {username}है जहां आपका BASH उपयोगकर्ता नाम आपने संस्थापन के दौरान दिया था। किसी कारण से, छिपे हुए फ़ोल्डर के lxss को दिखाने से इनकार करने के बाद C:\Users\WINDOWS-USER\AppData\Local\, और C:\विंडोज़ और BASH उपयोगकर्ता नाम के साथ पूर्ण पथ देने से भी काम नहीं होता है।

और कृपया किस काम के लिए एक डेस्कटॉप शॉर्टकट बनाएं।


वाह अच्छी टिप, एक ही समस्या थी
निकोलस मम्मैर्ट्स

4

आप bashस्थान बार में टाइप करके खुले फ़ोल्डर की फ़ाइल एक्सप्लोरर विंडो से बैश को जल्दी से खोल सकते हैं ।

बहुत हो गया।

इसके अलावा, आप एक संदर्भ मेनू आइटम जोड़ सकते हैं। मैं व्यक्तिगत रूप से इसकी आवश्यकता नहीं होने पर अनुशंसा नहीं करता, क्योंकि संदर्भ मेनू में शॉर्टकट जोड़ने से अधिक रैम का उपयोग होता है।

https://www.howtogeek.com/270810/how-to-quickly-launch-a-bash-shell-from-windows-10s-file-explorer/


मेरे लिए काम नहीं करता है। यह कमांड प्रॉम्प्ट खोलता है और बैश लॉन्च करता है।
ब्लाबलाट्रॉस

@blablatros हाँ, लेकिन डायन में बैश में फ़ोल्डर में आपके पास एक्सप्लोरर बार बैश में लिखने और एंटर दबाने पर एक्सप्लोरर खुला था। मेरा दस्तावेज़ फ़ोल्डर में आज़माएँ Windows Explorer फ़ोल्डर और स्थान बार में बैश लिखें और यह उस फ़ोल्डर में पहले से ही ubuntu bash खोलेगा :)
कंगारू

1
@ कंगारू: मैं विंडोज़ 10 के माध्यम से फ़ाइलों के साथ-साथ इसके विपरीत भी एक्सेस करना चाहता हूं। ऊपर मेरे जवाब में, मुझे पता चला कि विंडोज 10 फाइलों के एक्सप्लोरर के माध्यम से बैश निर्देशिका का पता कैसे लगाया जाए, और इसलिए मैंने अपनी फ़ाइलों को अपनी हार्ड ड्राइव से कुछ फ़ाइलों को उस निर्देशिका में कॉपी करने के लिए आगे बढ़ाया। हालाँकि, जब मैंने बैश टर्मिनल खोला और दबाया ls -a, तो यह मेरे द्वारा जोड़ी गई फ़ाइलों को नहीं दिखा रहा था। बैश उन फाइलों को नहीं पहचान रहा था, जिन्हें मैंने विंडोज़ फाइल एक्सप्लोरर के माध्यम से गिराया था, जिसने मेरे लिए खिड़कियों पर बैश लगाने के उद्देश्य को पूरी तरह से हरा दिया है।
थिंकटिनबिनरी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.