सिस्टम रीसेट या पुनर्स्थापित करने से पहले विंडोज 10 के लिए बैकअप (डब्ल्यूएसएल) लिनक्स सबसिस्टम कैसे करें?


25

मेरी समस्या यह है कि मुझे कुछ समस्याओं के कारण विंडोज़ को रीसेट या पुनर्स्थापित करना होगा लेकिन मैंने विकास के लिए WSL को कॉन्फ़िगर करने के लिए बहुत समय बिताया है और इसे खोना नहीं चाहता।

वहाँ यह सेटिंग्स और स्थापित मॉड्यूल, प्लगइन्स, उपयोगकर्ताओं आदि के साथ पूरे WSL का समर्थन करने और खिड़कियों को रीसेट या पुनर्स्थापित करने के बाद इसे पुनर्स्थापित करने का कोई तरीका है? मैंने इस विषय पर बहुत खोज की लेकिन मुझे कोई उपयोगी जानकारी नहीं मिली।

अन्यथा यदि बैकअप का कोई रास्ता नहीं है, तो क्या विंडोज़ 10 रीसेट पूरी तरह से WSL को हटा देगा?


मुझे लगता है, इसके रूप में बस के रूप में समर्थन होगा %USERPROFILE%/AppData/Local/lxss। क्या आपने कोशिश की है?
रामहाउंड

हां, मैंने कोशिश की, लेकिन यह केवल आंशिक रूप से त्रुटियों के साथ कार्यात्मक है।
एमिपैक

जवाबों:


15

कैसे करें बैकअप?

जितने भी तरीके हैं, लेकिन एक आम बात यह है कि आप उन फ़ाइलों का एक संग्रह बनाने के लिए टार का उपयोग करें, जिन्हें आप बैकअप देना चाहते हैं (जब आप अपने वातावरण को फिर से बनाते हैं तो सब कुछ फिर से स्थापित करने के लिए)। एक सरल backup.shस्क्रिप्ट लिखना नियमित शेड्यूल पर बार-बार बैकअप करना आसान बनाना चाहिए।

क्या करें बैकअप?

आपका अधिकांश विन्यास लिनक्स .___ कॉन्फिग फाइलों में संग्रहीत है, अक्सर आपके ~ / फ़ोल्डर में। आप अपनी /etc/ssh/ssh_configऔर इसी तरह की अन्य सिस्टम कॉन्फिग फाइलों का बैकअप भी ले सकते हैं , हालांकि कॉम्प्लेक्स कॉन्फिग कीज / डाटा / आदि वाले कॉम्प्लेक्स कॉन्फिग फाइल से सावधान रहें।

आप अपनी उपयुक्त पैकेज सूची का उपयोग कर उत्पन्न कर सकते हैंdpkg-query -f '${binary:Package}\n' -W और एक फाइल में गूंज सकते हैं जिसका आप बैकअप भी ले सकते हैं।

कहां से करें बैकअप?

फिर आप इन टार अभिलेखों को एक अलग स्थान पर कॉपी कर सकते हैं। हम एक विंडोज-सुलभ फ़ोल्डर (जैसे /mnt/c/backups) में कॉपी करने की सलाह देते हैं , जिसमें से आप इसे वनड्राइव, ड्रॉपबॉक्स, बाहरी एचडीडी, एफ़टीपी कहीं और, आदि में कॉपी कर सकते हैं।

HTH।


23

विंडोज 10 v1903 में एक अंतर्निहित WSL निर्यात / आयात कमांड शामिल है । विशेष रूप से, wsl --exportएक का उत्पादन जो tarऔर wsl --importजो आयात पहले निर्यात, tar। फिर आप इस फ़ाइल को कंप्यूटर के बीच ले जा सकते हैं।

आप स्टडिन / स्टडआउट को भी निर्दिष्ट कर सकते हैं -, जो आपको किसी अन्य मशीन में सीधे स्थानांतरित करने और दूरस्थ शेल का उपयोग करके आयात करने की अनुमति देनी चाहिए ssh


wsl --importtar.gzफ़ाइलें आयात कर सकते हैं । वे आदेश आंतरिक रूप से %SystemRoot%\System32\lxss\tools\bsdtarELF64 बाइनरी लॉन्च करते हैं।
बिस्वप्रियो

उपाख्यान, एक तंत्रिका विवाद के उन लोगों की मदद करने के लिए: wsl --exportआपको अपेक्षा से अधिक समय लग सकता है। मेरी मशीन पर, यह केवल कुछ मेगाबाइट लिखा होने के कारण लगभग 10 मिनट तक बैठा रहा, फिर अंत में 3.2 जीबी टार फ़ाइल लिखी।
स्क्रू

मुझे लगता है कि यह सबसे अच्छा समाधान है और इसे उत्तर के रूप में स्वीकार किया जाना चाहिए।
user1602

2

