Linux용 Windows 하위 시스템의 수동 설치를 어떻게 재설정합니까?

Linux용 Windows 하위 시스템의 수동 설치를 어떻게 재설정합니까?

관련된:Store를 사용하지 않고 Win10(v1709)에 Linux용 Windows 하위 시스템을 설치하는 방법이 있습니까?

WSL 배포판을 설치할 때밖의Microsoft Store의 경우(예: 제한된 네트워크, 링크 참조) 해당 배포판과 상호 작용하는 많은 표준 수단을 사용할 수 없습니다. 제 예에서는 설정 > 앱 및 기능으로 이동하면 목록에 distro가 표시되지 않고 관리 기능을 사용할 수 없습니다. 수동으로 설치된 Linux 인스턴스가 잘못된 상태가 된 경우 이를 재설정하고 새로 설치한 상태로 되돌리는 올바른 방법은 무엇입니까?

편집: 지금까지 발생한 '잘못된 상태'의 예로는 'apt-get 업데이트' 중 BSOD가 포함되어 복구할 수 없는 상태가 됩니다. 또한 문제를 해결하기 위해 여러 구성 변경을 수행하고, 변경된 내용을 자세히 추적하지 않고 서비스를 제거 또는 비활성화하고 다른 패키지를 설치하며, 도착한 솔루션이 실제로 자체적으로 작동하는지 테스트하기 위해 "새로 시작"하려는 욕구가 있습니다. ..

답변1

수동으로 설치된 Linux 인스턴스가 잘못된 상태가 된 경우 이를 재설정하고 새로 설치한 상태로 되돌리는 올바른 방법은 무엇입니까?

Windows 10 버전 1903을 실행하는 경우:

wsl --unregister <DistributionName>

Windows 10 버전 1709, 1803 또는 1809를 실행하는 경우:

wslconfig /unregister <DistributionName>

Linux용 Windows 하위 시스템 관리 및 구성

답변2

당신은 사용할 수 있습니다초콜릿 같은(예를 들어 개인 NuGet 저장소 사용) 다음을 사용하여 Debian 이미지를 선택합니다.

choco install wsl-debiangnulinux

하지만

  • "WSL 터미널" 및 "데비안 터미널"과 같은 바로 가기만 사용할 수 있습니다.
  • 사용자 생성을 묻는 메시지가 표시되지 않으며 루트 셸만 시작됩니다.
  • "설정/앱 및 기능"에서 WSL용 Linux 배포판을 찾을 수 없으므로 "고급 옵션" 또는 "재설정"이 없습니다.

그런데 wsl 명령줄을 사용할 수 있지만 수동으로 사용자 계정(배포에 따라 useradd 또는 adduser)을 만들고, sudo(sudo 그룹 또는 sudoers)를 부여하고, 섹션을 /etc/wsl.conf사용하여 생성해야 합니다 .[user]default=yourloginwsl-config선적 서류 비치. 내 경우에는 <distribution> config --default-user yourlogin효과가 없었습니다.

확실한 중단이 발생하는 경우 유일한 옵션은 다음 순서로 실행되는 것으로 보입니다.

wsl --export <distribution> wsl-backup-<distribution>.tar
wsl --unregister <distribution>
choco install wsl-<distribution>
wsl --import <distribution> wsl-backup-<distribution>.tar

가져온 파일로 인해 문제가 발생하지 않기를 바랍니다.

답변3

경고:질문은 WSL 배포의 "수동 설치"를 다루기 때문에 다음 정보는 완전히 공식적으로 문서화되지 않았습니다. 따라서 절차는 다음과 같습니다.조금 다르다향후 Windows 10 릴리스에서는.

이를 이해하려면 먼저 Windows Store를 통해 배포판을 설치하는 것과 수동으로 배포판을 설치하는 것의 차이점을 알아야 합니다. Windows Store를 Windows의 패키지 관리자로 생각하세요. 설치, 제거, 업데이트 등 모든 패키지를 모니터링합니다. 따라서 설정 메뉴에 설치된 앱 목록이 있습니다. 배포판이 설치되면 Appx 패키지(ZIP 아카이브)로 제공됩니다. 해당 패키지에는 해당 배포판(example)의 rootfs tarball(GZIP tar 파일) install.tar.gz, 실행 파일(example ubuntu.exe) 및 기타 항목이 포함되어 있습니다.

해당 실행 프로그램이 처음 실행되면 tarball(예: 명령)을 추출 하고 레지스트리 키 tar -xf에 레지스트리 항목을 만듭니다 . HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss\{GUID}이 레지스트리 키는 배포판이 설치된 위치, 기본 사용자 등을 제공하는 데 중요합니다.

배포판이 설치되면수동으로이와 동일한 레지스트리 키가 생성되지만 기본 경로 및 기타 항목이 다릅니다. 이 수동 절차는 Windows Store를 통해 제공되지 않으므로 설정 앱에 나열되지 않습니다. 그러나 wsl.exe --list --all명령은 WSL에 설치된 모든 배포판을 표시할 수 있습니다. 이러한 방식으로 우리는 실행 파일을 얻지 못하지만 wsl.exe.

'나쁜 상태'에서 어떻게 재설정할 수 있나요? UNIX 세계에 익숙하다면 다음과 같이 WSL의 배포판을 가정하십시오.chroot 환경. 언제나WSL 배포 백업. 실제 데비안 기반 배포판에서 늘 그렇듯이 우리는 일반적으로 패키지를 수정하기 위해 다음 명령을 실행합니다:

sudo dpkg –configure -a
sudo apt update –fix-missing
sudo apt install -f

문제가 해결되지 않으면 제거하고 다시 설치하면 문제가 해결될 수 있습니다. 대부분의 사용자별 구성이 폴더에 저장되므로 해당 /home폴더를 백업하는 것이 좋습니다 . tar -czf다음으로 명령을 사용하여 배포판을 제거합니다 wsl.exe --unregister <Distribution Name>. 이전 명령은 전체 루트 폴더를 제거하기 때문에 백업은 사용자에게 중요할 수 있습니다. /. 이제 평소와 같이 새 배포판을 설치하고 이전 /home백업 폴더를 추출할 수 있습니다.tar -xf

답변4

이 시도:

wsl --set-default-version 2

설치된 배포판으로 wsl 버전을 설정할 수도 있습니다.

wsl --set-version Ubuntu-20.04 1

관련 정보