मैंने लिनक्स के लिए विंडोज सबसिस्टम का उपयोग करते हुए एक विंडोज प्रोग्राम के साथ एक लिनक्स फाइल को एडिट किया, और अब मैं इसे और एक्सेस नहीं कर सकता


12

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

अब जब भी मैं या कोई प्रोग्राम इसे लिनक्स से एक्सेस करने की कोशिश करता है, तो मुझे एक त्रुटि "इनपुट / आउटपुट त्रुटि" मिलती है, या फ़ाइल पूरी तरह से गायब हो जाती है, भले ही मैं देख सकता हूं कि यह फ़ाइल एक्सप्लोरर में निश्चित रूप से है।

cat abc
cat: abc: Input/output error

ऐसा क्यों हुआ है? इसे ठीक करने के लिए मुझे क्या करना होगा? मैं भविष्य में इसे कैसे टाल सकता हूं?

जवाबों:


13

ऐसा क्यों हुआ है?

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

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

डब्लूएसएल की आधिकारिक सलाह है

नहीं है, किसी भी परिस्थिति में , बना सकते हैं और / या संशोधित विंडोज क्षुधा, उपकरण, लिपियों, शान्ति, आदि का उपयोग कर लिनक्स फ़ाइलें

विंडोज से लिनक्स फाइलों को बनाने / बदलने से डेटा भ्रष्टाचार का परिणाम होगा और / या आपके लिनक्स वातावरण को नुकसान होगा जो आपको अपने डिस्ट्रो को अनइंस्टॉल और पुनर्स्थापित करने की आवश्यकता है!

इस कारण से (लेकिन बड़ा और रेडर, और अधिक अंडरलाइन के साथ)। "लिनक्स फाइलें" का अर्थ है आपकी lxssनिर्देशिका के अंदर कुछ भी । आप /mnt/c/...DrvFS फाइल सिस्टम के माध्यम से लिनक्स के अंदर से नियमित रूप से विंडोज फाइलों को संशोधित कर सकते हैं , लेकिन रिवर्स नहीं।

हालाँकि, 1903 विंडोज 10 रिलीज एक नया तंत्र पेश करता है जो फाइलों को विंडोज से सुरक्षित रूप से संपादित करने की अनुमति देता है जब तक आप इसके बारे में सही तरीके से नहीं जाते हैं। यह पहले से ही दूषित फ़ाइलों की समस्या को ठीक करने में मदद नहीं करता है, लेकिन यह भविष्य में इससे बच सकता है।

इसे ठीक करने के लिए मुझे क्या करना होगा?

यदि आपने पहले ही किसी फ़ाइल को संपादित कर लिया है और अब आप उस तक पहुँच नहीं बना सकते हैं, तो अभी भी विंडोज से सामग्री को पढ़ना और उस तरह से फ़ाइल को पुनर्स्थापित करना संभव है।

ऐसा करने के लिए, आपको निम्न करना होगा:

  1. उस AppData\Local\lxssनिर्देशिका में वापस नेविगेट करें , जो फ़ाइल फ़ाइल एक्सप्लोरर का उपयोग कर रही है और फ़ाइल को आपके डेस्कटॉप की तरह, आपके ड्राइव पर कहीं और ले जाए।
  2. अपने आंतरिक कैश को साफ़ करने के लिए WSL को पुनः आरंभ करें, जिसे आप अपने सभी टर्मिनलों को बंद करके और एक नया खोलकर कर सकते हैं। यदि आपके पास पृष्ठभूमि सर्वर प्रक्रियाएं चल रही हैं, तो आपको उन पर रोक लगाने की भी आवश्यकता होगी।
  3. फिर से लिनक्स के भीतर, भ्रष्ट फ़ाइल के मूल स्थान पर जाएं। यदि आपने फ़ाइल को सफलतापूर्वक स्थानांतरित कर दिया है तो यह अब बिल्कुल भी दिखाई नहीं देगा। भागो lsजाँच करने के लिए।
  4. जिस फ़ाइल को आप बाहर ले गए हैं उसकी जाँच करें: चलाएँ

    cat /mnt/c/Users/.../Desktop/abc
    

    फ़ाइल की मूल सामग्री देखने के लिए।

  5. यदि सब कुछ अब तक काम किया है, तो आप अब उस फ़ाइल को उस स्थान पर वापस कॉपी कर सकते हैं जहाँ आप यह उम्मीद करते हैं:

    cp /mnt/c/Users/.../Desktop/abc ~/alphabet/abc
    

    cpआदेश रिकॉर्ड में आवश्यक छिपा विशेषताओं को बहाल करने के WSL का कारण होगा।

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

