
이 게시물단순히 WSL 디렉터리를 복원하면 WSL이 부분적으로 복원되지만 일부 기능 문제가 있다고 언급합니다.이 게시물Linux 설치를 백업하고 복구하는 방법에 대한 일반적인 정보를 제공합니다.이 게시물%appdata%는 실제로 재설정 후 생성되고 "이전" 파일을 포함하는 Windows.old 폴더로 이동되었다고 합니다. ) 첫 번째 포스터 실험에서 어떤 정보가 손실되었을 수 있나요? 단순히 Linux 루트 디렉터리( %USERPROFILE%/AppData/Local/lxss
)를 복원하여 작동하도록 허용하는 일부 레지스트리 설정이나 구성 파일이 있습니까 ?
편집하다
내 질문이 다음과 중복된 것으로 표시되었습니다.시스템 재설정 또는 재설치 전에 Windows 10용 Linux 하위 시스템(WSL)을 백업하는 방법은 무엇입니까?.
그러나 그 질문은 설치를 백업하는 방법에 관한 것이었습니다. 즉, 기본적으로 tar하고 어딘가에 저장하는 것이었습니다. 복원 방법에 대해 명시 적으로 묻습니다.
답변1
오늘 부딪힌 아주 오래된 질문인데, 그 질문을 받은 후 4년 동안 상황이 많이 바뀌었습니다. 실제로 몇 년 전에 일일 드라이버를 "재설정"했는데 비슷한 상황이 발생했습니다.
그 당시에는 당신이 할 수 있는 최선의 방법은 무엇이든 복사하는 것이었습니다.데이터이전 파일 시스템에서 벗어났습니다. 이 질문을 받았을 때 해당 파일 시스템은 일반적으로 (질문에서 언급한 대로) 아래 어딘가에 있었습니다 %USERPROFILE%\AppData\Local\lxss
. 정확히 기억나지 않고 더 이상 그렇게 오래된 설치물도 없기 때문에 귀하의 말을 그대로 받아들이겠습니다.
어느 시점에서 WSL이 여러 배포판을 지원하기 시작했을 때 WSL1 폴더가 %USERPROFILE%\AppData\Local\Packages\<PackageName>\LocalState\rootfs
. 몇 년 전 PC를 재설정했을 때 tar
해당 디렉터리를 복구한 다음 재설정 및 WSL 재설치 후에 개별 파일을 복원했습니다(요청한 대로 전체 파일 시스템은 아님). 나는 을 고려하지 않았지만 Windows.old
그 파일도 얻을 수 있는 유효한 방법이었을 것입니다.
요즘은 그렇습니다.~ 전에재설정을 수행하면 wsl --export
여기의 다른 답변에서 언급한 대로 수행할 수 있습니다.
하지만 사용자가 이 작업을 수행할 생각이 없다면5월를 사용하여 재설정한 후에도 파일 시스템을 완전히 복원할 수 있습니다 Windows.old
. 두 가지 시나리오가 있습니다.
WSL2에서는 전체 파일 시스템이
%USERPROFILE%\AppData\Local\Packages\<PackageName>\LocalState\rootfs\ext4.vhdx
. 보다이 답변자세한 내용은 기본적으로 새 설치에 복사하면ext4.vhdx
됩니다Windows.old
.WSL1을 사용하면90% 자신감
Windows.old
다음 방법을 사용하여 WSL 설치를 복구할 수 있습니다 .먼저 Store에서 배포판을 설치합니다. 알아요, 당신은 당신의 회복을 원합니다오래된하지만 우리는 이 새로운 설치를 사용하여 이를 수행할 것입니다. 완료되면 언제든지 Store 배포를 제거할 수 있습니다.
해당 배포판을 시작하십시오.
/etc/wsl.conf
다음을 사용 하여 만듭니다 .[automount] options = "metadata"
다음,
cd /mnt/C/Windows.old/Users/<yourusername>/AppData/Local/Packages/<PackageName>/LocalState/rootfs
<PackageName>
배포판에 따라 다르지만Canonical...
Ubuntu 배포판부터 시작됩니다. WSL 설치가 충분히 오래된 경우/mnt/C/Windows.old/Users/<yourusername>/AppData/Local/lxss
. 거기에서 해당 설치 디렉토리를ls
보고 싶을 것입니다 ./
해당 디렉토리 내에서
tar cvf recovery.tar .
. WSL1 설치에는 시간이 걸립니다.sudo mv recovery.tar <somewhere>
그렇지 않으면 드라이브에C:
;/mnt/c/Users/<youruser>/Documents/wsl
(내가 이것을 위해 사용하는 것과 비슷합니다) . 완료되면 이것이 배포의 새로운 위치가 됩니다.WSL 종료
PowerShell에서
recovery.tar
.mkdir OldUbuntu
(또는 당신이 부르고 싶은대로)wsl --import OldUbuntu .\OldUbuntu .\recovery.tar
. 또한 이 명령은 선택적으로--version 1/2
(끝에서) WSL 버전을 강제 적용합니다.원하는 경우 이를 기본 WSL 설치로 설정합니다
wsl --set-default OldUbuntu
.으로 배포를 시작하십시오
wsl ~ -d OldUbuntu
. 인수-d/--distribution
는 위에서 기본값으로 설정하지 않은 경우에만 필요합니다./etc/wsl.conf
다음 내용으로 를 만듭니다 .[user] default=username
username
Windows를 재설정하기 전에 배포판에 있던 사용자 이름을 편집하세요 .선택적으로 tarball 생성에 설치하고 사용한 배포판을 제거합니다.
그게 다야. 저는 실제로 이것을 약간 다른 시나리오로 테스트했습니다. WSL1 인스턴스를 설치한 다음 다른 인스턴스에서 위의 프로세스를 진행했습니다.
--import
위의 단계를 거친 후 성공적으로 완료할 수 있었습니다 . 파일/디렉터리 소유권 및 권한은 심볼릭 링크와 마찬가지로 올바른 것으로 보입니다. 내 유일한 관심사는 정말 오래된 WSL 배포판이 다른 메타데이터를 사용할 수 있는지 여부입니다.경고: 복구할 수 있는 다른 방법이 없는 경우에만 WSL1 파일 시스템에서 이 작업을 시도하십시오.
%AppData%
(또는 이에 상응하는 방법)을 통해 WSL1 파일 시스템의 파일에 액세스하는 것은부패를 일으키는 것으로 알려진. 그래서 이것을 시험해 보기 위해 일회용 인스턴스를 직접 만들었습니다.참고 사항: 다른 WSL 인스턴스를 설치하는 번거로움을 겪는 대신 Windows 내에서
tar
파일을 가져오는 것을 고려할 수도 있습니다 .Windows.old
여기서 내 관심사는 이것이 캡처되지 않을 것이라는 것입니다.리눅스소유권 및 사용 권한으로 인해 'ing' 시 설치가 손상될 수 있습니다wsl --import
.