목차
WSL1과 WSL2에는 다소 차이점이 존재한다. 본 블로그의 글들 대부분에서는 WSL2을 기반으로 설명하고 있다.
WSL 설치의 공식 문서
이 글은 2021년 2월~5월 기준으로 작성하고 있으며, 2021년 5월에 퇴고작업을 마쳤다. 그러므로, 기간이 오래 지나면 본 글과 다른 방식으로 설치 과정이 변경되었을 수 있으므로, 시간이 지나 이 글의 효력이 없어지는 경우 새로이 정보를 찾아보실 수 있도록 공식 사이트 위주로 작성하려 노력하였다.
WSL 설치의 공식 문서는 Microsoft에서 제공하는 Windows 10에 Linux용 Windows 하위 시스템 설치 가이드를 따라하면 된다. 위 문서가 항상 공식문서이며 회신 버전의 내용을 담고 있을 가능성이 높으므로, 아래 내용 중 잘 되지 않는 부분이 있다면 해당 링크를 참고하시기 바란다.
본 글의 내용은 참고만 하고, 모든 WSL 관련 기술문서는 Microsoft 공식 문서를 직접 확인하자.
WSL 설치
- 먼저 Windows10 실행란에 ‘winver’라고 입력하여 윈도우 버전을 확인하자.
(1) WSL2는 Windows10에서만 실행되며, 아래 업데이트 이상을 보유하고 있어야만 사용할 수 있다.
- x64 시스템의 경우: 버전 1903 이상, 빌드 18362 이상
- ARM64 시스템의 경우: 버전 2004 이상, 빌드 19041 이상
(2) winver로 확인한 업데이트가 위 업데이트보다 낮다면, 먼저 윈도우 업데이트부터 진행하자.
- Terminal 설치
(1) WSL을 사용하기 위해서는 새로운 버전의 Windows Terminal을 설치해야 한다.
(2) Windows Store에서 “Windows Terminal”을 검색하고, 설치한다.
- WSL 설치
(1) 관리자 권한으로 Terminal을 실행해야 하며, Power Shell에서 실행해야 한다.
(2) 관리자 권한으로 실행된 PowerShell에서 아래 두 줄을 차례대로 실행한다.
1
2dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
(3) 실행한 결과는 대충 아래와 같이 표시되면 된다.
- WSL 설치가 완료되면 Windows를 다시 시작하기 하여 시스템을 재-시작해야 한다.
- Windows10용 Linux Kernel Update Package를 설치한다.
Windows 10에 Linux용 Windows 하위 시스템 설치 가이드로 가서 Linux Kernel Update Package를 다운로드 후 설치하자.
- Ubuntu 설치 및 실행
(1) 다시 Windows Store로 가서 “Ubuntu”를 검색한다. 검색 결과는 여러개가 표시될 수 있는데, 버전이 붙지 않은 앱을 선택하자. (사실 아무거나 선택해도 상관 없지만, WSL 사용에 익숙해 질 때까지는 버전이 붙은 앱은 일단 무시하자.)
(2) Ubuntu를 다운로드하고 실행하자.
- Ubuntu 초기 설정
(1) Ubuntu 앱을 최초 실행 시 아래와 같이 계정 이름과 암호를 설정하라고 표시된다.
(2) 계정과 암호를 설정한 후, Ubuntu의 Bash Shell이 실행되면 제일 처음 할 일은 아래의 내용이다.
1
sudo apt update && sudo apt upgrade && sudo apt dist-upgrade
Ubuntu 시스템 업데이트 명령을 실행하여 시스템 업데이트가 종료될때까지 기다린다. (시스템을 다시 시작하지는 않아도 된다.)
- Ubuntu 앱에서 빠져 나오고, WSL로 진입하기
(1) 시스템 업데이트가 완료되면 ‘exit’를 입력 해서 Ubuntu 앱에서 빠져나온다.
1
exit
(2) Windows Terminal을 실행 한 후 ‘wsl’ 이라고 입력한다.
(3) Bash shell 상태에서 ‘exit’를 입력해서 wsl에서 빠져나온다.
(4) 이후 PowerShell 상태에서 ‘wsl -l’ 그리고 ‘wsl -l -v’를 입력한다.
필자와 동일한 List가 출력되지는 않을 것이다. 필자는 필요에 의해 WSL1과 WSL2를 동시에 사용하고 있고, 이미 Docker도 설치했기 때문에 위와 같이 출력된다.
WSL 진입 및 진출 명령
WSL로 진입하는 명령은 PowerShell 상태에서 wsl을 입력하는 것이고, wsl에서 나오는 방법은 Bash Shell 상태에서 exit을 입력하면 된다.
1 | wsl |
설치한 Linux의 버전 알아보기
설치한 리눅스의 버전을 알아 보는 방법은 아래와 같다. WSL을 실행한 후 Bash에서 아래와 같이 입력하면 현재 실행 중인 WSL Linux의 버전을 확인할 수 있다.
1 | lsb_release -a |
아래는 2021년 4월 17일 기준, 이 글의 퇴고 작업을 진행하며 실제로 실행해본 필자의 WSL 버전이다.
※참고 : Ubuntu를 사용한다면 시스템 켜고 항상 업데이트 현황을 잘 보자. apt update를 생활화하자.
WSL 실행 시 Zombie Process가 있다고 나타나는 경우
WSL 실행 시 아래와 같이 Zombie Process가 있다고 나타나는 경우가 있다.
이런 경우 아래의 명령어를 입력하여 Zombie Process들을 죽일 수 있다. 필자는 아예 runKillZombieProcess.sh 파일을 실행 가능하게 만들어서 저장해 버렸다.
1 | sudo kill -HUP $(ps -A -ostat, ppid | grep -e '[zZ]' | awk '{ print #2 }') |
Zombie Process에 대해서는 굳이 이 포스팅에서 다루어야할 내용이 아니므로 인터넷 검색을 활용하자.
참고 자료
- https://docs.microsoft.com/ko-kr/windows/wsl/install-win10
- https://docs.microsoft.com/ko-kr/windows/wsl/faq
- https://www.infoworld.com/article/3052563/why-did-microsoft-make-windows-10-run-linux.html
- https://webdir.tistory.com/540
- https://www.44bits.io/ko/post/wsl2-install-and-basic-usage