여러 WSL 복사 및 사용(Linux 인스턴스)

윈도우즈에서 네트워크 개발을 할 때 wsl을 사용하면 linux 환경을 간단하게 사용할 수 있어 매우 편리하다.
나는 기본적으로 Ubuntu18이다.04 디스트로를 설치하고 사용합니다.
WSL의distro 실례를 export/import 복사할 수 있다는 것을 최근에 알았습니다.
이것을 사용하면 개발 중인 언어에 따라 linux를 구분할 수 있기 때문에 환경을 명확하게 구분할 때 편리할 수 있습니다.이번에는 PHP용 우분투와 루비용 우분투의 실례를 만들고 싶다.
또한 아래의 보도를 참고하였다.이것도 참고하시는 게 좋을 것 같아요.
https://winaero.com/export-import-wsl-linux-distro-windows-10/

초기 평면 WSL distro 설치


Microsoft store에서 설치할 수 있습니다.
예를 들어 Ubuntu를 검색하면 다음과 같은 느낌이 들기 때문에 좋아하는 버전을 설치합니다.

20.04와 18.04 모두 가능합니다.우분투 말고 디스트로도 OK.

※ 설치 후 꺼낸 캡처이기 때문에'시동'버튼 표시

Windows Terminal로 초기 WSL distro 열기


Ubuntu-20.04 Plain와 옵션에 나타난 것은 Windows Terminal 설정을 통해 json을 맞춤형으로 만들었기 때문입니다.
  • Microsoft Store에서 설치한 Ubuntu 20.04는 Windows Terminal 선택 항목에 나타납니다(해당).
  • 클릭하여 열면 첫 번째 사용자 등록 알림이 표시되므로 새 사용자 이름과 비밀번호를 입력하여 사용자를 만듭니다.
  • 이렇게, Ubuntu20.04
  • 자유 사용 가능

    Style WSL distro로 export 복제 준비

  • 모든 WSL 터미널을 먼저 닫기
  • Powerrshell 실행wsl --list --all을 열고 WSL에 설치된 Linux distro 일람표를 표시합니다.
  • Powershell
    ❯  wsl --list --all
    Linux 用 Windows サブシステム ディストリビューション:
    Ubuntu-18.04 (既定)
    Ubuntu-20.04
    
  • 마이크로소프트 스토어에서 방금 설치한 Ubuntu-20.04가 있습니다.나는 이것을 export로 한다.
  • wsl export 구문
    wsl.exe --export <DistributionName> <FileName>
    
  • <DistributionName>
  • =>Ubuntu-20.04 덮어쓰기(또는 export 디스트로에 따라 적당히 변경)
  • <FileName>
  • =>export를 파일에 저장하기 때문에 전체 경로로 저장 위치를 지정합니다
  • 예: C:\Users\me\WSLdistros\ubuntu2004Ruby.tar
  • (루비 환경을 Ubuntu로 만들고 싶어서 이 이름)
  • ※ 데이터의 확장자로 파일 이름 지정
  • 상술한 문법에 따라 명령을 집행하다.
    Powershell
    ❯ wsl.exe --export Ubuntu-20.04 C:\Users\me\WSL_distros\ubuntu2004Ruby.tar
    ❯
    
  • 시간이 오래 걸립니다.힌트가 돌아오면(5분 걸렸어요. 한 시간 걸린 사람도 있는 것 같아요.)
  • 명령 실행이 끝난 후 자원 관리자에 저장된 파일을 보십시오

    ubuntu2004Ruby.데이터 파일이 저장됨
  • export의 ubuntu 2004 Ruby입니다.import tar, 복사


    ubuntu2004Ruby.tar를 wsl로 가져오면 실제로 OS로 사용할 수 있습니다.
    다음 명령을 사용하여 wsl로 가져옵니다.
    sl import 구문
    wsl.exe --import <DistributionName> <InstallLocation> <FileName>
    
  • <DistributionName>
  • 다음 import의distro에 이름을 붙일 이름
  • 루비용 Ubuntu-20.04이기 때문에 tar 파일 이름과 같다ubuntu2004Ruby.
  • <InstallLocation>
  • 설치할 디스트로 실례의 모든 저장 목적지.
  • vhdx의 확장자 파일은 지정된 저장 위치에 저장됩니다.
  • <FileName>
  • 방금 export의 tar 파일을 전체 경로로 지정
  • 위의 import 명령 실행
    Powershell
    ❯ wsl.exe --import ubuntu2004Ruby C:\Users\me\WSL_distros\ubuntu2004Ruby C:\Users\me\WSL_distros\ubuntu2004Ruby.tar
    ❯
    
  • 프롬프트가 반환될 때까지 기다립니다.특히 아무것도 안 뜨고 힌트가 돌아오면 성공할 거예요.
  • import 복사된 distro 열기


    다음 명령을 사용하여 열기
    wsl --distribution ubuntu2004Ruby
    
  • --distribution의 매개 변수가 import을 지정할 때 이름을 지정합니다.
  • Windows Terminal을 다시 열면 선택 항목에도 표시됩니다.

    이렇게 되면 디스트로를 복제하고 사용할 수 있는 상태가 되지만 복제만 하면 디스트로에 로그인한 사용자는 루트가 된다.
    이렇게 되면 불편한 점이 많기 때문에 자신의 사용자를 설정한다.

    기본 로그인 사용자를 루트에서 사용자로 변경


  • 우선 루트 사용자가 복사된distro를 엽니다



  • 마이크로소프트 스토어에서 설치한 지 얼마 되지 않아 만든 사용자의 이름을 사용하여 다음 명령을 실행합니다
  • 유료 단말기
    # id -u the-username-you-created
    1000
    
  • 등록표 편집기로 ↑의 1000호를 썼다.
  • 에 기록된 등록표의 경로는 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss\{MY-UUID}입니다.
  • 아래에 있는 Squsho의DefaultUid 항목이 있다고 생각해서 1000을 적었습니다.

    ※ 1000은 10진법으로 지정
  • 위에서 말한 바와 같이 등록표 편집을 통해 변경된 후 복제된 디스트로를 다시 열면 최초로 제작된 사용자가 로그인할 수 있습니다.
    등록표 편집기의 설정 방법에 대해 아래 issue의 평론에서 찾았습니다.
    https://github.com/microsoft/WSL/issues/4276#issuecomment-509364493

    필요하지 않은 WSL distro 제거


    Powershell
    ❯ wsl --list --all
    
  • 현재 설치된 디스트로의 일람
  • 표시
    Powershell
    ❯ wsl --unregister <DistributionName>
    
  • 이전에 명령으로 표시된 디스트로 일람에서 삭제할 디스트로의 이름을 지정하고 실행하면 디스트로를 삭제할 수 있습니다.
  • 떳떳하지 못하다


    그게 다야.
    이전에는 복제된 디스트로에 프로그래밍 언어 등을 직접 설치했을 뿐이었다.같은 절차를 밟아 서로 다른 언어의 환경 등을 준비할 수 있을 것 같다.OS 복제품인 만큼 과도하게 복제하면 CD의 용량을 압박할 수 있으므로 주의해야 한다(일반 Ubuntu 20.04가 필요한데 용량이 2GB 미만이다).
    나는 Docker를 사용하는 것이 좋다고 생각하지만 Docker를 사용한 적이 없기 때문에 이것은 나에게 좋은 환경이라고 생각한다.
    WSL 사용법을 배우고 있기 때문에 잘못된 해석이 많다고 생각합니다. 지적해 주시기 바랍니다.🙇

    좋은 웹페이지 즐겨찾기