본문 바로가기
카테고리 없음

WSL 2 설치하기 WSL 사용하기 요약 정리

by 이혁진 2024. 4. 2.

주요참조 : https://www.lesstif.com/software-architect/wsl-2-windows-subsystem-for-linux-2-89555812.html

 

 

## WSL 2 설치 하기

 

WSL2 를 설치하려면 먼저 Windows 10 2004 이상이면 됨
대략적으로 2020년 이후 윈도우즈 업데이트를 하셨으면 조건 충족! 

 

 

1. PowerShell 을 관리자로 열고 다음 명령을 실행해서 WSL 을 활성화=설치 해줍니다

- dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

 


2. 이제 WSL 2 가 사용하는 VM platform 옵션을 활성화 해줍니다.

- dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

3. VM 플랫폼을 활성화한 후에 Windows 를 재부팅합니다.

4. 부팅후에 https://docs.microsoft.com/ko-KR/windows/wsl/wsl2-kernel 에 연결해서 리눅스 커널 구성요소 업데이트 실행 
- wsl_update_x64.msi 파일 설치 하면 됨 

 

5. 설치를 완료했으면 다시 Windows 를 재부팅

6. PowerShell으로 기본 ubuntu / 특정 배포판 설치 
- wsl --install 
- wsl --install Ubuntu-22.04

- 설치시 Enter new UNIX username: New password: 물어봄 
- wsl 2 유효한 배포 목록을 보려면 'wsl.exe --list --online'을 사용

 

## 설치 끝. 다음은 WSL 사용법

1. 배포판 관리 - WSL 기본 명령어

- 기존에 설치한 WSL 배포 목록 확인 : wsl -l -v 
- Version 2로 변환하려면  wsl --set-version DISTO_NAME 2 를 실행

- 모든 Linux 배포판 포맷을 WSL 2 로 설정하려면 wsl --set-default-version 2  명령


- 설치된 배포중에 특정 배포를 기본으로 설정하려면 wsl --set-default DISTRO_NAME 명령을 실행
  -> wsl 명령을 옵션없이 실행했을때 기본 배포판으로 진입

- wsl --unregister DISTRO 명령으로 배포를 삭제
- 실행중인 모든 배포와 WSL 2 경량 가상 머신을 종료 : wsl --shutdown 

2. WSl 사용 - WSL 기본 명령어 

 

- 배포판 진입 : wsl -d Ubuntu

 

- exit를 하면 시스템이 멈추는 듯;; 

- WSL exit시 시스템 안 멈추게 하는 방법 

- 해당 배포판 시스템 중 서비스를 하나 띄워 놓으면 됨 (service .... ) 

 

- docker를 써도 됨  => 아래에 정리 함.  6. WSL 2에서 Docker 사용 

 


3. 특정 서비스 (postgreSQL WSL 설치) 및 자동 실행 

 

- wsl -d 배포판명 

 

- #apt-get update && apt-get upgrade 
- #apt-get install aptitude #apt 패키지관리자 설치 
- #aptitude #apt 패키지관리자 실행 

- 검색 창 띄우기 : / 키 
- 검색키워드 : ^postgresql  
- 설치할 패키지에 + 키를 누르면 관련 패키지 통합 설치 선택됨 
- 설치 작업 : g 키 
- 빠져나오기 : q 키 

- ps -ef 로 프로세스 확인 
- postgresql 세팅 - 간단 로컬세팅

 

- 윈도우의 시작 - 모든 프로그램 - 시작 프로그램 폴더에 파일 등록

- bat파일 (스크립트 파일) 작성
- wsl sudo service postgresql start
- 또는 wsl -d Ubuntu-22.04 sudo service postgresql start  (-d 실행하고싶은배포판명) 

