내 문제는 몇 가지 문제로 인해 창을 재설정하거나 다시 설치해야하지만 개발을 위해 WSL을 구성하는 데 많은 시간을 소비했으며 잃고 싶지는 않습니다.
설정 및 설치된 모듈, 플러그인, 사용자 등을 사용하여 전체 WSL을 백업하고 창을 재설정하거나 다시 설치 한 후 복원하는 방법이 있습니까? 이 주제를 많이 검색했지만 유용한 정보를 찾을 수 없습니다.
그렇지 않으면 백업 방법이 없다면 Windows 10 재설정으로 WSL이 완전히 삭제됩니까?
내 문제는 몇 가지 문제로 인해 창을 재설정하거나 다시 설치해야하지만 개발을 위해 WSL을 구성하는 데 많은 시간을 소비했으며 잃고 싶지는 않습니다.
설정 및 설치된 모듈, 플러그인, 사용자 등을 사용하여 전체 WSL을 백업하고 창을 재설정하거나 다시 설치 한 후 복원하는 방법이 있습니까? 이 주제를 많이 검색했지만 유용한 정보를 찾을 수 없습니다.
그렇지 않으면 백업 방법이 없다면 Windows 10 재설정으로 WSL이 완전히 삭제됩니까?
답변:
여러 가지 방법이 있지만 한 가지 일반적인 방법은 tar를 사용하여 백업 할 파일의 아카이브를 작성하는 것입니다 (환경을 다시 작성할 때 모든 것을 다시 설치하기 위해). 간단한 backup.sh스크립트를 작성하면 정기적 인 일정에 따라 반복적으로 백업하기가 쉬워집니다.
대부분의 구성은 Linux ~ .___ 구성 파일, ~~ 폴더에 저장됩니다. /etc/ssh/ssh_config인스턴스 별 키 / 데이터 / 등을 포함하는 복잡한 구성 파일에주의해야하지만 다른 시스템 구성 파일과 다른 유사한 시스템 구성 파일 을 백업 할 수도 있습니다.
를 사용하여 apt 패키지 목록 을 생성dpkg-query -f '${binary:Package}\n' -W 하고 파일로 에코하여 백업 할 수도 있습니다.
그런 다음이 tar 아카이브를 별도의 위치로 복사 할 수 있습니다. /mnt/c/backupsOneDrive, DropBox, 외장 HDD, FTP 등으로 복사 할 수 있는 Windows 액세스 가능 폴더 (예 :)에 복사하는 것이 좋습니다 .
HTH.
Windows 10 v1903 에는 내장 WSL 내보내기 / 가져 오기 명령이 포함되어 있습니다. 특히, wsl --export하는 생산되는 tar및 wsl --import이전에 내 보낸 수입하는 tar. 그런 다음이 파일을 컴퓨터간에 이동할 수 있습니다.
로 stdin / stdout을 지정할 수도 있습니다. 그러면 -다른 시스템으로 직접 전송하고 같은 원격 셸을 사용하여 가져올 수 ssh있습니다.
wsl --importtar.gz파일 을 가져올 수도 있습니다. 이러한 명령은 내부적으로 %SystemRoot%\System32\lxss\tools\bsdtarELF64 바이너리를 시작 합니다.
wsl --export예상보다 오래 걸릴 수 있습니다. 내 컴퓨터에서는 약 10 분 동안 몇 메가 바이트 만 쓴 다음 3.2GB tar 파일을 작성했습니다.
완전한 WSL Linux 배포를 백업 및 복원하려면 (1) .tar.gz파일 시스템으로 파일을 작성 하고 (2) 인터넷에서 사용 가능한 일부 설치 프로그램 도구를 사용하여 사본을 복원하십시오.
.tar.gz파일 에서 배포판을 설치할 수 있습니다 .rootfs.tar.gz.백업 생성
을 바탕으로 문제를보고 , 당신은을 사용하여 백업 생성 할 수 있습니다 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를 사용하여 복원
마이크로 소프트 예제를 기반으로 리눅스 배포판을위한 많은 런처가있다 . 나는 당신이 Yuk7 버전을 시도 할 수 있다고 생각합니다 .
배포 파일과을 다운로드해야합니다 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
실행기를 처음 실행하면 배포가 설치 및 실행됩니다. 다음에 리눅스 배포판을 실행합니다.
Jaime의 대답은 완벽하지만 /tmplauncher.exe를 사용하여 tar ball을 설치할 때 폴더가 다시 생성되지 않습니다 (특히 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
%USERPROFILE%/AppData/Local/lxss있습니다. 당신은 그것을 시도 했습니까?