मैं भविष्य में इससे कैसे बच सकता हूं?

lxssविंडोज से निर्देशिका के भीतर किसी भी फाइल में हेरफेर न करें । बजाय:

  • आप एक फ़ाइल तुम दोनों विंडोज और लिनक्स से उपयोग करने के लिए चाहते हैं, तो यह की दुकान के बाहरlxss निर्देशिका, कहीं और अपने विंडोज सिस्टम पर। आप स्वचालित DrvFS इंटरऑपरेबिलिटी का उपयोग करके लिनक्स से विंडोज फाइलें खोल सकते हैं : /mnt/cनिर्देशिका में आपके सी: ड्राइव से सभी फाइलें शामिल हैं, और उन्हें लिनक्स से पढ़ा और लिखा जा सकता है।

  • 1903 में विंडोज रिलीज़ (मार्च 2019) से शुरू होकर , WSL में एक विशेष फ़ाइल सर्वर शामिल है जो आपकी फ़ाइलों को सभी विंडोज़ अनुप्रयोगों के लिए उपलब्ध कराता है। अगर तुम दौड़ते हो

    explorer.exe .
    

    तब फ़ाइल एक्सप्लोरर खुल जाएगा वर्तमान लिनक्स निर्देशिका दिखाते हुए - आप फ़ाइलों को उस विंडो में या उसके बाहर कॉपी कर सकते हैं, या उन्हें किसी भी एप्लिकेशन के साथ संपादित कर सकते हैं। निर्देशिका पथ कुछ इस तरह होगा \\wsl$\Ubuntu\var\www: \\wsl$\भाग एक वैकल्पिक, सुरक्षित, पथ के माध्यम से फ़ाइल एक्सेस भेजता है।

    यदि आप सक्षम हैं, तो यह आगे का सबसे अच्छा मार्ग होगा (या कभी-कभी ऊपर का बिंदु)। पुराने रिलीज के लिए, पर पढ़ें।

  • यदि कोई फ़ाइल आपको किसी विशिष्ट स्थान पर होनी चाहिए, जैसे कॉन्फ़िगरेशन फ़ाइल, और आप इसे विंडोज से संपादित करना चाहते हैं, तो आप लिनक्स के अंदर से फ़ाइल या निर्देशिका के वास्तविक स्थान पर एक प्रतीकात्मक लिंक बना सकते हैं:

    ln -s /mnt/c/.../abc ~/.config/xyz/abc
    

    यह तब तक काम करेगा जब तक फ़ाइल को लिनक्स में किसी विशिष्ट अनुमति या विशेषता की आवश्यकता नहीं होगी (एक निष्पादन योग्य या SSH कुंजी के रूप में)।

  • वैकल्पिक रूप से, और शायद बेहतर, टर्मिनल के भीतर लिनक्स संपादक का उपयोग करके अपनी लिनक्स फाइलों को संपादित करें। nano, vimऔर emacsसभी आसानी से उपलब्ध हैं और डब्ल्यूएसएल के तहत अच्छी तरह से काम करते हैं, हालांकि वे सभी अपने quirks है।

  • यदि आपको किसी विंडोज प्रोग्राम के साथ फाइल एडिट करनी चाहिए, तो आपके पास हाल ही में पर्याप्त विंडोज वर्जन नहीं है, और आप इसे सिमलिंक नहीं बना सकते हैं, इसे संपादित करने और इसे /mnt/cबाद से कॉपी करने के लिए कहीं और कॉपी करें , जैसे ऊपर ठीक करें, या कई स्थानों पर अपने संपादन को सिंक्रनाइज़ करने के लिए संस्करण नियंत्रण का उपयोग करें।

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

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