- wsl2를 실행시켜 sudo visudo 명령어를 입력
- %sudo ALL=NOPASSWD: /usr/sbin/service
- 모든 service명령어를 비밀번호 해제
- 특정 서비스 비밀번호 해제 
   - %sudo ALL=(ALL) NOPASSWD: /usr/sbin/service mysql *
   - %sudo ALL=(ALL) NOPASSWD: /usr/sbin/service ssh *
   - %sudo ALL=(ALL:ALL) ALL 명령어보다 아래에 작성해야함 

- 시작 프로그램 폴더에 파일 등록
- window + R을 눌러 shell:startup을 입력하여 폴더를 열어  .bat파일을 이 폴더 안에 복사 해주면 된다.

 

 

4. WSL 팁 

- service 는 root 만 사용할 수 있는 명령어이므로 sudo visudo 실행하여 /etc/sudoers 에 한 줄을 추가해 주면 편리하게 구동
- %sudo ALL=NOPASSWD: /usr/sbin/service

- WSL 에 연결한 후에 explorer.exe . 를 실행하면 바로 탐색기에서 리눅스 파일시스템을 열수 있습니다.
- WSL 을 사용해도 IDE 나 편집기는 Windows 에서 사용하므로 프로젝트 등록시 WSL 에 있는 경로를 지정해 줘야 합니다.

- "네트워크 드라이브 연결" 을 해서 드라이브 번호를 하나 할당하는 방법

5. 배포판 백업 내보내기 => 사실은 배보판 복사 ㅎㅎ 
- 내용 참조 : https://wslhub.com/wsl-firststep/advanced/copy-distro/

- wsl.exe --shutdown
- 백업
   - wsl.exe --export Ubuntu-22.04 C:\Users\윈도우사용자명\Documents\Ubuntu-22.04.tar

- 백업 확인
   - dir C:\Users\윈도우사용자명\Documents\Ubuntu-22.04.tar
   - => 대략 1G 정도 되네 

- 복원
   - mkdir C:\Distro\MyUbuntu
   - wsl.exe --import Ubuntu-2204-ek C:\Distro\MyUbuntu C:\Users\윈도우사용자명\Documents\Ubuntu-22.04.tar --version 2
   - => 백업 tar 파일을 MyUbuntu 라는 이름으로 C:\Distro\MyUbuntu 폴더에 WSL v2로 복원

- 복원된 wsl 접속하면 root로 만 접속됨 
   - => 사용자 ID 값을 레지스트리에 설정해야 합니다. 관리자 권한으로 권한 상승한 PowerShell 프롬프트에서 다음의 명령어를 입력
   - => 하는데 난 안함 

$DistroName='배포판명'
$UserId='윈도우사용자명' 
$DefaultUid=(wsl.exe --distribution $DistroName --user $UserId -- id -u)
Get-ItemProperty Registry::HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss\*\ DistributionName | Where-Object -Property DistributionName -eq $DistroName | Set-ItemProperty -Name DefaultUid -Value $DefaultUid

 

6. WSL 2에서 Docker 사용

- https://docs.docker.com/desktop/install/windows-install/
- 무지성 다운로드 및 설치 

- 설치하고 docker 를 실행한 후에 트레이에서 docker 를 찾은 후에 마우스 우 클릭해서 Settings  메뉴를 선택
- 설정 화면에서 General  → Use the WSL2 based engine  이 체크되어 있는지 확인
- Resources  → WSL Integration  에서 docker 를 사용할 WSL 을 체크한 후에 Apply & Restart  를 클릭
- 이제 WSL 인스턴스를 열고 명령행에서 docker 를 실행해 봅니다.
- 정상 동작 여부를 확인하기 위해 hello-world 컨테이너를 실행해 봅니다. $ sudo docker run hello-world

기타 

윈도우즈 터미널(Windows Terminal) 설정하기
https://www.lesstif.com/software-architect/windows-terminal-89555840.html

 

Windows 11 에서 WSLg( Windows Subsystem for Linux GUI ) 사용
https://www.lesstif.com/software-architect/windows-11-wslg-windows-subsystem-for-linux-gui-129007984.html