संपूर्ण WSL linux वितरण को बैकअप और पुनर्स्थापित करने के लिए, आप .tar.gzअपने फाइल सिस्टम के साथ (1) बनाने की कोशिश कर सकते हैं और (2) इंटरनेट में उपलब्ध कुछ इंस्टॉलर टूल्स का उपयोग करके कॉपी को पुनर्स्थापित करें:

  • LxRunOffline में कस्टम लिनक्स वितरण को डुप्लिकेट और स्थापित करने के विकल्प हैं। आप एक .tar.gzफ़ाइल से एक डिस्ट्रो स्थापित कर सकते हैं ।
  • WSL-DistroLauncher आपको एक से एक वितरण स्थापित करने की अनुमति देता है rootfs.tar.gz
  • WSLInstall , WSL के लिए एक और लिनक्स इंस्टॉलर।

बैकअप बनाना

समस्या रिपोर्ट के आधार पर , आप tarWSL का उपयोग कर एक बैकअप बना सकते हैं । ध्यान दें कि आपको प्रतिलिपि में कुछ फ़ोल्डर्स (जैसे / mnt) को अनदेखा करना चाहिए।

# cd /
# tar vzcpf /mnt/c/tmp/ubuntu_`date +%Y%m%d_%H`.tar.gz --exclude=/proc --exclude=/dev --exclude=/mnt --exclude=/media --exclude=/lost+found  --exclude=/tmp --exclude=/sys  --exclude=/run / > /mnt/c/tmp/ubuntu_`date +%Y%m%d_%H`.log 2> /mnt/c/tmp/ubuntu_`date +%Y%m%d_%H`.error

आपको बाद में बैकअप फ़ाइल को एक वैध /mnt/cसबफ़ोल्डर में बनाना या स्थानांतरित करना होगा । उदाहरण में, फ़ाइलों में बनाया जाता है /mnt/c/tmp


LxRunOffline का उपयोग करके पुनर्स्थापित करना

LxRunOffline का उपयोग करके , आप परिणामी टार को Windows कमांड लाइन का उपयोग करके WSL में एक नए वितरण के रूप में स्थापित कर सकते हैं।

# lxrunoffline install -n <distro name> -d <installation folder> -f <file>
C:\wsl> lxrunoffline install -n mybackup -d c:\wsl\mybackup -f c:\tmp\ubuntu_20180729_00.tar.gz

बैकअप चलाने के लिए, आप उसी lxRunOffline का उपयोग कर सकते हैं

# lxrunoffline run -n <distro name> -w
C:\wsl> lxrunoffline run -n mybackup  -w

एक DistroLauncher का उपयोग करके पुनर्स्थापित करना

Microsoft उदाहरण के आधार पर लिनक्स वितरण के लिए कई लॉन्चर हैं । मुझे लगता है कि आप युक 7 संस्करण की कोशिश कर सकते हैं ।

आप एक वितरण फ़ाइल और डाउनलोड करना होगा launcher.exe। ऊपर बताए गए समान वितरण फ़ाइल का उपयोग करने के लिए, आपको बैकअप फ़ाइल rootfs.tar.gzऔर लॉन्चर को उस वितरण नाम में बदलना होगा जिसे आप चाहते हैं। बाद में आपको लांचर को एक प्रशासक के रूप में चलाना होगा (मुझे सामान्य उपयोगकर्ता के रूप में इसे चलाने में त्रुटियाँ मिलीं)

c:\wsl> ren launcher.exe mybackup.exe
c:\wsl> ren .\ubuntu_20180729_00.tar.gz rootfs.tar.gz
c:\wsl> .\mybackup.exe

पहली बार जब आप लॉन्चर चलाते हैं, तो यह वितरण को स्थापित और चलाता है। अगली बार, यह लिनक्स वितरण चलाता है।


धन्यवाद! - युक 7 का wsdl लांचर लॉन्च पर विफल रहा, और मैंने lxRunOffline समस्या नहीं देखी। यह एकमात्र स्थान था जो मैंने पाया कि सही टार कमांड का दस्तावेजीकरण किया गया था जिसने मेरे wsldl मुद्दे को तय किया।
एंड्रयूज

0

जबकि Jaime का जवाब सही है, किसी तरह /tmpफ़ोल्डर को तब रीक्रिएट नहीं किया जाता है, जब लॉन्चर को टार बॉल इंस्टॉल करने के लिए इस्तेमाल किया जाता है (मैं विशेष रूप से WSL इंस्टालेशन को एक मशीन से दूसरी मशीन में ले जाने की बात कर रहा हूं)।

इसलिए किसी को /tmpआवश्यक अधिकार बनाने और सौंपने चाहिए।

मेरे लिए काम करने वाला एक दृष्टिकोण है:

https://www.cyberciti.biz/faq/mysqld-innodb-error-unable-to-create-temporary-file/

# chown root:root /tmp
# chmod 1777 /tmp
## test it ##
# /etc/init.d/mysqld start
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.