WSL2 설치: 윈도우에서 리눅스 실행하기
WSL(Windows Subsystem for Linux)은 윈도우의 가상화 기능을 사용해, 윈도우에서 리눅스를 사용할 수 있게 도와주는 도구입니다. 이제 가상머신을 따로 구성하지 않고도, 윈도우에서 리눅스를 사용할 수 있습니다. 단순히 리눅스를 사용하는 것뿐만 아니라, 윈도우 시스템과 심리스하게 통합해서 하나의 머신처럼 리눅스를 활용하는 것도 가능합니다.
WSL은 윈도우 10과 윈도우 11을 지원하며 윈도우 모든 에디션에서 사용할 수 있습니다. 한 가지 더 반가운 소식은, 기존 윈도우 홈 에디션에서는 가상화 기능들을 지원하지 않아서 Docker를 사용할 수 없었는데, WSL2가 릴리스되면서 이를 기반으로 Docker Desktop도 사용할 수 있게되었습니다.
이 글에서는 WSL 설치부터 기본적인 사용법까지 다음과 같은 내용을 다룹니다.
- WSL의 동작 원리
- 윈도우에서 WSL 활성화 및 설치 방법
- 우분투 리눅스 설치하고 맛보기
- WSL 활용 팁
Windows Subsystem for Linux의 동작 원리#
WSL은 윈도우의 가상화 기술 Hyper-V 아키텍처를 기반으로 동작합니다. 하지만 이 구조는 윈도우 내부에 잘 감춰져있고 윈도우와 통합도 잘 되어있기 때문에, 가상 머신을 사용하는 느낌은 받기는 어렵습니다. 또한 가상머신 부팅이 몇 분 정도가 걸린다면, WSL 리눅스는 몇 초 정도면 바로 사용할 수 있습니다.

마이크로소프트에서는 윈도우와 리눅스의 심리스한 통합을 위해서 WSL2 용 리눅스 커널을 직접 개발하고 있습니다.
WSL 머신에서 uname
명령어를 실행해서 커널 버전을 출력해봅니다. 이를 통해 WSL 전용 커널이 사용되는 것을 확인할 수 있습니다.
$ uname -r
5.15.90.1-microsoft-standard-WSL2
WSL 리눅스 커널이 별도로 있습니다만, 기존 리눅스 배포판들을 가져와 사용할 수 있으며, 동작도 기존 리눅스 커널과 거의 차이가 없습니다.
이 글에서는 편의상 WSL 머신이라고 표현합니다만, WSL은 어떤 면에선 가상 머신처럼 보이고, 어떤 면에서는 시스템 컨테이너처럼 보이기도 합니다. 사용자 입장에서 크게 중요한 건 아닙니다. 윈도우에서 명령어 몇 개로 리눅스를 사용할 수 있다는 �� 중요합니다.
그럼 여기서부터는 직접 WSL을 설치하고 사용하는 방법을 소개하겠습니다.
WSL2는 Hyper-V를 기반으로 동작합니다만, 윈도오 10 홈 에디션에서는 Hyepr-V를 사용할 수 없습니다. 하지만 좀 더 정확히 이야기하면 WSL2의 요구사항은 Hyper-V 아키텍처로, 윈도우 10 프로페셔널 이상 에디션에서 제공하는 Hyper-V 추가 기능과는 별개입니다. 즉, 윈도우 10 홈 에디션에서도 WSL2를 사용할 수 있습니다. 더 자세한 내용은 WSL 공식 FAQ 문서를 참고해주세요.
WSL2 설치 가능 여부 확인(윈도우 10)#
2020년 5월 Windows 10 May 2020 Update(20H1) 업데이트가 있었습니다. 2019년 이후 Windows 10의 첫 대규모 업데이트로 사용성 면에서도 큰 변화가 있었으며, WSL2가 정식으로 릴리스되었습니다.
따라서 WSL을 사용하려면, 윈도우 10의 20H1 이상 버전이어야합니다. 이 글은 윈도우 10을 기준으로 작성하였습니다만, 윈도우 11에서도 설치 방법은 같습니다. 단, 윈도우 11을 사용중이라면 버전 확인을 하지 않아도 무방합니다.
먼저 Windows + S 키를 클릭하고 PC 정보(설정)를 검색해서 실행합니다.

