Mój problem polega na tym, że muszę zresetować lub ponownie zainstalować system Windows z powodu niektórych problemów, ale spędziłem dużo czasu, aby skonfigurować WSL do programowania i nie chcę go stracić.
Czy istnieje sposób na wykonanie kopii zapasowej całego WSL z jego ustawieniami i zainstalowanymi modułami, wtyczkami, użytkownikami itp. I przywrócić go po zresetowaniu lub ponownej instalacji systemu Windows? Dużo szukałem tego tematu, ale nie mogłem znaleźć żadnych przydatnych informacji.
W przeciwnym razie, jeśli nie ma sposobu na wykonanie kopii zapasowej, czy reset Windows 10 całkowicie usunie WSL?
%USERPROFILE%/AppData/Local/lxss
. Próbowałeś tego?Odpowiedzi:
Jak wykonać kopię zapasową?
Dowolna liczba sposobów, ale jedną z powszechnych praktyk jest użycie tar do utworzenia archiwum plików, które chcesz wykonać kopię zapasową (aby ponownie zainstalować wszystko podczas odtwarzania środowiska). Napisanie prostego
backup.sh
skryptu powinno ułatwić wielokrotne tworzenie kopii zapasowych zgodnie z harmonogramem.Co wykonać kopię zapasową?
Większość konfiguracji jest przechowywana w plikach konfiguracyjnych Linux .___, często w folderze ~ /. Możesz również wykonać kopię zapasową
/etc/ssh/ssh_config
plików konfiguracyjnych i innych podobnych systemowych plików konfiguracyjnych, ale zachowaj ostrożność w przypadku złożonych plików konfiguracyjnych zawierających klucze / dane / etc specyficzne dla instancji.Możesz wygenerować swoją listę pakietów apt, używając
dpkg-query -f '${binary:Package}\n' -W
echa do pliku, który możesz również wykonać kopię zapasową.Gdzie wykonać kopię zapasową?
Następnie możesz skopiować te archiwa tar do osobnej lokalizacji. Zalecamy kopiowanie do folderu dostępnego w systemie Windows (np.
/mnt/c/backups
), Z którego można go skopiować do OneDrive, DropBox, zewnętrznego dysku twardego, FTP w innym miejscu itp.HTH.
źródło
Windows 10 v1903 zawiera wbudowane polecenie eksportu / importu WSL . W szczególności,
wsl --export
który produkuje a,tar
iwsl --import
który importuje wcześniej wyeksportowanytar
. Następnie możesz przenieść ten plik między komputerami.Możesz także określić stdin / stdout za pomocą
-
, co powinno umożliwić bezpośrednie przeniesienie na inną maszynę i importowanie za pomocą zdalnej powłoki, takiej jakssh
.źródło
wsl --import
może również importowaćtar.gz
pliki. Te polecenia wewnętrznie uruchamiają%SystemRoot%\System32\lxss\tools\bsdtar
plik binarny ELF64.wsl --export
może potrwać dłużej, niż można się spodziewać. Na moim komputerze trwało to około 10 minut, po zapisaniu zaledwie kilku megabajtów, a następnie w końcu zapisałem plik tar o pojemności 3,2 GB.Aby wykonać kopię zapasową i przywrócić pełną dystrybucję linuksową WSL, możesz spróbować (1) utworzyć
.tar.gz
z systemem plików i (2) przywrócić kopię za pomocą niektórych narzędzi instalacyjnych dostępnych w Internecie:.tar.gz
pliku.rootfs.tar.gz
.Tworzenie kopii zapasowej
Na podstawie raportu o problemie możesz utworzyć kopię zapasową za pomocą
tar
WSL. Pamiętaj, że musisz zignorować niektóre foldery (np. / Mnt) w kopii.Musisz utworzyć lub przenieść później plik kopii zapasowej do prawidłowego
/mnt/c
podfolderu. W tym przykładzie pliki są tworzone w/mnt/c/tmp
.Przywracanie za pomocą lxRunOffline
Korzystając z lxRunOffline , możesz zainstalować wynikową tar jako nową dystrybucję w WSL za pomocą wiersza poleceń systemu Windows.
Aby uruchomić tworzenie kopii zapasowej, możesz użyć tego samego lxRunOffline
Przywracanie za pomocą DistroLauncher
Istnieje wiele programów uruchamiających dla dystrybucji systemu Linux na przykładzie Microsoft . Myślę, że możesz wypróbować wersję Yuk7 .
Musisz pobrać plik dystrybucyjny i plik
launcher.exe
. Aby użyć tego samego pliku dystrybucyjnego, o którym mowa powyżej, należy zmienić nazwę pliku kopii zapasowej na,rootfs.tar.gz
a program uruchamiający na żądaną nazwę dystrybucji. Później musisz uruchomić program uruchamiający jako administrator (wystąpiły błędy podczas uruchamiania go jako zwykły użytkownik)Przy pierwszym uruchomieniu program uruchamiający instaluje się i uruchamia dystrybucję. Następnym razem uruchamia dystrybucję Linuksa.
źródło
Chociaż odpowiedź Jaime'a jest idealna, w jakiś sposób
/tmp
folder nie jest ponownie tworzony, gdy program launcher.exe jest używany do instalowania tar tar (szczególnie mówię o przenoszeniu instalacji WSL z jednej maszyny na drugą).Dlatego należy utworzyć
/tmp
i przypisać wymagane prawa.Jedyne podejście, które zadziałało dla mnie to:
https://www.cyberciti.biz/faq/mysqld-innodb-error-unable-to-create-temporary-file/
źródło