WSL2 잘 사용하기
WSL2 이용 Linux 사용시 쓸만한 팁
- wsl 사용 명령
- WSL 쉘 사용
- wsl 하위 시스템 디렉토리
- wsl 구성 파일
- wsl 외부 디스크 마운트 하기
- wsl 배포본 이름 변경하기
1. wsl 사용 명령
윈도우즈 하위 시스템 목록
1 | # Linux용 Windows 하위 시스템의 목록 |
wsl 재시작
혹은 윈도우 서비스를 재시작할 수 있다. Windows에서 PowerShell을 관리자 권한으로 열고 다음 명령을 실행하면 됩니다.
1 | PS> Restart-Service LxssManager |
wsl 종료
하위 시스템 배포본을 지정해 종료하려면 -t <Distro>
명령을 사용한다.
1 | PS> wsl -l |
wsl shutdown
모든 하위 시스템을 종료 시키려면 --shutdown
명령을 사용한다. --shutdown
명령은 실행 중인 모든 배포과 WSL 2 경량 유틸리티 가상 머신을 즉시 종료한다.
1 | PS> wsl --shutdown |
Unregister
Window store 에서 설치한 배포본을 삭제해도 wsl 의 Distro 목록에는 남아 있다. 이것은 --unregistre
명령으로 제거할 수 있다.
1 | PS> wsl -l --all |
--unregistre
명령으로 제거한 Distro 등록을 해제한다.
1 | PS> wsl --unregister Ubuntu-22.04 |
2. WSL 쉘 사용
--system
: 현재 시스템의 distro의 셸을 시작한다.
1 | PS> wsl --system |
--exec
, -e
: 시스템 distro의 명령을 현재 PowerShell에서 실행한다.
1 | PS> wsl -e bash |
2. WSL 하위 시스템 디렉토리
윈도우즈와 하위 시스템의 디렉토리를 Host 의 프로그램 들에서 사용할 수 있다.
탐색기에서 직접 접근하기
윈도우즈에서 네트워크 경로로 WSL 하위 시스템 디렉토리를 접근할 수 있다.
1 | \\wsl$\<Distribution>: |
예를 들어 하위 시스템 이름이 Ubuntu-20.04 이고 계정이 qkboo 이라면 탐색기에서 qkboo 계정의 홈디렉토리를 이렇게 접그할 수 있다.
1 | \\wsl$\Ubuntu-20.04\home\qkboo |
아래는 윈도우즈 탐색기에서 wsl 홈디렉토리를 접근한 캡쳐 화면인다.
터미널에서 홈디렉토리 탐색기 열기
터미널에서 윈도우즈 탐색기를 직접 열 수 있다.
1 | $ explorer.exe . |
VisualStudio Code 에서 현재 디렉토리를 연다.
1 | $ code.exe . |
3. WSL 고급 설정 구성
배포본 구성 파일 wsl.conf 와 전역 구성 파일 .wslconfig 이 있다.
전역 구성 파일 .wslconfig
- 위치:
C:\Users\<UserName>\.wslconfig
- 커널
- 메모리 크기
- 프로세서 개수
- 스왑
- 디버그 콘솔 등등.
- https://learn.microsoft.com/ko-kr/windows/wsl/wsl-config#wslconfig
wslconfig 예제 파일
1 | # Settings apply across all Linux distros running on WSL 2 |
배포본 구성 파일 wsl.conf
- 위치:
/etc/wsl.conf
- wsl1, wsl2 배포본에 대한 구성을 지정한다.
- 단, Windows 빌드 17093 이상에서만 사용할 수 있다.
- systemd 지원
- automount 지원
DrvFS 지원
interop 설정 등등 - wsl.conf 구성 설정
wsl.conf 예제
1 | # Automatically mount Windows drive when the distribution is launched |
4. wsl 외부 디스크 마운트 하기
윈도우즈 wsl 에서 리눅스 파티션 혹은 USB 파티션 디스크를 마운트해서 사용하려고 한다.
- 관리자 모드에서 Powershell 을 연다.
파워쉘에서 연결된 디스크 목록을 확인한다.
1 | PS> GET-CimInstance -query "SELECT * from Win32_DiskDrive" |
- 관리자 모드 PowerShell 에서 마운트할 Device ID를 마운트 한다.
--bare
를 사용해 마운트 여부를 확인할 수 있다.
1 | PS> wsl --mount \\.\PHYSICALDRIVE2 --bare |
- WSL 리눅스 터미널에서 디스크를 확인한다.
아래 같이 마운트를 실행한다.
1 | PS> wsl --mount \\.\PHYSICALDRIVE2 -type ext4 |
파티션을 마운트 한다면
1 | PS> wsl --mount \\.\PHYSICALDRIVE2 -p 1 # partition 1 |
연결된 디스크가 sdd 에 표시된다.
1 | ~$ lsblk |
어떠 파일 시스템인지 확인하려면 lsblk -f 명령을 사용한다.
1 | ~$ lsblk -f |
df 명령으로 확인해 보자,
1 | s$ df -h |
6. 배포본 이름 변경하기
- 먼저 모든 WSL 실행 배포본을 종료한다.
현재 배포본 Ubuntu 20.04 인데 do-os-relase
업그레이드로 22.04 로 완료된 상태이다. 하지만 배포본 이름은 20.04 라서 이름을 22.04 로 변경하려고 한다.
1 | PS> wsl -l |
- 레지스트리 편집기를 열고 다음 위치로 이동한다.
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss
- Lxss 항목 중 배포본 레지스트리를 선택하면 아래 같은 내용에서 *DistributionName 을 찾아 변경한 배포본 이름으로 바꾸고 저장한다.
- 변경된 이름을 저장하고 wsl 배포본 목록을 확인한다.
1 | PS> wsl -l |
— 참고
- WSL 시작하기: https://github.com/wslhub/wsl-firststep/