오른쪽 정보 페이지에서 스크롤을 내리면 Windows 사양을 확인할 수 있습니다. 여기서 버전이 20H1, 20H2, 21H1 혹은 그보다 높은 버전인지 확인합니다.

이보다 낮은 버전을 사용중이라면 먼저 윈도우 업데이트 설정을 열어, 최신 버전으로 업데이트해주시기 바랍니다.
윈도우에 WSL2 설치하는 방법(최신)#
윈도우 10 버전 2004(빌드 19041 이상) 이상이나 윈도우 11에서는 wsl
명령어 하나로 WSL2를 설치할 수 있습니다.
WSL2를 설치하기 위해서는 터미널 앱을 사용해야합니다. PowelShell을 사용해도 무방합니다만, 윈도우 터미널 사용을 추천합니다. 윈도우 터미널은 WSL2를 활용할 때도 필요하기 때문에 미리 설치하는 것을 추천합니다.
먼저 윈도우 터미널이나 PowerShell을 관리자 권한으로 실행해주세요. Windowsn + S 키로 윈도우 터미널이나 PowerShell을 검색한 후 오른쪽 버튼을 눌러 ’관리자로 실행’을 선택합니다.

다음 명령어를 실행합니다.
$ wsl --install
설치가 끝나고 다음 명령어를 실행해, WSL 버전 기본값을 2로 변경해줍니다.
$ wsl --set-default-version 2
바로 ‘마이크로소프트 스토어에서 우분투 리눅스 설치’ 절로 넘어가주세요.
윈도우에 WSL2 수동 설치하는 방법(예전 방법)#
wsl
명령어가 없거나, 정상적으로 설치가 되지 않는다면 수동으로 한 단계 씩 WSL2를 설치해야합니다.
DISM으로 WSL 관련 기능 활성화#
먼저 DISM(배포 이미지 서비스 및 관리) 명령어로 Microsoft-Windows-Subsystem-Linux
기능을 활성화합니다.
$ dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
버전: 10.0.19041.844
이미지 버전: 10.0.19043.928
기능을 사용하도록 설정하는 중
[==========================100.0%==========================]
다음으로 dism 명령어로 VirtualMachinePlatform
기능을 활성화합니다.
$ dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
배포 이미지 서비스 및 관리 도구
이미지 버전: 10.0.19043.928
기능을 사용하도록 설정하는 중
[==========================100.0%==========================]
작업을 완료했습니다.
작업이 정상적으로 완료되었는지, 메시지를 꼭 확인해주세요. 터미널이 관리자 권한이 아닌 경우 작업이 실패합니다. 작업이 정상 완료되었다면 이 시점에 재부팅을 한 번 해줍니다.
WSL2 Linux 커널 업데이트#
다음으로 WSL2 Linux 커널 업데이트를 진행해야합니다. 첫 번째로 링크는 마이크로소프트의 공식 WSL2 설치 가이드이며, 두 번째 링크는 이 문서에 포함된 wsl_update_x64.msi 파일입니다. 아래 파일을 다운로드 받아 안내에 따라 설치를 진행합니다.

윈도우 터미널을 열고, 다음 명령어를 실행해, 기본적으로 사용할 WSL 버전을 2로 변경해줍니다.
$ wsl --set-default-version 2
마지막으로 wsl 업데이트를 진행합니다.
$ wsl --update
마이크로소프트 스토어에서 우분투 리눅스 설치#
WSL을 설치했다면 이제 리눅스를 설치할 차례입니다. WSL에 리눅스 배포판이 직접 포함되어있지는 않습니다.
리눅스 배포판을 설치하는 방법은 두 가지가 있습니다. 하나는 마이크로소프트 스토어에 업로드 되어있는 리눅스 배포판을 설치하는 방법이고, 다른 하나는 직접 리눅스 배포판 이미지를 구해서 WSL로 임포트하는 방법입니다. 여기서는 첫 번째 방법으로 우분투 리눅스 배포판을 설치해보겠습니다. 배포판 이미지를 직접 임포트하는 방법은 다음 글에서 소개합니다.
마이크로소프트 스토어(Microsoft Store) 앱을 열고 Ubuntu를 검색합니다.

WSL2에서는 다양한 리눅스 배포판을 사용할 수 있습니다. 여기서는 Ubuntu 배포판을 설치해보겠습니다. 맨 앞의 패키지를 선택하고 상세 페이지에서 설치를 진행합니다.

설치가 끝나고 앱이 실행되면 터미널이 하나 열리고 설치가 자동적으로 진행됩니다. 이 창을 ���지 말고 기다려주세요. 앱이 자동으로 실행되지 않는다면 Windows +S 키를 입력하고 Ubuntu를 검색해서 실행해줍니다.

처음에 ’Installing. this may take few minutes…’이라는 메시지가 나옵니다. 조금 시간이 지나면 에서 사용할 사용자 이름과 패스워드를 지정하는 입력창이 나타납니다. 사용하고자 하는 사용자 이름과 패스워드를 입력하면 passwd로 패스워드가 업데이트됩니다.

다시 윈도우 터미널을 실행해주세요(이 때는 관리자 모드를 사용하지 않아도 됩니다). 이제 WSL을 관리하기 위한 wsl
명령어를 사용할 수 있습니다. wsl -l -v
로 현재 설치된 리눅스를 확인해봅니다.
$ wsl -l -v
NAME STATE VERSION
* Ubuntu Running 2
앞의 *
는 디폴트 머신을 의미합니다. 여기서 버전 컬럼은 WSL의 버전을 의미합니다. 2가 출력된다면 그대로 사용하면 됩니다. 만약 버전이 1이라고 나온다면 다음 명령을 실행해줍니다.
$ wsl --set-version Ubuntu 2
변환이 진행 중입니다. 몇 분 정도 걸릴 수 있습니다...
WSL 2와의 주요 차이점에 대한 자세한 내용은 https://aka.ms/wsl2를 참조하세요
변환이 완료되었습니다.
실행 후 ’변환이 완료되었습니다’라는 출력 결과를 꼭 확인해주세요. 다시 wsl -l -v
명령어로 확인해봅니다. 변환이 잘 되었는지 확인해보겠습니다.
$ wsl -l -v
NAME STATE VERSION
* Ubuntu Running 2
WSL을 사용할 때 하나 알아두어야 하는 점은, WSL이 Hyper-V 기반의 경량화된 리눅스 머신이라는 점입니다. 따라서 WSL 머신은 상태를 가집니다. 처음 wsl
명령어를 실행하면 머신이 Running 상태가 됩니다.
머신을 종료할 때는 -t
옵션을 사용합니다. Ubuntu 머신을 종료하고 상태를 확인해보겠습니다.
$ wsl -t Ubuntu
$ wsl -l -v
NAME STATE VERSION
* Ubuntu Stopped 2
Running 상태에서 Stopped 상태가 되었습니다. WSL 머신의 시작/종료/재부팅 등 기본적인 조작법에 대해서는 다음 글에서 더 자세히 소개합니다.
- 관련 글: WSL 리눅스 시작/종료/재부팅 방법
여기까지 WSL2 및 Ubuntu 설치를 마쳤습니다.
WSL2로 Ubuntu 리눅스 맛보기#
이제 리눅스를 사용할 수 있습니다. 먼저 wsl
명령어로 Ubuntu
머신에 명령을 실행해보겠습니다. 앞서 작업하던 터미널에서 아래 명령어를 실행합니다.
$ wsl cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04.2 LTS"
- 관련 글: 리눅스 배포판 및 버전 확인하는 방법
cat
은 리눅스 명령어입니다. wsl
다음에 리눅스 명령어를 입력하면 기본 WSL 리눅스에서 명령어가 실행됩니다. 여기서는 현재 사용중인 Ubuntu 버전이 출력됩니다. 현재 설치된 Ubuntu는 Ubuntu 20.04.2 LTS 버전인 것을 확인할 수 있습니다.
다음과 같이 Bash 셸을 실행하는 것도 가능합니다. 그냥 wsl
만 실행해도 기본 WSL 리눅스 머신에서 셸이 실행됩니다.
$ wsl
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
## 저자 주: 여기서부터 WSL2 리눅스 셸 프롬프트입니다.
lainy@DESKTOP-DSP22P:/mnt/c/Users/lainy$
이 내용을 자세히 보면 디렉터리가 /mnt/c/Users/lainy
로 실행됩니다. 즉, Windows 10 메인 디스크가 리눅스와 연결되어있으며, WSL2 Linux에서 Windows의 파일을 사용하는 것도 가능합니다.
여기서는 WSL 리눅스가 하나만 설치되어있는 상황입니다만, 여러 리눅스가 설치되어있다면 -d
옵션으로 특정한 리눅스를 지정해 줄 수 있습니다.
서비스 관리나 네트워크 환경 등 약간의 차이는 있지만 WSL 리눅스도 다른 리눅스와 사용방법은 같습니다. 특히 셸에서는 리눅스 커맨드라인 환경을 그대로 사용할 수 있습니다. 리눅스 사용법은 다음 글들에서 정리하고 있으니 참고해주세요. WSL에서도 대부분 그대로 적용됩니다.
WSL2 사용 팁#
여기까지 WSL로 리눅스를 설치해보았습니다. 여기서부터는 WSL2를 사용할 때 알아두면 유용한 팁들을 소개합니다.
Windows Terminal로 WSL 리눅스 사용하기#
Windows Terminal은 WSL2을 지원합니다. 따라서 WSL2로 리눅스 배포판을 설치하고 나면, Windows Terminal에서 리눅스 셸을 바로 사용하는 게 가능합니다.
먼저 Windows Terminal 실행합니다. 탭 바 오른쪽의 아래쪽 화살표를 누르면, WSL2로 설치된 Ubuntu가 보입니다.

Ubuntu를 선택하면, Ubuntu 셸이 바로 실행됩니다.

다른 리눅스 배포판 설치#
Ubuntu의 다른 버전이나 다른 리눅스 배포판을 설치하는 것도 가능합니다. 여기서는 Kali Linux를 설치해보겠습니다. 먼저 Microsoft Store에서 Kali Linux를 검색해서, 설치하고 실행해주세요.
이제 wsl -l -v
를 실행해보면 kali-linux를 목록에서 확인할 수 있습니다.
wsl -l -v
NAME STATE VERSION
* Ubuntu Running 2
kali-linux Running 2
wsl
명령어 뒤에 리눅스에서 실행할 명령어는 *
가 붙은 기본 머신에서 실행됩니다. 이를 변경하려면 -d <WSL_NAME>
옵션을 명시적으로 사용하면 됩니다. 예를 들어 우분투에서 실행하려면 -d Ubuntu
옵션을 붙여주고, 칼리 리눅스를 실행하려면 -d kali-linux
를 붙여줍니다.
$ wsl -d Ubuntu cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.2 LTS (Focal Fossa)"
...
$ wsl -d kali-linux cat /etc/os-release
PRETTY_NAME="Kali GNU/Linux Rolling"
NAME="Kali GNU/Linux"
ID=kali
VERSION="2021.2"
...
이 명령어로 각 리눅스의 버전을 확인할 수 있습니다.
이제 Windows Terminal에서도 칼리 리눅스를 사용할 수 있습니다. 설치 후 바로 표시가 되지 않는다면, Windows Terminal을 한 번 재실행해주세요.

디폴트 머신 변경하기#
-d
옵션으로 실행하고자 하는 WSL2 리눅스 머신을 변경할 수도 있습니다만, 자주 사용하는 머신을 디폴트 머신으로 변경해두면 편리합니다. 이 때는 wsl
명령어의 set-default
옵션을 사용합니다.
$ wsl --set-default kali-linux
wsl -l -v
를 실행해보면 이제 칼리 리눅스(kali-linux) 앞에 *
가 붙어있는 것을 확인할 수 있습니다.
$ wsl -l -v
NAME STATE VERSION
* kali-linux Running 2
Ubuntu Running 2
추천 문서#
WSL 리눅스 사용법에 대해서는 다음 글에서 정리하고 있습니다. WSL의 기초부터 Docker나 IP 주소 고정과 같은 고급 활용까지 다양한 글들이 있으니 참고해주세요.
WSL 이슈를 관리하는 GitHub 저장소입니다. WSL 사용 중에 문제가 있다면 저장소의 이슈를 검색해보는 것을 추천합니다.
WSL과 관련된 더 정확하고 최신 정보가 필요하다면 공식 문서를 참고해주세요.
WSL이 정식 릴리즈 되면서 윈도우 홈 에디션에서도 Docker를 사용할 수 있게되었습니다. 윈도우에서 도커를 설치하는 방법에 대해서는 다음 글에서 상세히 소개합니다.
WSL 이외에도 Docker, 가상 머신, 클라우드 등 윈도우에서 리눅스를 사용할 수 있는 다양한 방법들이 있습니다. 이에 대해서는 다음 글에서 소개합니다.